let M be MetrStruct ; :: thesis: ( ( for a, b, c being Element of M holds
( ( dist a,b = 0 implies a = b ) & ( a = b implies dist a,b = 0 ) & dist a,b = dist b,a & dist a,c <= (dist a,b) + (dist b,c) ) ) implies M is MetrSpace )

assume A1: for a, b, c being Element of M holds
( ( dist a,b = 0 implies a = b ) & ( a = b implies dist a,b = 0 ) & dist a,b = dist b,a & dist a,c <= (dist a,b) + (dist b,c) ) ; :: thesis: M is MetrSpace
A2: the distance of M is symmetric
proof
let a, b be Element of M; :: according to METRIC_1:def 5 :: thesis: the distance of M . a,b = the distance of M . b,a
the distance of M . a,b = dist a,b
.= dist b,a by A1
.= the distance of M . b,a ;
hence the distance of M . a,b = the distance of M . b,a ; :: thesis: verum
end;
A3: the distance of M is triangle
proof
let a, b, c be Element of M; :: according to METRIC_1:def 6 :: thesis: the distance of M . a,c <= (the distance of M . a,b) + (the distance of M . b,c)
A4: the distance of M . b,c = dist b,c ;
( the distance of M . a,c = dist a,c & the distance of M . a,b = dist a,b ) ;
hence the distance of M . a,c <= (the distance of M . a,b) + (the distance of M . b,c) by A1, A4; :: thesis: verum
end;
A5: the distance of M is discerning
proof
let a, b be Element of M; :: according to METRIC_1:def 4 :: thesis: ( the distance of M . a,b = 0 implies a = b )
assume the distance of M . a,b = 0 ; :: thesis: a = b
then dist a,b = 0 ;
hence a = b by A1; :: thesis: verum
end;
the distance of M is Reflexive
proof
let a be Element of M; :: according to METRIC_1:def 3 :: thesis: the distance of M . a,a = 0
the distance of M . a,a = dist a,a
.= 0 by A1 ;
hence the distance of M . a,a = 0 ; :: thesis: verum
end;
hence M is MetrSpace by A5, A2, A3, Def7, Def8, Def9, Def10; :: thesis: verum