Article SUB_METR, MML version 4.99.1005
:: SUB_METR:th 1
theorem
for b1, b2 being real set
st 0 <= b1 & 0 <= b2
holds max(b1,b2) <= b1 + b2;
:: SUB_METR:th 2
theorem
for b1 being Reflexive discerning symmetric triangle MetrStruct
for b2, b3 being Element of the carrier of b1
st b2 <> b3
holds 0 < dist(b2,b3);
:: SUB_METR:th 4
theorem
for b1 being Element of 1 holds
Empty^2-to-zero .(b1,b1) = 0;
:: SUB_METR:th 5
theorem
for b1, b2 being Element of 1
st b1 <> b2
holds 0 < Empty^2-to-zero .(b1,b2);
:: SUB_METR:th 6
theorem
for b1, b2 being Element of 1 holds
Empty^2-to-zero .(b1,b2) = Empty^2-to-zero .(b2,b1);
:: SUB_METR:th 7
theorem
for b1, b2, b3 being Element of 1 holds
Empty^2-to-zero .(b1,b3) <= (Empty^2-to-zero .(b1,b2)) + (Empty^2-to-zero .(b2,b3));
:: SUB_METR:th 8
theorem
for b1, b2, b3 being Element of 1 holds
Empty^2-to-zero .(b1,b3) <= max(Empty^2-to-zero .(b1,b2),Empty^2-to-zero .(b2,b3));
:: SUB_METR:modenot 1
definition
mode PseudoMetricSpace is non empty Reflexive symmetric triangle MetrStruct;
end;
:: SUB_METR:attrnot 1 => SUB_METR:attr 1
definition
let a1 be non empty set;
let a2 be Function-like quasi_total Relation of [:a1,a1:],REAL;
attr a2 is Discerning means
for b1, b2 being Element of a1
st b1 <> b2
holds 0 < a2 .(b1,b2);
end;
:: SUB_METR:dfs 1
definiens
let a1 be non empty set;
let a2 be Function-like quasi_total Relation of [:a1,a1:],REAL;
To prove
a2 is Discerning
it is sufficient to prove
thus for b1, b2 being Element of a1
st b1 <> b2
holds 0 < a2 .(b1,b2);
:: SUB_METR:def 1
theorem
for b1 being non empty set
for b2 being Function-like quasi_total Relation of [:b1,b1:],REAL holds
b2 is Discerning(b1)
iff
for b3, b4 being Element of b1
st b3 <> b4
holds 0 < b2 .(b3,b4);
:: SUB_METR:attrnot 2 => SUB_METR:attr 2
definition
let a1 be non empty MetrStruct;
attr a1 is Discerning means
the distance of a1 is Discerning(the carrier of a1);
end;
:: SUB_METR:dfs 2
definiens
let a1 be non empty MetrStruct;
To prove
a1 is Discerning
it is sufficient to prove
thus the distance of a1 is Discerning(the carrier of a1);
:: SUB_METR:def 2
theorem
for b1 being non empty MetrStruct holds
b1 is Discerning
iff
the distance of b1 is Discerning(the carrier of b1);
:: SUB_METR:th 14
theorem
for b1 being non empty MetrStruct holds
for b2, b3 being Element of the carrier of b1
st b2 <> b3
holds 0 < dist(b2,b3)
iff
b1 is Discerning;
:: SUB_METR:funcreg 1
registration
cluster MetrStruct(#1,Empty^2-to-zero#) -> strict Reflexive symmetric triangle Discerning;
end;
:: SUB_METR:exreg 1
registration
cluster non empty Reflexive symmetric triangle Discerning MetrStruct;
end;
:: SUB_METR:modenot 2
definition
mode SemiMetricSpace is non empty Reflexive symmetric Discerning MetrStruct;
end;
:: SUB_METR:th 18
theorem
for b1 being non empty Reflexive Discerning MetrStruct
for b2, b3 being Element of the carrier of b1 holds
0 <= dist(b2,b3);
:: SUB_METR:modenot 3
definition
mode NonSymmetricMetricSpace is non empty Reflexive triangle Discerning MetrStruct;
end;
:: SUB_METR:attrnot 3 => SUB_METR:attr 3
definition
let a1 be non empty MetrStruct;
attr a1 is ultra means
for b1, b2, b3 being Element of the carrier of a1 holds
dist(b1,b3) <= max(dist(b1,b2),dist(b2,b3));
end;
:: SUB_METR:dfs 3
definiens
let a1 be non empty MetrStruct;
To prove
a1 is ultra
it is sufficient to prove
thus for b1, b2, b3 being Element of the carrier of a1 holds
dist(b1,b3) <= max(dist(b1,b2),dist(b2,b3));
:: SUB_METR:def 4
theorem
for b1 being non empty MetrStruct holds
b1 is ultra
iff
for b2, b3, b4 being Element of the carrier of b1 holds
dist(b2,b4) <= max(dist(b2,b3),dist(b3,b4));
:: SUB_METR:exreg 2
registration
cluster non empty strict Reflexive symmetric Discerning ultra MetrStruct;
end;
:: SUB_METR:modenot 4
definition
mode UltraMetricSpace is non empty Reflexive symmetric Discerning ultra MetrStruct;
end;
:: SUB_METR:condreg 1
registration
cluster non empty Reflexive discerning symmetric triangle -> Discerning (MetrStruct);
end;
:: SUB_METR:condreg 2
registration
cluster non empty Reflexive symmetric Discerning ultra -> discerning triangle (MetrStruct);
end;
:: SUB_METR:funcnot 1 => SUB_METR:func 1
definition
func Set_to_zero -> Function-like quasi_total Relation of [:{{},{{}}},{{},{{}}}:],REAL equals
[:{{},{{}}},{{},{{}}}:] --> 0;
end;
:: SUB_METR:def 5
theorem
Set_to_zero = [:{{},{{}}},{{},{{}}}:] --> 0;
:: SUB_METR:th 40
theorem
for b1, b2 being Element of {{},{{}}} holds
Set_to_zero .(b1,b2) = 0;
:: SUB_METR:th 42
theorem
for b1, b2 being Element of {{},{{}}} holds
Set_to_zero .(b1,b2) = Set_to_zero .(b2,b1);
:: SUB_METR:th 43
theorem
for b1, b2, b3 being Element of {{},{{}}} holds
Set_to_zero .(b1,b3) <= (Set_to_zero .(b1,b2)) + (Set_to_zero .(b2,b3));
:: SUB_METR:funcnot 2 => SUB_METR:func 2
definition
func ZeroSpace -> MetrStruct equals
MetrStruct(#{{},{{}}},Set_to_zero#);
end;
:: SUB_METR:def 6
theorem
ZeroSpace = MetrStruct(#{{},{{}}},Set_to_zero#);
:: SUB_METR:funcreg 2
registration
cluster ZeroSpace -> non empty strict;
end;
:: SUB_METR:funcreg 3
registration
cluster ZeroSpace -> Reflexive symmetric triangle;
end;
:: SUB_METR:prednot 1 => SUB_METR:pred 1
definition
let a1 be MetrStruct;
let a2, a3, a4 be Element of the carrier of a1;
pred A3 is_between A2,A4 means
a2 <> a3 &
a2 <> a4 &
a3 <> a4 &
dist(a2,a4) = (dist(a2,a3)) + dist(a3,a4);
end;
:: SUB_METR:dfs 6
definiens
let a1 be MetrStruct;
let a2, a3, a4 be Element of the carrier of a1;
To prove
a3 is_between a2,a4
it is sufficient to prove
thus a2 <> a3 &
a2 <> a4 &
a3 <> a4 &
dist(a2,a4) = (dist(a2,a3)) + dist(a3,a4);
:: SUB_METR:def 7
theorem
for b1 being MetrStruct
for b2, b3, b4 being Element of the carrier of b1 holds
b3 is_between b2,b4
iff
b2 <> b3 &
b2 <> b4 &
b3 <> b4 &
dist(b2,b4) = (dist(b2,b3)) + dist(b3,b4);
:: SUB_METR:th 47
theorem
for b1 being non empty Reflexive symmetric triangle MetrStruct
for b2, b3, b4 being Element of the carrier of b1
st b3 is_between b2,b4
holds b3 is_between b4,b2;
:: SUB_METR:th 48
theorem
for b1 being Reflexive discerning symmetric triangle MetrStruct
for b2, b3, b4 being Element of the carrier of b1
st b3 is_between b2,b4
holds not b2 is_between b3,b4 & not b4 is_between b2,b3;
:: SUB_METR:th 49
theorem
for b1 being Reflexive discerning symmetric triangle MetrStruct
for b2, b3, b4, b5 being Element of the carrier of b1
st b3 is_between b2,b4 & b4 is_between b2,b5
holds b3 is_between b2,b5 & b4 is_between b3,b5;
:: SUB_METR:funcnot 3 => SUB_METR:func 3
definition
let a1 be non empty MetrStruct;
let a2, a3 be Element of the carrier of a1;
func open_dist_Segment(A2,A3) -> Element of bool the carrier of a1 equals
{b1 where b1 is Element of the carrier of a1: b1 is_between a2,a3};
end;
:: SUB_METR:def 8
theorem
for b1 being non empty MetrStruct
for b2, b3 being Element of the carrier of b1 holds
open_dist_Segment(b2,b3) = {b4 where b4 is Element of the carrier of b1: b4 is_between b2,b3};
:: SUB_METR:th 51
theorem
for b1 being non empty Reflexive discerning symmetric triangle MetrStruct
for b2, b3, b4 being Element of the carrier of b1 holds
b4 in open_dist_Segment(b2,b3)
iff
b4 is_between b2,b3;
:: SUB_METR:funcnot 4 => SUB_METR:func 4
definition
let a1 be non empty MetrStruct;
let a2, a3 be Element of the carrier of a1;
func close_dist_Segment(A2,A3) -> Element of bool the carrier of a1 equals
{b1 where b1 is Element of the carrier of a1: b1 is_between a2,a3} \/ {a2,a3};
end;
:: SUB_METR:def 9
theorem
for b1 being non empty MetrStruct
for b2, b3 being Element of the carrier of b1 holds
close_dist_Segment(b2,b3) = {b4 where b4 is Element of the carrier of b1: b4 is_between b2,b3} \/ {b2,b3};
:: SUB_METR:th 53
theorem
for b1 being non empty MetrStruct
for b2, b3, b4 being Element of the carrier of b1 holds
b4 in close_dist_Segment(b2,b3)
iff
(not b4 is_between b2,b3 & b4 <> b2 implies b4 = b3);