:: FINSUB_1 semantic presentation
begin
definition
let IT be set ;
attrIT is cup-closed means :Def1: :: FINSUB_1:def 1
for X, Y being set st X in IT & Y in IT holds
X \/ Y in IT;
attrIT is cap-closed means :: FINSUB_1:def 2
for X, Y being set st X in IT & Y in IT holds
X /\ Y in IT;
attrIT is diff-closed means :Def3: :: FINSUB_1:def 3
for X, Y being set st X in IT & Y in IT holds
X \ Y in IT;
end;
:: deftheorem Def1 defines cup-closed FINSUB_1:def_1_:_
for IT being set holds
( IT is cup-closed iff for X, Y being set st X in IT & Y in IT holds
X \/ Y in IT );
:: deftheorem defines cap-closed FINSUB_1:def_2_:_
for IT being set holds
( IT is cap-closed iff for X, Y being set st X in IT & Y in IT holds
X /\ Y in IT );
:: deftheorem Def3 defines diff-closed FINSUB_1:def_3_:_
for IT being set holds
( IT is diff-closed iff for X, Y being set st X in IT & Y in IT holds
X \ Y in IT );
definition
let IT be set ;
attrIT is preBoolean means :Def4: :: FINSUB_1:def 4
( IT is cup-closed & IT is diff-closed );
end;
:: deftheorem Def4 defines preBoolean FINSUB_1:def_4_:_
for IT being set holds
( IT is preBoolean iff ( IT is cup-closed & IT is diff-closed ) );
registration
cluster preBoolean -> cup-closed diff-closed for 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 for 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 for set ;
existence
ex b1 being set st
( not b1 is empty & b1 is cup-closed & b1 is cap-closed & b1 is diff-closed )
proof
take {{}} ; ::_thesis: ( not {{}} is empty & {{}} is cup-closed & {{}} is cap-closed & {{}} is diff-closed )
thus not {{}} is empty ; ::_thesis: ( {{}} is cup-closed & {{}} is cap-closed & {{}} is diff-closed )
thus {{}} is cup-closed ::_thesis: ( {{}} is cap-closed & {{}} is diff-closed )
proof
let X, Y be set ; :: according to FINSUB_1:def_1 ::_thesis: ( X in {{}} & Y in {{}} implies X \/ Y in {{}} )
assume that
A1: X in {{}} and
A2: Y in {{}} ; ::_thesis: X \/ Y in {{}}
X = {} by A1, TARSKI:def_1;
hence X \/ Y in {{}} by A2; ::_thesis: verum
end;
thus {{}} is cap-closed ::_thesis: {{}} is diff-closed
proof
let X, Y be set ; :: according to FINSUB_1:def_2 ::_thesis: ( X in {{}} & Y in {{}} implies X /\ Y in {{}} )
assume that
A3: X in {{}} and
Y in {{}} ; ::_thesis: X /\ Y in {{}}
X = {} by A3, TARSKI:def_1;
hence X /\ Y in {{}} by TARSKI:def_1; ::_thesis: verum
end;
thus {{}} is diff-closed ::_thesis: verum
proof
let X, Y be set ; :: according to FINSUB_1:def_3 ::_thesis: ( X in {{}} & Y in {{}} implies X \ Y in {{}} )
assume that
A4: X in {{}} and
Y in {{}} ; ::_thesis: X \ Y in {{}}
X = {} by A4, TARSKI:def_1;
hence X \ Y in {{}} by TARSKI:def_1; ::_thesis: verum
end;
end;
end;
theorem Th1: :: FINSUB_1:1
for A being set holds
( A is preBoolean iff for X, Y being set st X in A & Y in A holds
( X \/ Y in A & X \ Y in A ) )
proof
let A be set ; ::_thesis: ( A is preBoolean iff for X, Y being set st X in A & Y in A holds
( X \/ Y in A & X \ Y in A ) )
thus ( A is preBoolean implies for X, Y being set st X in A & Y in A holds
( X \/ Y in A & X \ Y in A ) ) by Def1, Def3; ::_thesis: ( ( for X, Y being set st X in A & Y in A holds
( X \/ Y in A & X \ Y in A ) ) implies A is preBoolean )
assume A1: for X, Y being set st X in A & Y in A holds
( X \/ Y in A & X \ Y in A ) ; ::_thesis: A is preBoolean
A2: A is diff-closed
proof
let X, Y be set ; :: according to FINSUB_1:def_3 ::_thesis: ( X in A & Y in A implies X \ Y in A )
assume ( X in A & Y in A ) ; ::_thesis: X \ Y in A
hence X \ Y in A by A1; ::_thesis: verum
end;
A is cup-closed
proof
let X, Y be set ; :: according to FINSUB_1:def_1 ::_thesis: ( X in A & Y in A implies X \/ Y in A )
assume ( X in A & Y in A ) ; ::_thesis: X \/ Y in A
hence X \/ Y in A by A1; ::_thesis: verum
end;
hence A is preBoolean by A2; ::_thesis: verum
end;
definition
let A be non empty preBoolean set ;
let X, Y be Element of A;
:: original: \/
redefine funcX \/ Y -> Element of A;
correctness
coherence
X \/ Y is Element of A;
by Th1;
:: original: \
redefine funcX \ Y -> Element of A;
correctness
coherence
X \ Y is Element of A;
by Th1;
end;
theorem Th2: :: FINSUB_1:2
for X, Y being set
for A being non empty preBoolean set st X is Element of A & Y is Element of A holds
X /\ Y is Element of A
proof
let X, Y be set ; ::_thesis: for A being non empty preBoolean set st X is Element of A & Y is Element of A holds
X /\ Y is Element of A
let A be non empty preBoolean set ; ::_thesis: ( X is Element of A & Y is Element of A implies X /\ Y is Element of A )
assume ( X is Element of A & Y is Element of A ) ; ::_thesis: X /\ Y is Element of A
then reconsider X = X, Y = Y as Element of A ;
X /\ Y = X \ (X \ Y) by XBOOLE_1:48;
hence X /\ Y is Element of A ; ::_thesis: verum
end;
theorem Th3: :: FINSUB_1:3
for X, Y being set
for A being non empty preBoolean set st X is Element of A & Y is Element of A holds
X \+\ Y is Element of A
proof
let X, Y be set ; ::_thesis: for A being non empty preBoolean set st X is Element of A & Y is Element of A holds
X \+\ Y is Element of A
let A be non empty preBoolean set ; ::_thesis: ( X is Element of A & Y is Element of A implies X \+\ Y is Element of A )
assume ( X is Element of A & Y is Element of A ) ; ::_thesis: X \+\ Y is Element of A
then reconsider X = X, Y = Y as Element of A ;
X \+\ Y = (X \ Y) \/ (Y \ X) ;
hence X \+\ Y is Element of A ; ::_thesis: verum
end;
theorem :: FINSUB_1:4
for A being non empty set st ( for X, Y being Element of A holds
( X \+\ Y in A & X \ Y in A ) ) holds
A is preBoolean
proof
let A be non empty set ; ::_thesis: ( ( for X, Y being Element of A holds
( X \+\ Y in A & X \ Y in A ) ) implies A is preBoolean )
assume A1: for X, Y being Element of A holds
( X \+\ Y in A & X \ Y in A ) ; ::_thesis: A is preBoolean
now__::_thesis:_for_X,_Y_being_set_st_X_in_A_&_Y_in_A_holds_
(_X_\/_Y_in_A_&_X_\_Y_in_A_)
let X, Y be set ; ::_thesis: ( X in A & Y in A implies ( X \/ Y in A & X \ Y in A ) )
assume that
A2: X in A and
A3: Y in A ; ::_thesis: ( X \/ Y in A & X \ Y in A )
reconsider Z = Y \ X as Element of A by A1, A2, A3;
X \/ Y = X \+\ Z by XBOOLE_1:98;
hence X \/ Y in A by A1, A2; ::_thesis: X \ Y in A
thus X \ Y in A by A1, A2, A3; ::_thesis: verum
end;
hence A is preBoolean by Th1; ::_thesis: verum
end;
theorem :: FINSUB_1:5
for A being non empty set st ( for X, Y being Element of A holds
( X \+\ Y in A & X /\ Y in A ) ) holds
A is preBoolean
proof
let A be non empty set ; ::_thesis: ( ( for X, Y being Element of A holds
( X \+\ Y in A & X /\ Y in A ) ) implies A is preBoolean )
assume A1: for X, Y being Element of A holds
( X \+\ Y in A & X /\ Y in A ) ; ::_thesis: A is preBoolean
now__::_thesis:_for_X,_Y_being_set_st_X_in_A_&_Y_in_A_holds_
(_X_\/_Y_in_A_&_X_\_Y_in_A_)
let X, Y be set ; ::_thesis: ( X in A & Y in A implies ( X \/ Y in A & X \ Y in A ) )
assume that
A2: X in A and
A3: Y in A ; ::_thesis: ( X \/ Y in A & X \ Y in A )
reconsider Z1 = X \+\ Y, Z2 = X /\ Y as Element of A by A1, A2, A3;
X \/ Y = Z1 \+\ Z2 by XBOOLE_1:94;
hence X \/ Y in A by A1; ::_thesis: X \ Y in A
X \ Y = X \+\ Z2 by XBOOLE_1:100;
hence X \ Y in A by A1, A2; ::_thesis: verum
end;
hence A is preBoolean by Th1; ::_thesis: verum
end;
theorem :: FINSUB_1:6
for A being non empty set st ( for X, Y being Element of A holds
( X \+\ Y in A & X \/ Y in A ) ) holds
A is preBoolean
proof
let A be non empty set ; ::_thesis: ( ( for X, Y being Element of A holds
( X \+\ Y in A & X \/ Y in A ) ) implies A is preBoolean )
assume A1: for X, Y being Element of A holds
( X \+\ Y in A & X \/ Y in A ) ; ::_thesis: A is preBoolean
now__::_thesis:_for_X,_Y_being_set_st_X_in_A_&_Y_in_A_holds_
(_X_\/_Y_in_A_&_X_\_Y_in_A_)
let X, Y be set ; ::_thesis: ( X in A & Y in A implies ( X \/ Y in A & X \ Y in A ) )
assume that
A2: X in A and
A3: Y in A ; ::_thesis: ( X \/ Y in A & X \ Y in A )
thus X \/ Y in A by A1, A2, A3; ::_thesis: X \ Y in A
reconsider Z1 = X \+\ Y, Z2 = X \/ Y as Element of A by A1, A2, A3;
X /\ Y = Z1 \+\ Z2 by XBOOLE_1:95;
then reconsider Z = X /\ Y as Element of A by A1;
X \ Y = X \+\ Z by XBOOLE_1:100;
hence X \ Y in A by A1, A2; ::_thesis: verum
end;
hence A is preBoolean by Th1; ::_thesis: verum
end;
definition
let A be non empty preBoolean set ;
let X, Y be Element of A;
:: original: /\
redefine funcX /\ Y -> Element of A;
coherence
X /\ Y is Element of A by Th2;
:: original: \+\
redefine funcX \+\ Y -> Element of A;
coherence
X \+\ Y is Element of A by Th3;
end;
theorem Th7: :: FINSUB_1:7
for A being non empty preBoolean set holds {} in A
proof
let A be non empty preBoolean set ; ::_thesis: {} in A
set x = the Element of A;
the Element of A \ the Element of A = {} by XBOOLE_1:37;
hence {} in A ; ::_thesis: verum
end;
theorem Th8: :: FINSUB_1:8
for A being set holds bool A is preBoolean
proof
let A be set ; ::_thesis: bool A is preBoolean
now__::_thesis:_for_X,_Y_being_set_st_X_in_bool_A_&_Y_in_bool_A_holds_
(_X_\/_Y_in_bool_A_&_X_\_Y_in_bool_A_)
let X, Y be set ; ::_thesis: ( X in bool A & Y in bool A implies ( X \/ Y in bool A & X \ Y in bool A ) )
assume ( X in bool A & Y in bool A ) ; ::_thesis: ( X \/ Y in bool A & X \ Y in bool A )
then reconsider X9 = X, Y9 = Y as Subset of A ;
( X9 \/ Y9 in bool A & X9 \ Y9 in bool A ) ;
hence ( X \/ Y in bool A & X \ Y in bool A ) ; ::_thesis: verum
end;
hence bool A is preBoolean by Th1; ::_thesis: verum
end;
registration
let A be set ;
cluster bool A -> preBoolean ;
coherence
bool A is preBoolean by Th8;
end;
theorem :: FINSUB_1:9
for A, B being non empty preBoolean set holds
( not A /\ B is empty & A /\ B is preBoolean )
proof
let A, B be non empty preBoolean set ; ::_thesis: ( not A /\ B is empty & A /\ B is preBoolean )
( {} in A & {} in B ) by Th7;
then reconsider C = A /\ B as non empty set by XBOOLE_0:def_4;
now__::_thesis:_for_X,_Y_being_set_st_X_in_C_&_Y_in_C_holds_
(_X_\/_Y_in_C_&_X_\_Y_in_C_)
let X, Y be set ; ::_thesis: ( X in C & Y in C implies ( X \/ Y in C & X \ Y in C ) )
assume A1: ( X in C & Y in C ) ; ::_thesis: ( X \/ Y in C & X \ Y in C )
then A2: ( X in B & Y in B ) by XBOOLE_0:def_4;
then A3: X \/ Y in B by Th1;
A4: X \ Y in B by A2, Th1;
A5: ( X in A & Y in A ) by A1, XBOOLE_0:def_4;
then X \/ Y in A by Th1;
hence X \/ Y in C by A3, XBOOLE_0:def_4; ::_thesis: X \ Y in C
X \ Y in A by A5, Th1;
hence X \ Y in C by A4, XBOOLE_0:def_4; ::_thesis: verum
end;
hence ( not A /\ B is empty & A /\ B is preBoolean ) by Th1; ::_thesis: verum
end;
definition
let A be set ;
func Fin A -> preBoolean set means :Def5: :: FINSUB_1:def 5
for X being set holds
( X in it iff ( X c= A & X is finite ) );
existence
ex b1 being preBoolean set st
for X being set holds
( X in b1 iff ( X c= A & X is finite ) )
proof
defpred S1[ set ] means ex y being set st
( y = $1 & y c= A & y is finite );
consider P being set such that
A1: for x being set holds
( x in P iff ( x in bool A & S1[x] ) ) from XBOOLE_0:sch_1();
{} c= A by XBOOLE_1:2;
then reconsider Q = P as non empty set by A1;
for X, Y being set st X in Q & Y in Q holds
( X \/ Y in Q & X \ Y in Q )
proof
let X, Y be set ; ::_thesis: ( X in Q & Y in Q implies ( X \/ Y in Q & X \ Y in Q ) )
assume that
A2: X in Q and
A3: Y in Q ; ::_thesis: ( X \/ Y in Q & X \ Y in Q )
consider Z1 being set such that
A4: Z1 = X and
A5: Z1 c= A and
A6: Z1 is finite by A1, A2;
consider Z2 being set such that
A7: Z2 = Y and
A8: Z2 c= A and
A9: Z2 is finite by A1, A3;
A10: Z1 \ Z2 c= A by A5, XBOOLE_1:1;
Z1 \/ Z2 c= A by A5, A8, XBOOLE_1:8;
hence ( X \/ Y in Q & X \ Y in Q ) by A1, A4, A6, A7, A9, A10; ::_thesis: verum
end;
then reconsider R = Q as non empty preBoolean set by Th1;
for X being set holds
( X in R iff ( X c= A & X is finite ) )
proof
let X be set ; ::_thesis: ( X in R iff ( X c= A & X is finite ) )
thus ( X in R implies ( X c= A & X is finite ) ) ::_thesis: ( X c= A & X is finite implies X in R )
proof
assume X in R ; ::_thesis: ( X c= A & X is finite )
then ex Y being set st
( Y = X & Y c= A & Y is finite ) by A1;
hence ( X c= A & X is finite ) ; ::_thesis: verum
end;
thus ( X c= A & X is finite implies X in R ) by A1; ::_thesis: verum
end;
hence ex b1 being preBoolean set st
for X being set holds
( X in b1 iff ( X c= A & X is finite ) ) ; ::_thesis: verum
end;
uniqueness
for b1, b2 being preBoolean set st ( for X being set holds
( X in b1 iff ( X c= A & X is finite ) ) ) & ( for X being set holds
( X in b2 iff ( X c= A & X is finite ) ) ) holds
b1 = b2
proof
let P, Q be preBoolean set ; ::_thesis: ( ( for X being set holds
( X in P iff ( X c= A & X is finite ) ) ) & ( for X being set holds
( X in Q iff ( X c= A & X is finite ) ) ) implies P = Q )
assume that
A11: for X being set holds
( X in P iff ( X c= A & X is finite ) ) and
A12: for X being set holds
( X in Q iff ( X c= A & X is finite ) ) ; ::_thesis: P = Q
for x being set holds
( x in P iff x in Q )
proof
let x be set ; ::_thesis: ( x in P iff x in Q )
thus ( x in P implies x in Q ) ::_thesis: ( x in Q implies x in P )
proof
assume x in P ; ::_thesis: x in Q
then ( x c= A & x is finite ) by A11;
hence x in Q by A12; ::_thesis: verum
end;
thus ( x in Q implies x in P ) ::_thesis: verum
proof
assume x in Q ; ::_thesis: x in P
then ( x c= A & x is finite ) by A12;
hence x in P by A11; ::_thesis: verum
end;
end;
hence P = Q by TARSKI:1; ::_thesis: verum
end;
end;
:: deftheorem Def5 defines Fin FINSUB_1:def_5_:_
for A being set
for b2 being preBoolean set holds
( b2 = Fin A iff for X being set holds
( X in b2 iff ( X c= A & X is finite ) ) );
registration
let A be set ;
cluster Fin A -> non empty preBoolean ;
coherence
not Fin A is empty
proof
{} c= A by XBOOLE_1:2;
hence not Fin A is empty by Def5; ::_thesis: verum
end;
end;
registration
let A be set ;
cluster -> finite for Element of Fin A;
coherence
for b1 being Element of Fin A holds b1 is finite by Def5;
end;
theorem Th10: :: FINSUB_1:10
for A, B being set st A c= B holds
Fin A c= Fin B
proof
let A, B be set ; ::_thesis: ( A c= B implies Fin A c= Fin B )
assume A1: A c= B ; ::_thesis: Fin A c= Fin B
now__::_thesis:_for_X_being_set_st_X_in_Fin_A_holds_
X_in_Fin_B
let X be set ; ::_thesis: ( X in Fin A implies X in Fin B )
assume A2: X in Fin A ; ::_thesis: X in Fin B
then X c= A by Def5;
then X c= B by A1, XBOOLE_1:1;
hence X in Fin B by A2, Def5; ::_thesis: verum
end;
hence Fin A c= Fin B by TARSKI:def_3; ::_thesis: verum
end;
theorem :: FINSUB_1:11
for A, B being set holds Fin (A /\ B) = (Fin A) /\ (Fin B)
proof
let A, B be set ; ::_thesis: Fin (A /\ B) = (Fin A) /\ (Fin B)
( Fin (A /\ B) c= Fin A & Fin (A /\ B) c= Fin B ) by Th10, XBOOLE_1:17;
hence Fin (A /\ B) c= (Fin A) /\ (Fin B) by XBOOLE_1:19; :: according to XBOOLE_0:def_10 ::_thesis: (Fin A) /\ (Fin B) c= Fin (A /\ B)
now__::_thesis:_for_X_being_set_st_X_in_(Fin_A)_/\_(Fin_B)_holds_
X_in_Fin_(A_/\_B)
let X be set ; ::_thesis: ( X in (Fin A) /\ (Fin B) implies X in Fin (A /\ B) )
assume A1: X in (Fin A) /\ (Fin B) ; ::_thesis: X in Fin (A /\ B)
then X in Fin B by XBOOLE_0:def_4;
then A2: X c= B by Def5;
A3: X in Fin A by A1, XBOOLE_0:def_4;
then X c= A by Def5;
then X c= A /\ B by A2, XBOOLE_1:19;
hence X in Fin (A /\ B) by A3, Def5; ::_thesis: verum
end;
hence (Fin A) /\ (Fin B) c= Fin (A /\ B) by TARSKI:def_3; ::_thesis: verum
end;
theorem :: FINSUB_1:12
for A, B being set holds (Fin A) \/ (Fin B) c= Fin (A \/ B)
proof
let A, B be set ; ::_thesis: (Fin A) \/ (Fin B) c= Fin (A \/ B)
( Fin A c= Fin (A \/ B) & Fin B c= Fin (A \/ B) ) by Th10, XBOOLE_1:7;
hence (Fin A) \/ (Fin B) c= Fin (A \/ B) by XBOOLE_1:8; ::_thesis: verum
end;
theorem Th13: :: FINSUB_1:13
for A being set holds Fin A c= bool A
proof
let A be set ; ::_thesis: Fin A c= bool A
let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in Fin A or x in bool A )
assume x in Fin A ; ::_thesis: x in bool A
then x c= A by Def5;
hence x in bool A ; ::_thesis: verum
end;
theorem Th14: :: FINSUB_1:14
for A being set st A is finite holds
Fin A = bool A
proof
let A be set ; ::_thesis: ( A is finite implies Fin A = bool A )
assume A1: A is finite ; ::_thesis: Fin A = bool A
A2: bool A c= Fin A
proof
let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in bool A or x in Fin A )
assume x in bool A ; ::_thesis: x in Fin A
hence x in Fin A by A1, Def5; ::_thesis: verum
end;
Fin A c= bool A by Th13;
hence Fin A = bool A by A2, XBOOLE_0:def_10; ::_thesis: verum
end;
theorem :: FINSUB_1:15
Fin {} = {{}} by Th14, ZFMISC_1:1;
definition
let A be set ;
mode Finite_Subset of A is Element of Fin A;
end;
theorem :: FINSUB_1:16
for A being set
for X being Finite_Subset of A holds X is finite ;
theorem :: FINSUB_1:17
for A being set
for X being Finite_Subset of A holds X is Subset of A by Def5;
theorem :: FINSUB_1:18
for A being set
for X being Subset of A st A is finite holds
X is Finite_Subset of A by Def5;