:: ZF_COLLA semantic presentation

definition
let c1 be non empty set ;
let c2 be Ordinal;
deffunc H1( T-Sequence) -> set = { b1 where B is Element of c1 : for b1 being Element of c1 st b2 in b1 holds
ex b2 being Ordinal st
( b3 in dom a1 & b2 in union {(a1 . b3)} )
}
;
func Collapse c1,c2 -> set means :Def1: :: ZF_COLLA:def 1
ex b1 being T-Sequence st
( a3 = { b2 where B is Element of a1 : for b1 being Element of a1 st b3 in b2 holds
ex b2 being Ordinal st
( b4 in dom b1 & b3 in union {(b1 . b4)} )
}
& dom b1 = a2 & ( for b2 being Ordinal st b2 in a2 holds
b1 . b2 = { b3 where B is Element of a1 : for b1 being Element of a1 st b4 in b3 holds
ex b2 being Ordinal st
( b5 in dom (b1 | b2) & b4 in union {((b1 | b2) . b5)} )
}
) );
existence
ex b1 being set ex b2 being T-Sequence st
( b1 = { b3 where B is Element of c1 : for b1 being Element of c1 st b4 in b3 holds
ex b2 being Ordinal st
( b5 in dom b2 & b4 in union {(b2 . b5)} )
}
& dom b2 = c2 & ( for b3 being Ordinal st b3 in c2 holds
b2 . b3 = { b4 where B is Element of c1 : for b1 being Element of c1 st b5 in b4 holds
ex b2 being Ordinal st
( b6 in dom (b2 | b3) & b5 in union {((b2 | b3) . b6)} )
}
) )
proof end;
uniqueness
for b1, b2 being set st ex b3 being T-Sequence st
( b1 = { b4 where B is Element of c1 : for b1 being Element of c1 st b5 in b4 holds
ex b2 being Ordinal st
( b6 in dom b3 & b5 in union {(b3 . b6)} )
}
& dom b3 = c2 & ( for b4 being Ordinal st b4 in c2 holds
b3 . b4 = { b5 where B is Element of c1 : for b1 being Element of c1 st b6 in b5 holds
ex b2 being Ordinal st
( b7 in dom (b3 | b4) & b6 in union {((b3 | b4) . b7)} )
}
) ) & ex b3 being T-Sequence st
( b2 = { b4 where B is Element of c1 : for b1 being Element of c1 st b5 in b4 holds
ex b2 being Ordinal st
( b6 in dom b3 & b5 in union {(b3 . b6)} )
}
& dom b3 = c2 & ( for b4 being Ordinal st b4 in c2 holds
b3 . b4 = { b5 where B is Element of c1 : for b1 being Element of c1 st b6 in b5 holds
ex b2 being Ordinal st
( b7 in dom (b3 | b4) & b6 in union {((b3 | b4) . b7)} )
}
) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def1 defines Collapse ZF_COLLA:def 1 :
for b1 being non empty set
for b2 being Ordinal
for b3 being set holds
( b3 = Collapse b1,b2 iff ex b4 being T-Sequence st
( b3 = { b5 where B is Element of b1 : for b1 being Element of b1 st b6 in b5 holds
ex b2 being Ordinal st
( b7 in dom b4 & b6 in union {(b4 . b7)} )
}
& dom b4 = b2 & ( for b5 being Ordinal st b5 in b2 holds
b4 . b5 = { b6 where B is Element of b1 : for b1 being Element of b1 st b7 in b6 holds
ex b2 being Ordinal st
( b8 in dom (b4 | b5) & b7 in union {((b4 | b5) . b8)} )
}
) ) );

theorem Th1: :: ZF_COLLA:1
for b1 being non empty set
for b2 being Ordinal holds Collapse b1,b2 = { b3 where B is Element of b1 : for b1 being Element of b1 st b4 in b3 holds
ex b2 being Ordinal st
( b5 in b2 & b4 in Collapse b1,b5 )
}
proof end;

theorem Th2: :: ZF_COLLA:2
for b1 being non empty set
for b2 being Element of b1 holds
( ( for b3 being Element of b1 holds not b3 in b2 ) iff b2 in Collapse b1,{} )
proof end;

theorem Th3: :: ZF_COLLA:3
for b1 being non empty set
for b2 being Ordinal
for b3 being Element of b1 holds
( b3 /\ b1 c= Collapse b1,b2 iff b3 in Collapse b1,(succ b2) )
proof end;

theorem Th4: :: ZF_COLLA:4
for b1 being non empty set
for b2, b3 being Ordinal st b2 c= b3 holds
Collapse b1,b2 c= Collapse b1,b3
proof end;

theorem Th5: :: ZF_COLLA:5
for b1 being non empty set
for b2 being Element of b1 ex b3 being Ordinal st b2 in Collapse b1,b3
proof end;

theorem Th6: :: ZF_COLLA:6
for b1 being non empty set
for b2 being Ordinal
for b3, b4 being Element of b1 st b3 in b4 & b4 in Collapse b1,b2 holds
( b3 in Collapse b1,b2 & ex b5 being Ordinal st
( b5 in b2 & b3 in Collapse b1,b5 ) )
proof end;

theorem Th7: :: ZF_COLLA:7
for b1 being non empty set
for b2 being Ordinal holds Collapse b1,b2 c= b1
proof end;

theorem Th8: :: ZF_COLLA:8
for b1 being non empty set ex b2 being Ordinal st b1 = Collapse b1,b2
proof end;

theorem Th9: :: ZF_COLLA:9
for b1 being non empty set ex b2 being Function st
( dom b2 = b1 & ( for b3 being Element of b1 holds b2 . b3 = b2 .: b3 ) )
proof end;

definition
let c1 be Function;
let c2, c3 be set ;
pred c1 is_epsilon-isomorphism_of c2,c3 means :: ZF_COLLA:def 2
( dom a1 = a2 & rng a1 = a3 & a1 is one-to-one & ( for b1, b2 being set st b1 in a2 & b2 in a2 holds
( ex b3 being set st
( b3 = b2 & b1 in b3 ) iff ex b3 being set st
( a1 . b2 = b3 & a1 . b1 in b3 ) ) ) );
end;

:: deftheorem Def2 defines is_epsilon-isomorphism_of ZF_COLLA:def 2 :
for b1 being Function
for b2, b3 being set holds
( b1 is_epsilon-isomorphism_of b2,b3 iff ( dom b1 = b2 & rng b1 = b3 & b1 is one-to-one & ( for b4, b5 being set st b4 in b2 & b5 in b2 holds
( ex b6 being set st
( b6 = b5 & b4 in b6 ) iff ex b6 being set st
( b1 . b5 = b6 & b1 . b4 in b6 ) ) ) ) );

definition
let c1, c2 be set ;
pred c1,c2 are_epsilon-isomorphic means :: ZF_COLLA:def 3
ex b1 being Function st b1 is_epsilon-isomorphism_of a1,a2;
end;

:: deftheorem Def3 defines are_epsilon-isomorphic ZF_COLLA:def 3 :
for b1, b2 being set holds
( b1,b2 are_epsilon-isomorphic iff ex b3 being Function st b3 is_epsilon-isomorphism_of b1,b2 );

theorem Th10: :: ZF_COLLA:10
canceled;

theorem Th11: :: ZF_COLLA:11
canceled;

theorem Th12: :: ZF_COLLA:12
for b1 being non empty set
for b2 being Function st dom b2 = b1 & ( for b3 being Element of b1 holds b2 . b3 = b2 .: b3 ) holds
rng b2 is epsilon-transitive
proof end;

theorem Th13: :: ZF_COLLA:13
for b1 being non empty set st b1 |= the_axiom_of_extensionality holds
for b2, b3 being Element of b1 st ( for b4 being Element of b1 holds
( b4 in b2 iff b4 in b3 ) ) holds
b2 = b3
proof end;

theorem Th14: :: ZF_COLLA:14
for b1 being non empty set st b1 |= the_axiom_of_extensionality holds
ex b2 being set st
( b2 is epsilon-transitive & b1,b2 are_epsilon-isomorphic )
proof end;