:: TAXONOM1 semantic presentation

registration
cluster real non negative set ;
existence
not for b1 being real number holds b1 is negative
proof end;
end;

theorem Th1: :: TAXONOM1:1
for b1 being FinSequence
for b2 being Nat st b2 + 1 in dom b1 & not b2 in dom b1 holds
b2 = 0
proof end;

theorem Th2: :: TAXONOM1:2
for b1 being FinSequence
for b2, b3 being Nat st b2 in dom b1 & b3 in dom b1 & ( for b4 being Nat st b4 in dom b1 & b4 + 1 in dom b1 holds
b1 . b4 = b1 . (b4 + 1) ) holds
b1 . b2 = b1 . b3
proof end;

theorem Th3: :: TAXONOM1:3
for b1 being set
for b2 being Relation of b1 st b2 is_reflexive_in b1 holds
dom b2 = b1
proof end;

theorem Th4: :: TAXONOM1:4
for b1 being set
for b2 being Relation of b1 st b2 is_reflexive_in b1 holds
rng b2 = b1
proof end;

theorem Th5: :: TAXONOM1:5
for b1 being set
for b2 being Relation of b1 st b2 is_reflexive_in b1 holds
b2 [*] is_reflexive_in b1
proof end;

theorem Th6: :: TAXONOM1:6
for b1, b2, b3 being set
for b4 being Relation of b1 st b4 is_reflexive_in b1 & b4 reduces b2,b3 & b2 in b1 holds
[b2,b3] in b4 [*]
proof end;

theorem Th7: :: TAXONOM1:7
for b1 being set
for b2 being Relation of b1 st b2 is_reflexive_in b1 & b2 is_symmetric_in b1 holds
b2 [*] is_symmetric_in b1
proof end;

theorem Th8: :: TAXONOM1:8
for b1 being set
for b2 being Relation of b1 st b2 is_reflexive_in b1 holds
b2 [*] is_transitive_in b1
proof end;

theorem Th9: :: TAXONOM1:9
for b1 being non empty set
for b2 being Relation of b1 st b2 is_reflexive_in b1 & b2 is_symmetric_in b1 holds
b2 [*] is Equivalence_Relation of b1
proof end;

theorem Th10: :: TAXONOM1:10
for b1 being non empty set
for b2, b3 being Relation of b1 st b2 c= b3 holds
b2 [*] c= b3 [*]
proof end;

E10: now
let c1 be non empty set ;
let c2, c3 be a_partition of c1;
assume ( c2 in {{c1}} & c3 in {{c1}} ) ;
then ( c2 = {c1} & c3 = {c1} ) by TARSKI:def 1;
hence ( c2 is_finer_than c3 or c3 is_finer_than c2 ) ;
end;

theorem Th11: :: TAXONOM1:11
for b1 being non empty set holds SmallestPartition b1 is_finer_than {b1}
proof end;

definition
let c1 be non empty set ;
mode Classification of c1 -> Subset of (PARTITIONS a1) means :Def1: :: TAXONOM1:def 1
for b1, b2 being a_partition of a1 st b1 in a2 & b2 in a2 & not b1 is_finer_than b2 holds
b2 is_finer_than b1;
existence
ex b1 being Subset of (PARTITIONS c1) st
for b2, b3 being a_partition of c1 st b2 in b1 & b3 in b1 & not b2 is_finer_than b3 holds
b3 is_finer_than b2
proof end;
end;

:: deftheorem Def1 defines Classification TAXONOM1:def 1 :
for b1 being non empty set
for b2 being Subset of (PARTITIONS b1) holds
( b2 is Classification of b1 iff for b3, b4 being a_partition of b1 st b3 in b2 & b4 in b2 & not b3 is_finer_than b4 holds
b4 is_finer_than b3 );

theorem Th12: :: TAXONOM1:12
for b1 being non empty set holds {{b1}} is Classification of b1
proof end;

theorem Th13: :: TAXONOM1:13
for b1 being non empty set holds {(SmallestPartition b1)} is Classification of b1
proof end;

theorem Th14: :: TAXONOM1:14
for b1 being non empty set
for b2 being Subset of (PARTITIONS b1) st b2 = {{b1},(SmallestPartition b1)} holds
b2 is Classification of b1
proof end;

definition
let c1 be non empty set ;
mode Strong_Classification of c1 -> Subset of (PARTITIONS a1) means :Def2: :: TAXONOM1:def 2
( a2 is Classification of a1 & {a1} in a2 & SmallestPartition a1 in a2 );
existence
ex b1 being Subset of (PARTITIONS c1) st
( b1 is Classification of c1 & {c1} in b1 & SmallestPartition c1 in b1 )
proof end;
end;

:: deftheorem Def2 defines Strong_Classification TAXONOM1:def 2 :
for b1 being non empty set
for b2 being Subset of (PARTITIONS b1) holds
( b2 is Strong_Classification of b1 iff ( b2 is Classification of b1 & {b1} in b2 & SmallestPartition b1 in b2 ) );

theorem Th15: :: TAXONOM1:15
for b1 being non empty set
for b2 being Subset of (PARTITIONS b1) st b2 = {{b1},(SmallestPartition b1)} holds
b2 is Strong_Classification of b1
proof end;

definition
let c1 be non empty set ;
let c2 be PartFunc of [:c1,c1:], REAL ;
let c3 be real number ;
func low_toler c2,c3 -> Relation of a1 means :Def3: :: TAXONOM1:def 3
for b1, b2 being Element of a1 holds
( [b1,b2] in a4 iff a2 . b1,b2 <= a3 );
existence
ex b1 being Relation of c1 st
for b2, b3 being Element of c1 holds
( [b2,b3] in b1 iff c2 . b2,b3 <= c3 )
proof end;
uniqueness
for b1, b2 being Relation of c1 st ( for b3, b4 being Element of c1 holds
( [b3,b4] in b1 iff c2 . b3,b4 <= c3 ) ) & ( for b3, b4 being Element of c1 holds
( [b3,b4] in b2 iff c2 . b3,b4 <= c3 ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines low_toler TAXONOM1:def 3 :
for b1 being non empty set
for b2 being PartFunc of [:b1,b1:], REAL
for b3 being real number
for b4 being Relation of b1 holds
( b4 = low_toler b2,b3 iff for b5, b6 being Element of b1 holds
( [b5,b6] in b4 iff b2 . b5,b6 <= b3 ) );

theorem Th16: :: TAXONOM1:16
for b1 being non empty set
for b2 being PartFunc of [:b1,b1:], REAL
for b3 being real number st b2 is Reflexive & b3 >= 0 holds
low_toler b2,b3 is_reflexive_in b1
proof end;

theorem Th17: :: TAXONOM1:17
for b1 being non empty set
for b2 being PartFunc of [:b1,b1:], REAL
for b3 being real number st b2 is symmetric holds
low_toler b2,b3 is_symmetric_in b1
proof end;

theorem Th18: :: TAXONOM1:18
for b1 being non empty set
for b2 being PartFunc of [:b1,b1:], REAL
for b3 being real number st b3 >= 0 & b2 is Reflexive & b2 is symmetric holds
low_toler b2,b3 is Tolerance of b1
proof end;

theorem Th19: :: TAXONOM1:19
for b1 being non empty set
for b2 being PartFunc of [:b1,b1:], REAL
for b3, b4 being real number st b3 <= b4 holds
low_toler b2,b3 c= low_toler b2,b4
proof end;

definition
let c1 be set ;
let c2 be PartFunc of [:c1,c1:], REAL ;
attr a2 is nonnegative means :Def4: :: TAXONOM1:def 4
for b1, b2 being Element of a1 holds a2 . b1,b2 >= 0;
end;

:: deftheorem Def4 defines nonnegative TAXONOM1:def 4 :
for b1 being set
for b2 being PartFunc of [:b1,b1:], REAL holds
( b2 is nonnegative iff for b3, b4 being Element of b1 holds b2 . b3,b4 >= 0 );

theorem Th20: :: TAXONOM1:20
for b1 being non empty set
for b2 being PartFunc of [:b1,b1:], REAL
for b3, b4 being set st b2 is nonnegative & b2 is Reflexive & b2 is discerning & [b3,b4] in low_toler b2,0 holds
b3 = b4
proof end;

theorem Th21: :: TAXONOM1:21
for b1 being non empty set
for b2 being PartFunc of [:b1,b1:], REAL
for b3 being Element of b1 st b2 is Reflexive & b2 is discerning holds
[b3,b3] in low_toler b2,0
proof end;

theorem Th22: :: TAXONOM1:22
for b1 being non empty set
for b2 being PartFunc of [:b1,b1:], REAL
for b3 being real number st low_toler b2,b3 is_reflexive_in b1 & b2 is symmetric holds
(low_toler b2,b3) [*] is Equivalence_Relation of b1
proof end;

Lemma24: for b1 being set
for b2 being non empty set
for b3, b4 being real non negative number st b3 <= b4 holds
for b5 being PartFunc of [:b2,b2:], REAL
for b6, b7 being Equivalence_Relation of b2 st b6 = (low_toler b5,b3) [*] & b7 = (low_toler b5,b4) [*] holds
Class b6,b1 c= Class b7,b1
proof end;

theorem Th23: :: TAXONOM1:23
for b1 being non empty set
for b2 being PartFunc of [:b1,b1:], REAL st b2 is nonnegative & b2 is Reflexive & b2 is discerning holds
(low_toler b2,0) [*] = low_toler b2,0
proof end;

theorem Th24: :: TAXONOM1:24
for b1 being non empty set
for b2 being PartFunc of [:b1,b1:], REAL
for b3 being Equivalence_Relation of b1 st b3 = (low_toler b2,0) [*] & b2 is nonnegative & b2 is Reflexive & b2 is discerning holds
b3 = id b1
proof end;

theorem Th25: :: TAXONOM1:25
for b1 being non empty set
for b2 being PartFunc of [:b1,b1:], REAL
for b3 being Equivalence_Relation of b1 st b3 = (low_toler b2,0) [*] & b2 is nonnegative & b2 is Reflexive & b2 is discerning holds
Class b3 = SmallestPartition b1
proof end;

theorem Th26: :: TAXONOM1:26
for b1 being non empty finite Subset of REAL
for b2 being Function of [:b1,b1:], REAL
for b3 being non empty finite Subset of REAL
for b4 being real number st b3 = rng b2 & b4 >= max b3 holds
for b5, b6 being Element of b1 holds b2 . b5,b6 <= b4
proof end;

theorem Th27: :: TAXONOM1:27
for b1 being non empty finite Subset of REAL
for b2 being Function of [:b1,b1:], REAL
for b3 being non empty finite Subset of REAL
for b4 being real number st b3 = rng b2 & b4 >= max b3 holds
for b5 being Equivalence_Relation of b1 st b5 = (low_toler b2,b4) [*] holds
Class b5 = {b1}
proof end;

theorem Th28: :: TAXONOM1:28
for b1 being non empty finite Subset of REAL
for b2 being Function of [:b1,b1:], REAL
for b3 being non empty finite Subset of REAL
for b4 being real number st b3 = rng b2 & b4 >= max b3 holds
(low_toler b2,b4) [*] = low_toler b2,b4
proof end;

definition
let c1 be non empty set ;
let c2 be PartFunc of [:c1,c1:], REAL ;
func fam_class c2 -> Subset of (PARTITIONS a1) means :Def5: :: TAXONOM1:def 5
for b1 being set holds
( b1 in a3 iff ex b2 being real non negative number ex b3 being Equivalence_Relation of a1 st
( b3 = (low_toler a2,b2) [*] & Class b3 = b1 ) );
existence
ex b1 being Subset of (PARTITIONS c1) st
for b2 being set holds
( b2 in b1 iff ex b3 being real non negative number ex b4 being Equivalence_Relation of c1 st
( b4 = (low_toler c2,b3) [*] & Class b4 = b2 ) )
proof end;
uniqueness
for b1, b2 being Subset of (PARTITIONS c1) st ( for b3 being set holds
( b3 in b1 iff ex b4 being real non negative number ex b5 being Equivalence_Relation of c1 st
( b5 = (low_toler c2,b4) [*] & Class b5 = b3 ) ) ) & ( for b3 being set holds
( b3 in b2 iff ex b4 being real non negative number ex b5 being Equivalence_Relation of c1 st
( b5 = (low_toler c2,b4) [*] & Class b5 = b3 ) ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def5 defines fam_class TAXONOM1:def 5 :
for b1 being non empty set
for b2 being PartFunc of [:b1,b1:], REAL
for b3 being Subset of (PARTITIONS b1) holds
( b3 = fam_class b2 iff for b4 being set holds
( b4 in b3 iff ex b5 being real non negative number ex b6 being Equivalence_Relation of b1 st
( b6 = (low_toler b2,b5) [*] & Class b6 = b4 ) ) );

theorem Th29: :: TAXONOM1:29
for b1 being non empty set
for b2 being PartFunc of [:b1,b1:], REAL
for b3 being real non negative number st low_toler b2,b3 is_reflexive_in b1 & b2 is symmetric holds
fam_class b2 is non empty set
proof end;

theorem Th30: :: TAXONOM1:30
for b1 being non empty finite Subset of REAL
for b2 being Function of [:b1,b1:], REAL st b2 is symmetric & b2 is nonnegative holds
{b1} in fam_class b2
proof end;

theorem Th31: :: TAXONOM1:31
for b1 being non empty set
for b2 being PartFunc of [:b1,b1:], REAL holds fam_class b2 is Classification of b1
proof end;

theorem Th32: :: TAXONOM1:32
for b1 being non empty finite Subset of REAL
for b2 being Function of [:b1,b1:], REAL st SmallestPartition b1 in fam_class b2 & b2 is symmetric & b2 is nonnegative holds
fam_class b2 is Strong_Classification of b1
proof end;

definition
let c1 be MetrStruct ;
let c2 be real number ;
let c3, c4 be Element of c1;
pred c3,c4 are_in_tolerance_wrt c2 means :Def6: :: TAXONOM1:def 6
dist a3,a4 <= a2;
end;

:: deftheorem Def6 defines are_in_tolerance_wrt TAXONOM1:def 6 :
for b1 being MetrStruct
for b2 being real number
for b3, b4 being Element of b1 holds
( b3,b4 are_in_tolerance_wrt b2 iff dist b3,b4 <= b2 );

definition
let c1 be non empty MetrStruct ;
let c2 be real number ;
func dist_toler c1,c2 -> Relation of a1 means :Def7: :: TAXONOM1:def 7
for b1, b2 being Element of a1 holds
( [b1,b2] in a3 iff b1,b2 are_in_tolerance_wrt a2 );
existence
ex b1 being Relation of c1 st
for b2, b3 being Element of c1 holds
( [b2,b3] in b1 iff b2,b3 are_in_tolerance_wrt c2 )
proof end;
uniqueness
for b1, b2 being Relation of c1 st ( for b3, b4 being Element of c1 holds
( [b3,b4] in b1 iff b3,b4 are_in_tolerance_wrt c2 ) ) & ( for b3, b4 being Element of c1 holds
( [b3,b4] in b2 iff b3,b4 are_in_tolerance_wrt c2 ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def7 defines dist_toler TAXONOM1:def 7 :
for b1 being non empty MetrStruct
for b2 being real number
for b3 being Relation of b1 holds
( b3 = dist_toler b1,b2 iff for b4, b5 being Element of b1 holds
( [b4,b5] in b3 iff b4,b5 are_in_tolerance_wrt b2 ) );

theorem Th33: :: TAXONOM1:33
for b1 being non empty MetrStruct
for b2 being real number holds dist_toler b1,b2 = low_toler the distance of b1,b2
proof end;

theorem Th34: :: TAXONOM1:34
for b1 being non empty Reflexive symmetric MetrStruct
for b2 being real number
for b3 being Relation of the carrier of b1,the carrier of b1 st b3 = dist_toler b1,b2 & b2 >= 0 holds
b3 is Tolerance of the carrier of b1
proof end;

definition
let c1 be non empty Reflexive symmetric MetrStruct ;
func fam_class_metr c1 -> Subset of (PARTITIONS the carrier of a1) means :Def8: :: TAXONOM1:def 8
for b1 being set holds
( b1 in a2 iff ex b2 being real non negative number ex b3 being Equivalence_Relation of a1 st
( b3 = (dist_toler a1,b2) [*] & Class b3 = b1 ) );
existence
ex b1 being Subset of (PARTITIONS the carrier of c1) st
for b2 being set holds
( b2 in b1 iff ex b3 being real non negative number ex b4 being Equivalence_Relation of c1 st
( b4 = (dist_toler c1,b3) [*] & Class b4 = b2 ) )
proof end;
uniqueness
for b1, b2 being Subset of (PARTITIONS the carrier of c1) st ( for b3 being set holds
( b3 in b1 iff ex b4 being real non negative number ex b5 being Equivalence_Relation of c1 st
( b5 = (dist_toler c1,b4) [*] & Class b5 = b3 ) ) ) & ( for b3 being set holds
( b3 in b2 iff ex b4 being real non negative number ex b5 being Equivalence_Relation of c1 st
( b5 = (dist_toler c1,b4) [*] & Class b5 = b3 ) ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def8 defines fam_class_metr TAXONOM1:def 8 :
for b1 being non empty Reflexive symmetric MetrStruct
for b2 being Subset of (PARTITIONS the carrier of b1) holds
( b2 = fam_class_metr b1 iff for b3 being set holds
( b3 in b2 iff ex b4 being real non negative number ex b5 being Equivalence_Relation of b1 st
( b5 = (dist_toler b1,b4) [*] & Class b5 = b3 ) ) );

theorem Th35: :: TAXONOM1:35
for b1 being non empty Reflexive symmetric MetrStruct holds fam_class_metr b1 = fam_class the distance of b1
proof end;

theorem Th36: :: TAXONOM1:36
for b1 being non empty MetrSpace
for b2 being Equivalence_Relation of b1 st b2 = (dist_toler b1,0) [*] holds
Class b2 = SmallestPartition the carrier of b1
proof end;

theorem Th37: :: TAXONOM1:37
for b1 being real number
for b2 being non empty Reflexive symmetric bounded MetrStruct st b1 >= diameter ([#] b2) holds
dist_toler b2,b1 = nabla the carrier of b2
proof end;

theorem Th38: :: TAXONOM1:38
for b1 being real number
for b2 being non empty Reflexive symmetric bounded MetrStruct st b1 >= diameter ([#] b2) holds
dist_toler b2,b1 = (dist_toler b2,b1) [*]
proof end;

theorem Th39: :: TAXONOM1:39
for b1 being real number
for b2 being non empty Reflexive symmetric bounded MetrStruct st b1 >= diameter ([#] b2) holds
(dist_toler b2,b1) [*] = nabla the carrier of b2
proof end;

theorem Th40: :: TAXONOM1:40
for b1 being non empty Reflexive symmetric bounded MetrStruct
for b2 being Equivalence_Relation of b1
for b3 being real non negative number st b3 >= diameter ([#] b1) & b2 = (dist_toler b1,b3) [*] holds
Class b2 = {the carrier of b1}
proof end;

registration
let c1 be non empty Reflexive symmetric triangle MetrStruct ;
let c2 be non empty bounded Subset of c1;
cluster diameter a2 -> non negative ;
coherence
not diameter c2 is negative
by TBSP_1:29;
end;

theorem Th41: :: TAXONOM1:41
for b1 being non empty bounded MetrSpace holds {the carrier of b1} in fam_class_metr b1
proof end;

theorem Th42: :: TAXONOM1:42
for b1 being non empty Reflexive symmetric MetrStruct holds fam_class_metr b1 is Classification of the carrier of b1
proof end;

theorem Th43: :: TAXONOM1:43
for b1 being non empty bounded MetrSpace holds fam_class_metr b1 is Strong_Classification of the carrier of b1
proof end;