:: WELLORD2 semantic presentation

definition
let c1 be set ;
func RelIncl c1 -> Relation means :Def1: :: WELLORD2:def 1
( field a2 = a1 & ( for b1, b2 being set st b1 in a1 & b2 in a1 holds
( [b1,b2] in a2 iff b1 c= b2 ) ) );
existence
ex b1 being Relation st
( field b1 = c1 & ( for b2, b3 being set st b2 in c1 & b3 in c1 holds
( [b2,b3] in b1 iff b2 c= b3 ) ) )
proof end;
uniqueness
for b1, b2 being Relation st field b1 = c1 & ( for b3, b4 being set st b3 in c1 & b4 in c1 holds
( [b3,b4] in b1 iff b3 c= b4 ) ) & field b2 = c1 & ( for b3, b4 being set st b3 in c1 & b4 in c1 holds
( [b3,b4] in b2 iff b3 c= b4 ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def1 defines RelIncl WELLORD2:def 1 :
for b1 being set
for b2 being Relation holds
( b2 = RelIncl b1 iff ( field b2 = b1 & ( for b3, b4 being set st b3 in b1 & b4 in b1 holds
( [b3,b4] in b2 iff b3 c= b4 ) ) ) );

theorem Th1: :: WELLORD2:1
canceled;

theorem Th2: :: WELLORD2:2
for b1 being set holds RelIncl b1 is reflexive
proof end;

theorem Th3: :: WELLORD2:3
for b1 being set holds RelIncl b1 is transitive
proof end;

theorem Th4: :: WELLORD2:4
for b1 being Ordinal holds RelIncl b1 is connected
proof end;

theorem Th5: :: WELLORD2:5
for b1 being set holds RelIncl b1 is antisymmetric
proof end;

theorem Th6: :: WELLORD2:6
for b1 being Ordinal holds RelIncl b1 is well_founded
proof end;

theorem Th7: :: WELLORD2:7
for b1 being Ordinal holds RelIncl b1 is well-ordering
proof end;

theorem Th8: :: WELLORD2:8
for b1, b2 being set st b1 c= b2 holds
(RelIncl b2) |_2 b1 = RelIncl b1
proof end;

theorem Th9: :: WELLORD2:9
for b1 being Ordinal
for b2 being set st b2 c= b1 holds
RelIncl b2 is well-ordering
proof end;

theorem Th10: :: WELLORD2:10
for b1, b2 being Ordinal st b1 in b2 holds
b1 = (RelIncl b2) -Seg b1
proof end;

theorem Th11: :: WELLORD2:11
for b1, b2 being Ordinal st RelIncl b1, RelIncl b2 are_isomorphic holds
b1 = b2
proof end;

theorem Th12: :: WELLORD2:12
for b1 being Relation
for b2, b3 being Ordinal st b1, RelIncl b2 are_isomorphic & b1, RelIncl b3 are_isomorphic holds
b2 = b3
proof end;

theorem Th13: :: WELLORD2:13
for b1 being Relation st b1 is well-ordering & ( for b2 being set st b2 in field b1 holds
ex b3 being Ordinal st b1 |_2 (b1 -Seg b2), RelIncl b3 are_isomorphic ) holds
ex b2 being Ordinal st b1, RelIncl b2 are_isomorphic
proof end;

theorem Th14: :: WELLORD2:14
for b1 being Relation st b1 is well-ordering holds
ex b2 being Ordinal st b1, RelIncl b2 are_isomorphic
proof end;

definition
let c1 be Relation;
assume E15: c1 is well-ordering ;
func order_type_of c1 -> Ordinal means :Def2: :: WELLORD2:def 2
a1, RelIncl a2 are_isomorphic ;
existence
ex b1 being Ordinal st c1, RelIncl b1 are_isomorphic
by E15, Th14;
uniqueness
for b1, b2 being Ordinal st c1, RelIncl b1 are_isomorphic & c1, RelIncl b2 are_isomorphic holds
b1 = b2
by Th12;
end;

:: deftheorem Def2 defines order_type_of WELLORD2:def 2 :
for b1 being Relation st b1 is well-ordering holds
for b2 being Ordinal holds
( b2 = order_type_of b1 iff b1, RelIncl b2 are_isomorphic );

definition
let c1 be Ordinal;
let c2 be Relation;
pred c1 is_order_type_of c2 means :: WELLORD2:def 3
a1 = order_type_of a2;
end;

:: deftheorem Def3 defines is_order_type_of WELLORD2:def 3 :
for b1 being Ordinal
for b2 being Relation holds
( b1 is_order_type_of b2 iff b1 = order_type_of b2 );

theorem Th15: :: WELLORD2:15
canceled;

theorem Th16: :: WELLORD2:16
canceled;

theorem Th17: :: WELLORD2:17
for b1 being set
for b2 being Ordinal st b1 c= b2 holds
order_type_of (RelIncl b1) c= b2
proof end;

definition
let c1, c2 be set ;
redefine pred are_equipotent as c1,c2 are_equipotent means :: WELLORD2:def 4
ex b1 being Function st
( b1 is one-to-one & dom b1 = a1 & rng b1 = a2 );
compatibility
( c1,c2 are_equipotent iff ex b1 being Function st
( b1 is one-to-one & dom b1 = c1 & rng b1 = c2 ) )
proof end;
reflexivity
for b1 being set ex b2 being Function st
( b2 is one-to-one & dom b2 = b1 & rng b2 = b1 )
proof end;
symmetry
for b1, b2 being set st ex b3 being Function st
( b3 is one-to-one & dom b3 = b1 & rng b3 = b2 ) holds
ex b3 being Function st
( b3 is one-to-one & dom b3 = b2 & rng b3 = b1 )
proof end;
end;

:: deftheorem Def4 defines are_equipotent WELLORD2:def 4 :
for b1, b2 being set holds
( b1,b2 are_equipotent iff ex b3 being Function st
( b3 is one-to-one & dom b3 = b1 & rng b3 = b2 ) );

theorem Th18: :: WELLORD2:18
canceled;

theorem Th19: :: WELLORD2:19
canceled;

theorem Th20: :: WELLORD2:20
canceled;

theorem Th21: :: WELLORD2:21
canceled;

theorem Th22: :: WELLORD2:22
for b1, b2, b3 being set st b1,b2 are_equipotent & b2,b3 are_equipotent holds
b1,b3 are_equipotent
proof end;

theorem Th23: :: WELLORD2:23
canceled;

theorem Th24: :: WELLORD2:24
canceled;

theorem Th25: :: WELLORD2:25
for b1 being set
for b2 being Relation st b2 well_orders b1 holds
( field (b2 |_2 b1) = b1 & b2 |_2 b1 is well-ordering )
proof end;

Lemma17: for b1 being set
for b2 being Relation st b2 is well-ordering & b1, field b2 are_equipotent holds
ex b3 being Relation st b3 well_orders b1
proof end;

theorem Th26: :: WELLORD2:26
for b1 being set ex b2 being Relation st b2 well_orders b1
proof end;

theorem Th27: :: WELLORD2:27
for b1 being non empty set st ( for b2 being set st b2 in b1 holds
b2 <> {} ) & ( for b2, b3 being set st b2 in b1 & b3 in b1 & b2 <> b3 holds
b2 misses b3 ) holds
ex b2 being set st
for b3 being set st b3 in b1 holds
ex b4 being set st b2 /\ b3 = {b4}
proof end;

theorem Th28: :: WELLORD2:28
for b1 being non empty set st ( for b2 being set st b2 in b1 holds
b2 <> {} ) holds
ex b2 being Function st
( dom b2 = b1 & ( for b3 being set st b3 in b1 holds
b2 . b3 in b3 ) )
proof end;

scheme :: WELLORD2:sch 1
s1{ F1() -> set , F2() -> set , P1[ set , set ] } :
ex b1 being Function st
( dom b1 = F1() & rng b1 c= F2() & ( for b2 being set st b2 in F1() holds
P1[b2,b1 . b2] ) )
provided
E20: for b1 being set st b1 in F1() holds
ex b2 being set st
( b2 in F2() & P1[b1,b2] )
proof end;

scheme :: WELLORD2:sch 2
s2{ F1() -> set , F2() -> set , F3() -> set , P1[ set , set , set ] } :
ex b1, b2 being Function st
( dom b1 = F1() & dom b2 = F1() & ( for b3 being set st b3 in F1() holds
P1[b3,b1 . b3,b2 . b3] ) )
provided
E20: for b1 being set st b1 in F1() holds
ex b2, b3 being set st
( b2 in F2() & b3 in F3() & P1[b1,b2,b3] )
proof end;