:: TREES_1 semantic presentation

theorem Th1: :: TREES_1:1
for b1 being Nat
for b2, b3 being FinSequence st b3 = b2 | (Seg b1) holds
len b3 <= b1
proof end;

theorem Th2: :: TREES_1:2
for b1 being Nat
for b2, b3 being FinSequence st b3 = b2 | (Seg b1) holds
len b3 <= len b2
proof end;

theorem Th3: :: TREES_1:3
for b1 being Nat
for b2, b3 being FinSequence st b3 = b2 | (Seg b1) holds
ex b4 being FinSequence st b2 = b3 ^ b4
proof end;

theorem Th4: :: TREES_1:4
for b1 being set holds {} <> <*b1*> ;

theorem Th5: :: TREES_1:5
for b1, b2 being FinSequence st ( b1 = b1 ^ b2 or b1 = b2 ^ b1 ) holds
b2 = {}
proof end;

theorem Th6: :: TREES_1:6
for b1 being set
for b2, b3 being FinSequence holds
( not b2 ^ b3 = <*b1*> or ( b2 = <*b1*> & b3 = {} ) or ( b2 = {} & b3 = <*b1*> ) )
proof end;

notation
let c1, c2 be FinSequence;
synonym c1 is_a_prefix_of c2 for c1 c= c2;
end;

definition
let c1, c2 be FinSequence;
redefine pred c1 c= c2 means :Def1: :: TREES_1:def 1
ex b1 being Nat st a1 = a2 | (Seg b1);
compatibility
( c1 is_a_prefix_of c2 iff ex b1 being Nat st c1 = c2 | (Seg b1) )
proof end;
end;

:: deftheorem Def1 defines is_a_prefix_of TREES_1:def 1 :
for b1, b2 being FinSequence holds
( b1 is_a_prefix_of b2 iff ex b3 being Nat st b1 = b2 | (Seg b3) );

theorem Th7: :: TREES_1:7
canceled;

theorem Th8: :: TREES_1:8
for b1, b2 being FinSequence holds
( b1 is_a_prefix_of b2 iff ex b3 being FinSequence st b2 = b1 ^ b3 )
proof end;

theorem Th9: :: TREES_1:9
canceled;

theorem Th10: :: TREES_1:10
canceled;

theorem Th11: :: TREES_1:11
canceled;

theorem Th12: :: TREES_1:12
canceled;

theorem Th13: :: TREES_1:13
canceled;

theorem Th14: :: TREES_1:14
canceled;

theorem Th15: :: TREES_1:15
for b1, b2 being FinSequence st b1 is_a_prefix_of b2 & len b1 = len b2 holds
b1 = b2
proof end;

theorem Th16: :: TREES_1:16
for b1, b2 being set holds
( <*b1*> is_a_prefix_of <*b2*> iff b1 = b2 )
proof end;

notation
let c1, c2 be FinSequence;
synonym c1 is_a_proper_prefix_of c2 for c1 c< c2;
end;

Lemma7: for b1, b2 being finite set st b1 c= b2 & card b1 = card b2 holds
b1 = b2
proof end;

theorem Th17: :: TREES_1:17
canceled;

theorem Th18: :: TREES_1:18
canceled;

theorem Th19: :: TREES_1:19
for b1, b2 being finite set st b1,b2 are_c=-comparable & card b1 = card b2 holds
b1 = b2
proof end;

theorem Th20: :: TREES_1:20
canceled;

theorem Th21: :: TREES_1:21
canceled;

theorem Th22: :: TREES_1:22
canceled;

theorem Th23: :: TREES_1:23
for b1, b2 being set holds
( <*b1*>,<*b2*> are_c=-comparable iff b1 = b2 )
proof end;

theorem Th24: :: TREES_1:24
for b1, b2 being finite set st b1 c< b2 holds
card b1 < card b2
proof end;

theorem Th25: :: TREES_1:25
for b1 being non empty set
for b2 being FinSequence holds
( not b2 is_a_proper_prefix_of {} & not b2 is_a_proper_prefix_of <*> b1 )
proof end;

theorem Th26: :: TREES_1:26
for b1, b2 being FinSequence holds
( not b1 is_a_proper_prefix_of b2 or not b2 is_a_proper_prefix_of b1 ) ;

theorem Th27: :: TREES_1:27
for b1, b2, b3 being FinSequence st ( ( b1 is_a_proper_prefix_of b2 & b2 is_a_proper_prefix_of b3 ) or ( b1 is_a_proper_prefix_of b2 & b2 is_a_prefix_of b3 ) or ( b1 is_a_prefix_of b2 & b2 is_a_proper_prefix_of b3 ) ) holds
b1 is_a_proper_prefix_of b3 by XBOOLE_1:56, XBOOLE_1:58, XBOOLE_1:59;

theorem Th28: :: TREES_1:28
for b1, b2 being FinSequence st b1 is_a_prefix_of b2 holds
not b2 is_a_proper_prefix_of b1
proof end;

theorem Th29: :: TREES_1:29
canceled;

theorem Th30: :: TREES_1:30
for b1 being set
for b2, b3 being FinSequence st b2 ^ <*b1*> is_a_prefix_of b3 holds
b2 is_a_proper_prefix_of b3
proof end;

theorem Th31: :: TREES_1:31
for b1 being set
for b2, b3 being FinSequence st b2 is_a_prefix_of b3 holds
b2 is_a_proper_prefix_of b3 ^ <*b1*>
proof end;

theorem Th32: :: TREES_1:32
for b1 being set
for b2, b3 being FinSequence st b2 is_a_proper_prefix_of b3 ^ <*b1*> holds
b2 is_a_prefix_of b3
proof end;

theorem Th33: :: TREES_1:33
for b1, b2 being FinSequence st ( {} is_a_proper_prefix_of b1 or {} <> b1 ) holds
b2 is_a_proper_prefix_of b2 ^ b1
proof end;

definition
let c1 be FinSequence;
canceled;
canceled;
func ProperPrefixes c1 -> set means :Def4: :: TREES_1:def 4
for b1 being set holds
( b1 in a2 iff ex b2 being FinSequence st
( b1 = b2 & b2 is_a_proper_prefix_of a1 ) );
existence
ex b1 being set st
for b2 being set holds
( b2 in b1 iff ex b3 being FinSequence st
( b2 = b3 & b3 is_a_proper_prefix_of c1 ) )
proof end;
uniqueness
for b1, b2 being set st ( for b3 being set holds
( b3 in b1 iff ex b4 being FinSequence st
( b3 = b4 & b4 is_a_proper_prefix_of c1 ) ) ) & ( for b3 being set holds
( b3 in b2 iff ex b4 being FinSequence st
( b3 = b4 & b4 is_a_proper_prefix_of c1 ) ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def2 TREES_1:def 2 :
canceled;

:: deftheorem Def3 TREES_1:def 3 :
canceled;

:: deftheorem Def4 defines ProperPrefixes TREES_1:def 4 :
for b1 being FinSequence
for b2 being set holds
( b2 = ProperPrefixes b1 iff for b3 being set holds
( b3 in b2 iff ex b4 being FinSequence st
( b3 = b4 & b4 is_a_proper_prefix_of b1 ) ) );

theorem Th34: :: TREES_1:34
canceled;

theorem Th35: :: TREES_1:35
for b1 being set
for b2 being FinSequence st b1 in ProperPrefixes b2 holds
b1 is FinSequence
proof end;

theorem Th36: :: TREES_1:36
for b1, b2 being FinSequence holds
( b1 in ProperPrefixes b2 iff b1 is_a_proper_prefix_of b2 )
proof end;

theorem Th37: :: TREES_1:37
for b1, b2 being FinSequence st b1 in ProperPrefixes b2 holds
len b1 < len b2
proof end;

theorem Th38: :: TREES_1:38
for b1, b2, b3 being FinSequence st b2 ^ b3 in ProperPrefixes b1 holds
b2 in ProperPrefixes b1
proof end;

theorem Th39: :: TREES_1:39
ProperPrefixes {} = {}
proof end;

theorem Th40: :: TREES_1:40
for b1 being set holds ProperPrefixes <*b1*> = {{} }
proof end;

theorem Th41: :: TREES_1:41
for b1, b2 being FinSequence st b1 is_a_prefix_of b2 holds
ProperPrefixes b1 c= ProperPrefixes b2
proof end;

theorem Th42: :: TREES_1:42
for b1, b2, b3 being FinSequence st b2 in ProperPrefixes b1 & b3 in ProperPrefixes b1 holds
b2,b3 are_c=-comparable
proof end;

definition
let c1 be set ;
attr a1 is Tree-like means :Def5: :: TREES_1:def 5
( a1 c= NAT * & ( for b1 being FinSequence of NAT st b1 in a1 holds
ProperPrefixes b1 c= a1 ) & ( for b1 being FinSequence of NAT
for b2, b3 being Nat st b1 ^ <*b2*> in a1 & b3 <= b2 holds
b1 ^ <*b3*> in a1 ) );
end;

:: deftheorem Def5 defines Tree-like TREES_1:def 5 :
for b1 being set holds
( b1 is Tree-like iff ( b1 c= NAT * & ( for b2 being FinSequence of NAT st b2 in b1 holds
ProperPrefixes b2 c= b1 ) & ( for b2 being FinSequence of NAT
for b3, b4 being Nat st b2 ^ <*b3*> in b1 & b4 <= b3 holds
b2 ^ <*b4*> in b1 ) ) );

registration
cluster non empty Tree-like set ;
existence
ex b1 being set st
( not b1 is empty & b1 is Tree-like )
proof end;
end;

definition
mode Tree is non empty Tree-like set ;
end;

theorem Th43: :: TREES_1:43
canceled;

theorem Th44: :: TREES_1:44
for b1 being set
for b2 being Tree st b1 in b2 holds
b1 is FinSequence of NAT
proof end;

definition
let c1 be Tree;
redefine mode Element as Element of c1 -> FinSequence of NAT ;
coherence
for b1 being Element of c1 holds b1 is FinSequence of NAT
by Th44;
end;

theorem Th45: :: TREES_1:45
for b1 being Tree
for b2, b3 being FinSequence st b2 in b1 & b3 is_a_prefix_of b2 holds
b3 in b1
proof end;

theorem Th46: :: TREES_1:46
for b1 being FinSequence of NAT
for b2 being Tree
for b3 being FinSequence st b1 ^ b3 in b2 holds
b1 in b2
proof end;

theorem Th47: :: TREES_1:47
for b1 being Tree holds
( {} in b1 & <*> NAT in b1 )
proof end;

theorem Th48: :: TREES_1:48
{{} } is Tree
proof end;

theorem Th49: :: TREES_1:49
for b1, b2 being Tree holds b1 \/ b2 is Tree
proof end;

theorem Th50: :: TREES_1:50
for b1, b2 being Tree holds b1 /\ b2 is Tree
proof end;

registration
cluster finite set ;
existence
ex b1 being Tree st b1 is finite
by Th48;
end;

theorem Th51: :: TREES_1:51
canceled;

theorem Th52: :: TREES_1:52
for b1, b2 being finite Tree holds b1 \/ b2 is finite Tree by Th49;

theorem Th53: :: TREES_1:53
for b1 being Tree
for b2 being finite Tree holds
( b2 /\ b1 is finite Tree & b1 /\ b2 is finite Tree ) by Th50;

definition
let c1 be Nat;
canceled;
func elementary_tree c1 -> finite Tree equals :: TREES_1:def 7
{ <*b1*> where B is Nat : b1 < a1 } \/ {{} };
correctness
coherence
{ <*b1*> where B is Nat : b1 < c1 } \/ {{} } is finite Tree
;
proof end;
end;

:: deftheorem Def6 TREES_1:def 6 :
canceled;

:: deftheorem Def7 defines elementary_tree TREES_1:def 7 :
for b1 being Nat holds elementary_tree b1 = { <*b2*> where B is Nat : b2 < b1 } \/ {{} };

theorem Th54: :: TREES_1:54
canceled;

theorem Th55: :: TREES_1:55
for b1, b2 being Nat st b1 < b2 holds
<*b1*> in elementary_tree b2
proof end;

theorem Th56: :: TREES_1:56
elementary_tree 0 = {{} }
proof end;

theorem Th57: :: TREES_1:57
for b1 being Nat
for b2 being FinSequence of NAT holds
( not b2 in elementary_tree b1 or b2 = {} or ex b3 being Nat st
( b3 < b1 & b2 = <*b3*> ) )
proof end;

definition
let c1 be Tree;
func Leaves c1 -> Subset of a1 means :: TREES_1:def 8
for b1 being FinSequence of NAT holds
( b1 in a2 iff ( b1 in a1 & ( for b2 being FinSequence of NAT holds
( not b2 in a1 or not b1 is_a_proper_prefix_of b2 ) ) ) );
existence
ex b1 being Subset of c1 st
for b2 being FinSequence of NAT holds
( b2 in b1 iff ( b2 in c1 & ( for b3 being FinSequence of NAT holds
( not b3 in c1 or not b2 is_a_proper_prefix_of b3 ) ) ) )
proof end;
uniqueness
for b1, b2 being Subset of c1 st ( for b3 being FinSequence of NAT holds
( b3 in b1 iff ( b3 in c1 & ( for b4 being FinSequence of NAT holds
( not b4 in c1 or not b3 is_a_proper_prefix_of b4 ) ) ) ) ) & ( for b3 being FinSequence of NAT holds
( b3 in b2 iff ( b3 in c1 & ( for b4 being FinSequence of NAT holds
( not b4 in c1 or not b3 is_a_proper_prefix_of b4 ) ) ) ) ) holds
b1 = b2
proof end;
let c2 be FinSequence of NAT ;
assume E32: c2 in c1 ;
func c1 | c2 -> Tree means :Def9: :: TREES_1:def 9
for b1 being FinSequence of NAT holds
( b1 in a3 iff a2 ^ b1 in a1 );
existence
ex b1 being Tree st
for b2 being FinSequence of NAT holds
( b2 in b1 iff c2 ^ b2 in c1 )
proof end;
uniqueness
for b1, b2 being Tree st ( for b3 being FinSequence of NAT holds
( b3 in b1 iff c2 ^ b3 in c1 ) ) & ( for b3 being FinSequence of NAT holds
( b3 in b2 iff c2 ^ b3 in c1 ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def8 defines Leaves TREES_1:def 8 :
for b1 being Tree
for b2 being Subset of b1 holds
( b2 = Leaves b1 iff for b3 being FinSequence of NAT holds
( b3 in b2 iff ( b3 in b1 & ( for b4 being FinSequence of NAT holds
( not b4 in b1 or not b3 is_a_proper_prefix_of b4 ) ) ) ) );

:: deftheorem Def9 defines | TREES_1:def 9 :
for b1 being Tree
for b2 being FinSequence of NAT st b2 in b1 holds
for b3 being Tree holds
( b3 = b1 | b2 iff for b4 being FinSequence of NAT holds
( b4 in b3 iff b2 ^ b4 in b1 ) );

theorem Th58: :: TREES_1:58
canceled;

theorem Th59: :: TREES_1:59
canceled;

theorem Th60: :: TREES_1:60
for b1 being Tree holds b1 | (<*> NAT ) = b1
proof end;

registration
let c1 be finite Tree;
let c2 be Element of c1;
cluster a1 | a2 -> finite ;
coherence
c1 | c2 is finite
proof end;
end;

definition
let c1 be Tree;
assume E33: Leaves c1 <> {} ;
mode Leaf of c1 -> Element of a1 means :: TREES_1:def 10
a2 in Leaves a1;
existence
ex b1 being Element of c1 st b1 in Leaves c1
proof end;
end;

:: deftheorem Def10 defines Leaf TREES_1:def 10 :
for b1 being Tree st Leaves b1 <> {} holds
for b2 being Element of b1 holds
( b2 is Leaf of b1 iff b2 in Leaves b1 );

definition
let c1 be Tree;
mode Subtree of c1 -> Tree means :: TREES_1:def 11
ex b1 being Element of a1 st a2 = a1 | b1;
existence
ex b1 being Treeex b2 being Element of c1 st b1 = c1 | b2
proof end;
end;

:: deftheorem Def11 defines Subtree TREES_1:def 11 :
for b1, b2 being Tree holds
( b2 is Subtree of b1 iff ex b3 being Element of b1 st b2 = b1 | b3 );

definition
let c1 be Tree;
let c2 be FinSequence of NAT ;
let c3 be Tree;
assume E33: c2 in c1 ;
func c1 with-replacement c2,c3 -> Tree means :Def12: :: TREES_1:def 12
for b1 being FinSequence of NAT holds
( b1 in a4 iff ( ( b1 in a1 & not a2 is_a_proper_prefix_of b1 ) or ex b2 being FinSequence of NAT st
( b2 in a3 & b1 = a2 ^ b2 ) ) );
existence
ex b1 being Tree st
for b2 being FinSequence of NAT holds
( b2 in b1 iff ( ( b2 in c1 & not c2 is_a_proper_prefix_of b2 ) or ex b3 being FinSequence of NAT st
( b3 in c3 & b2 = c2 ^ b3 ) ) )
proof end;
uniqueness
for b1, b2 being Tree st ( for b3 being FinSequence of NAT holds
( b3 in b1 iff ( ( b3 in c1 & not c2 is_a_proper_prefix_of b3 ) or ex b4 being FinSequence of NAT st
( b4 in c3 & b3 = c2 ^ b4 ) ) ) ) & ( for b3 being FinSequence of NAT holds
( b3 in b2 iff ( ( b3 in c1 & not c2 is_a_proper_prefix_of b3 ) or ex b4 being FinSequence of NAT st
( b4 in c3 & b3 = c2 ^ b4 ) ) ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def12 defines with-replacement TREES_1:def 12 :
for b1 being Tree
for b2 being FinSequence of NAT
for b3 being Tree st b2 in b1 holds
for b4 being Tree holds
( b4 = b1 with-replacement b2,b3 iff for b5 being FinSequence of NAT holds
( b5 in b4 iff ( ( b5 in b1 & not b2 is_a_proper_prefix_of b5 ) or ex b6 being FinSequence of NAT st
( b6 in b3 & b5 = b2 ^ b6 ) ) ) );

theorem Th61: :: TREES_1:61
canceled;

theorem Th62: :: TREES_1:62
canceled;

theorem Th63: :: TREES_1:63
canceled;

theorem Th64: :: TREES_1:64
for b1 being FinSequence of NAT
for b2, b3 being Tree st b1 in b2 holds
b2 with-replacement b1,b3 = { b4 where B is Element of b2 : not b1 is_a_proper_prefix_of b4 } \/ { (b1 ^ b4) where B is Element of b3 : b4 = b4 }
proof end;

theorem Th65: :: TREES_1:65
canceled;

theorem Th66: :: TREES_1:66
for b1 being FinSequence of NAT
for b2, b3 being Tree st b1 in b2 holds
b3 = (b2 with-replacement b1,b3) | b1
proof end;

registration
let c1 be finite Tree;
let c2 be Element of c1;
let c3 be finite Tree;
cluster a1 with-replacement a2,a3 -> finite ;
coherence
c1 with-replacement c2,c3 is finite
proof end;
end;

theorem Th67: :: TREES_1:67
for b1 being FinSequence holds ProperPrefixes b1, dom b1 are_equipotent
proof end;

registration
let c1 be FinSequence;
cluster ProperPrefixes a1 -> finite ;
coherence
ProperPrefixes c1 is finite
proof end;
end;

theorem Th68: :: TREES_1:68
for b1 being FinSequence holds card (ProperPrefixes b1) = len b1
proof end;

definition
let c1 be set ;
attr a1 is AntiChain_of_Prefixes-like means :Def13: :: TREES_1:def 13
( ( for b1 being set st b1 in a1 holds
b1 is FinSequence ) & ( for b1, b2 being FinSequence st b1 in a1 & b2 in a1 & b1 <> b2 holds
not b1,b2 are_c=-comparable ) );
end;

:: deftheorem Def13 defines AntiChain_of_Prefixes-like TREES_1:def 13 :
for b1 being set holds
( b1 is AntiChain_of_Prefixes-like iff ( ( for b2 being set st b2 in b1 holds
b2 is FinSequence ) & ( for b2, b3 being FinSequence st b2 in b1 & b3 in b1 & b2 <> b3 holds
not b2,b3 are_c=-comparable ) ) );

registration
cluster AntiChain_of_Prefixes-like set ;
existence
ex b1 being set st b1 is AntiChain_of_Prefixes-like
proof end;
end;

definition
mode AntiChain_of_Prefixes is AntiChain_of_Prefixes-like set ;
end;

theorem Th69: :: TREES_1:69
canceled;

theorem Th70: :: TREES_1:70
for b1 being FinSequence holds {b1} is AntiChain_of_Prefixes-like
proof end;

theorem Th71: :: TREES_1:71
for b1, b2 being FinSequence st not b1,b2 are_c=-comparable holds
{b1,b2} is AntiChain_of_Prefixes-like
proof end;

definition
let c1 be Tree;
mode AntiChain_of_Prefixes of c1 -> AntiChain_of_Prefixes means :Def14: :: TREES_1:def 14
a2 c= a1;
existence
ex b1 being AntiChain_of_Prefixes st b1 c= c1
proof end;
end;

:: deftheorem Def14 defines AntiChain_of_Prefixes TREES_1:def 14 :
for b1 being Tree
for b2 being AntiChain_of_Prefixes holds
( b2 is AntiChain_of_Prefixes of b1 iff b2 c= b1 );

theorem Th72: :: TREES_1:72
canceled;

theorem Th73: :: TREES_1:73
for b1 being Tree holds
( {} is AntiChain_of_Prefixes of b1 & {{} } is AntiChain_of_Prefixes of b1 )
proof end;

theorem Th74: :: TREES_1:74
for b1 being Tree
for b2 being Element of b1 holds {b2} is AntiChain_of_Prefixes of b1
proof end;

theorem Th75: :: TREES_1:75
for b1 being Tree
for b2, b3 being Element of b1 st not b2,b3 are_c=-comparable holds
{b2,b3} is AntiChain_of_Prefixes of b1
proof end;

registration
let c1 be finite Tree;
cluster -> finite AntiChain_of_Prefixes of a1;
coherence
for b1 being AntiChain_of_Prefixes of c1 holds b1 is finite
proof end;
end;

definition
let c1 be finite Tree;
func height c1 -> Nat means :Def15: :: TREES_1:def 15
( ex b1 being FinSequence of NAT st
( b1 in a1 & len b1 = a2 ) & ( for b1 being FinSequence of NAT st b1 in a1 holds
len b1 <= a2 ) );
existence
ex b1 being Nat st
( ex b2 being FinSequence of NAT st
( b2 in c1 & len b2 = b1 ) & ( for b2 being FinSequence of NAT st b2 in c1 holds
len b2 <= b1 ) )
proof end;
uniqueness
for b1, b2 being Nat st ex b3 being FinSequence of NAT st
( b3 in c1 & len b3 = b1 ) & ( for b3 being FinSequence of NAT st b3 in c1 holds
len b3 <= b1 ) & ex b3 being FinSequence of NAT st
( b3 in c1 & len b3 = b2 ) & ( for b3 being FinSequence of NAT st b3 in c1 holds
len b3 <= b2 ) holds
b1 = b2
proof end;
func width c1 -> Nat means :Def16: :: TREES_1:def 16
ex b1 being AntiChain_of_Prefixes of a1 st
( a2 = card b1 & ( for b2 being AntiChain_of_Prefixes of a1 holds card b2 <= card b1 ) );
existence
ex b1 being Natex b2 being AntiChain_of_Prefixes of c1 st
( b1 = card b2 & ( for b3 being AntiChain_of_Prefixes of c1 holds card b3 <= card b2 ) )
proof end;
uniqueness
for b1, b2 being Nat st ex b3 being AntiChain_of_Prefixes of c1 st
( b1 = card b3 & ( for b4 being AntiChain_of_Prefixes of c1 holds card b4 <= card b3 ) ) & ex b3 being AntiChain_of_Prefixes of c1 st
( b2 = card b3 & ( for b4 being AntiChain_of_Prefixes of c1 holds card b4 <= card b3 ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def15 defines height TREES_1:def 15 :
for b1 being finite Tree
for b2 being Nat holds
( b2 = height b1 iff ( ex b3 being FinSequence of NAT st
( b3 in b1 & len b3 = b2 ) & ( for b3 being FinSequence of NAT st b3 in b1 holds
len b3 <= b2 ) ) );

:: deftheorem Def16 defines width TREES_1:def 16 :
for b1 being finite Tree
for b2 being Nat holds
( b2 = width b1 iff ex b3 being AntiChain_of_Prefixes of b1 st
( b2 = card b3 & ( for b4 being AntiChain_of_Prefixes of b1 holds card b4 <= card b3 ) ) );

theorem Th76: :: TREES_1:76
canceled;

theorem Th77: :: TREES_1:77
canceled;

theorem Th78: :: TREES_1:78
for b1 being finite Tree holds 1 <= width b1
proof end;

theorem Th79: :: TREES_1:79
height (elementary_tree 0) = 0
proof end;

theorem Th80: :: TREES_1:80
for b1 being finite Tree st height b1 = 0 holds
b1 = elementary_tree 0
proof end;

theorem Th81: :: TREES_1:81
for b1 being Nat holds height (elementary_tree (b1 + 1)) = 1
proof end;

theorem Th82: :: TREES_1:82
width (elementary_tree 0) = 1
proof end;

theorem Th83: :: TREES_1:83
for b1 being Nat holds width (elementary_tree (b1 + 1)) = b1 + 1
proof end;

theorem Th84: :: TREES_1:84
for b1 being finite Tree
for b2 being Element of b1 holds height (b1 | b2) <= height b1
proof end;

theorem Th85: :: TREES_1:85
for b1 being finite Tree
for b2 being Element of b1 st b2 <> {} holds
height (b1 | b2) < height b1
proof end;

scheme :: TREES_1:sch 1
s1{ P1[ Tree] } :
for b1 being finite Tree holds P1[b1]
provided
E44: for b1 being finite Tree st ( for b2 being Nat st <*b2*> in b1 holds
P1[b1 | <*b2*>] ) holds
P1[b1]
proof end;