:: FINSUB_1 semantic presentation

definition
let c1 be set ;
attr a1 is cup-closed means :Def1: :: FINSUB_1:def 1
for b1, b2 being set st b1 in a1 & b2 in a1 holds
b1 \/ b2 in a1;
attr a1 is cap-closed means :: FINSUB_1:def 2
for b1, b2 being set st b1 in a1 & b2 in a1 holds
b1 /\ b2 in a1;
attr a1 is diff-closed means :Def3: :: FINSUB_1:def 3
for b1, b2 being set st b1 in a1 & b2 in a1 holds
b1 \ b2 in a1;
end;

:: deftheorem Def1 defines cup-closed FINSUB_1:def 1 :
for b1 being set holds
( b1 is cup-closed iff for b2, b3 being set st b2 in b1 & b3 in b1 holds
b2 \/ b3 in b1 );

:: deftheorem Def2 defines cap-closed FINSUB_1:def 2 :
for b1 being set holds
( b1 is cap-closed iff for b2, b3 being set st b2 in b1 & b3 in b1 holds
b2 /\ b3 in b1 );

:: deftheorem Def3 defines diff-closed FINSUB_1:def 3 :
for b1 being set holds
( b1 is diff-closed iff for b2, b3 being set st b2 in b1 & b3 in b1 holds
b2 \ b3 in b1 );

definition
let c1 be set ;
attr a1 is preBoolean means :Def4: :: FINSUB_1:def 4
( a1 is cup-closed & a1 is diff-closed );
end;

:: deftheorem Def4 defines preBoolean FINSUB_1:def 4 :
for b1 being set holds
( b1 is preBoolean iff ( b1 is cup-closed & b1 is diff-closed ) );

registration
cluster preBoolean -> cup-closed diff-closed set ;
coherence
for b1 being set st b1 is preBoolean holds
( b1 is cup-closed & b1 is diff-closed )
by Def4;
cluster cup-closed diff-closed -> preBoolean set ;
coherence
for b1 being set st b1 is cup-closed & b1 is diff-closed holds
b1 is preBoolean
by Def4;
end;

registration
cluster non empty cup-closed cap-closed diff-closed preBoolean set ;
existence
ex b1 being set st
( not b1 is empty & b1 is cup-closed & b1 is cap-closed & b1 is diff-closed )
proof end;
end;

theorem Th1: :: FINSUB_1:1
canceled;

theorem Th2: :: FINSUB_1:2
canceled;

theorem Th3: :: FINSUB_1:3
canceled;

theorem Th4: :: FINSUB_1:4
canceled;

theorem Th5: :: FINSUB_1:5
canceled;

theorem Th6: :: FINSUB_1:6
canceled;

theorem Th7: :: FINSUB_1:7
canceled;

theorem Th8: :: FINSUB_1:8
canceled;

theorem Th9: :: FINSUB_1:9
canceled;

theorem Th10: :: FINSUB_1:10
for b1 being set holds
( b1 is preBoolean iff for b2, b3 being set st b2 in b1 & b3 in b1 holds
( b2 \/ b3 in b1 & b2 \ b3 in b1 ) )
proof end;

definition
let c1 be non empty preBoolean set ;
let c2, c3 be Element of c1;
redefine func \/ as c2 \/ c3 -> Element of a1;
correctness
coherence
c2 \/ c3 is Element of c1
;
by Th10;
redefine func \ as c2 \ c3 -> Element of a1;
correctness
coherence
c2 \ c3 is Element of c1
;
by Th10;
end;

theorem Th11: :: FINSUB_1:11
canceled;

theorem Th12: :: FINSUB_1:12
canceled;

theorem Th13: :: FINSUB_1:13
for b1, b2 being set
for b3 being non empty preBoolean set st b1 is Element of b3 & b2 is Element of b3 holds
b1 /\ b2 is Element of b3
proof end;

theorem Th14: :: FINSUB_1:14
for b1, b2 being set
for b3 being non empty preBoolean set st b1 is Element of b3 & b2 is Element of b3 holds
b1 \+\ b2 is Element of b3
proof end;

theorem Th15: :: FINSUB_1:15
for b1 being non empty set st ( for b2, b3 being Element of b1 holds
( b2 \+\ b3 in b1 & b2 \ b3 in b1 ) ) holds
b1 is preBoolean
proof end;

theorem Th16: :: FINSUB_1:16
for b1 being non empty set st ( for b2, b3 being Element of b1 holds
( b2 \+\ b3 in b1 & b2 /\ b3 in b1 ) ) holds
b1 is preBoolean
proof end;

theorem Th17: :: FINSUB_1:17
for b1 being non empty set st ( for b2, b3 being Element of b1 holds
( b2 \+\ b3 in b1 & b2 \/ b3 in b1 ) ) holds
b1 is preBoolean
proof end;

definition
let c1 be non empty preBoolean set ;
let c2, c3 be Element of c1;
redefine func /\ as c2 /\ c3 -> Element of a1;
coherence
c2 /\ c3 is Element of c1
by Th13;
redefine func \+\ as c2 \+\ c3 -> Element of a1;
coherence
c2 \+\ c3 is Element of c1
by Th14;
end;

theorem Th18: :: FINSUB_1:18
for b1 being non empty preBoolean set holds {} in b1
proof end;

theorem Th19: :: FINSUB_1:19
canceled;

theorem Th20: :: FINSUB_1:20
for b1 being set holds bool b1 is preBoolean
proof end;

registration
let c1 be set ;
cluster bool a1 -> cup-closed diff-closed preBoolean ;
coherence
bool c1 is preBoolean
by Th20;
end;

theorem Th21: :: FINSUB_1:21
for b1, b2 being non empty preBoolean set holds
( not b1 /\ b2 is empty & b1 /\ b2 is preBoolean )
proof end;

definition
let c1 be set ;
func Fin c1 -> preBoolean set means :Def5: :: FINSUB_1:def 5
for b1 being set holds
( b1 in a2 iff ( b1 c= a1 & b1 is finite ) );
existence
ex b1 being preBoolean set st
for b2 being set holds
( b2 in b1 iff ( b2 c= c1 & b2 is finite ) )
proof end;
uniqueness
for b1, b2 being preBoolean set st ( for b3 being set holds
( b3 in b1 iff ( b3 c= c1 & b3 is finite ) ) ) & ( for b3 being set holds
( b3 in b2 iff ( b3 c= c1 & b3 is finite ) ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def5 defines Fin FINSUB_1:def 5 :
for b1 being set
for b2 being preBoolean set holds
( b2 = Fin b1 iff for b3 being set holds
( b3 in b2 iff ( b3 c= b1 & b3 is finite ) ) );

registration
let c1 be set ;
cluster Fin a1 -> non empty cup-closed diff-closed preBoolean ;
coherence
not Fin c1 is empty
proof end;
end;

registration
let c1 be set ;
cluster -> finite Element of Fin a1;
coherence
for b1 being Element of Fin c1 holds b1 is finite
by Def5;
end;

theorem Th22: :: FINSUB_1:22
canceled;

theorem Th23: :: FINSUB_1:23
for b1, b2 being set st b1 c= b2 holds
Fin b1 c= Fin b2
proof end;

theorem Th24: :: FINSUB_1:24
for b1, b2 being set holds Fin (b1 /\ b2) = (Fin b1) /\ (Fin b2)
proof end;

theorem Th25: :: FINSUB_1:25
for b1, b2 being set holds (Fin b1) \/ (Fin b2) c= Fin (b1 \/ b2)
proof end;

theorem Th26: :: FINSUB_1:26
for b1 being set holds Fin b1 c= bool b1
proof end;

theorem Th27: :: FINSUB_1:27
for b1 being set st b1 is finite holds
Fin b1 = bool b1
proof end;

theorem Th28: :: FINSUB_1:28
Fin {} = {{} } by Th27, ZFMISC_1:1;

definition
let c1 be set ;
mode Finite_Subset of a1 is Element of Fin a1;
end;

theorem Th29: :: FINSUB_1:29
canceled;

theorem Th30: :: FINSUB_1:30
for b1 being set
for b2 being Finite_Subset of b1 holds b2 is finite ;

theorem Th31: :: FINSUB_1:31
canceled;

theorem Th32: :: FINSUB_1:32
for b1 being set
for b2 being Finite_Subset of b1 holds b2 is Subset of b1 by Def5;

theorem Th33: :: FINSUB_1:33
canceled;

theorem Th34: :: FINSUB_1:34
for b1 being set
for b2 being Subset of b1 st b1 is finite holds
b2 is Finite_Subset of b1
proof end;