begin
scheme
Separation{
F1()
-> set ,
P1[
set ] } :
ex
X being
set st
for
x being
set holds
(
x in X iff (
x in F1() &
P1[
x] ) )
:: deftheorem Def1 defines empty XBOOLE_0:def 1 :
for X being set holds
( X is empty iff for x being set holds not x in X );
definition
func {} -> set equals
the
empty set ;
coherence
the empty set is set
;
let X,
Y be
set ;
func X \/ Y -> set means :
Def3:
for
x being
set holds
(
x in it iff (
x in X or
x in Y ) );
existence
ex b1 being set st
for x being set holds
( x in b1 iff ( x in X or x in Y ) )
uniqueness
for b1, b2 being set st ( for x being set holds
( x in b1 iff ( x in X or x in Y ) ) ) & ( for x being set holds
( x in b2 iff ( x in X or x in Y ) ) ) holds
b1 = b2
commutativity
for b1, X, Y being set st ( for x being set holds
( x in b1 iff ( x in X or x in Y ) ) ) holds
for x being set holds
( x in b1 iff ( x in Y or x in X ) )
;
idempotence
for X, x being set holds
( x in X iff ( x in X or x in X ) )
;
func X /\ Y -> set means :
Def4:
for
x being
set holds
(
x in it iff (
x in X &
x in Y ) );
existence
ex b1 being set st
for x being set holds
( x in b1 iff ( x in X & x in Y ) )
uniqueness
for b1, b2 being set st ( for x being set holds
( x in b1 iff ( x in X & x in Y ) ) ) & ( for x being set holds
( x in b2 iff ( x in X & x in Y ) ) ) holds
b1 = b2
commutativity
for b1, X, Y being set st ( for x being set holds
( x in b1 iff ( x in X & x in Y ) ) ) holds
for x being set holds
( x in b1 iff ( x in Y & x in X ) )
;
idempotence
for X, x being set holds
( x in X iff ( x in X & x in X ) )
;
func X \ Y -> set means :
Def5:
for
x being
set holds
(
x in it iff (
x in X & not
x in Y ) );
existence
ex b1 being set st
for x being set holds
( x in b1 iff ( x in X & not x in Y ) )
uniqueness
for b1, b2 being set st ( for x being set holds
( x in b1 iff ( x in X & not x in Y ) ) ) & ( for x being set holds
( x in b2 iff ( x in X & not x in Y ) ) ) holds
b1 = b2
end;
:: deftheorem defines {} XBOOLE_0:def 2 :
{} = the empty set ;
:: deftheorem Def3 defines \/ XBOOLE_0:def 3 :
for X, Y, b3 being set holds
( b3 = X \/ Y iff for x being set holds
( x in b3 iff ( x in X or x in Y ) ) );
:: deftheorem Def4 defines /\ XBOOLE_0:def 4 :
for X, Y, b3 being set holds
( b3 = X /\ Y iff for x being set holds
( x in b3 iff ( x in X & x in Y ) ) );
:: deftheorem Def5 defines \ XBOOLE_0:def 5 :
for X, Y, b3 being set holds
( b3 = X \ Y iff for x being set holds
( x in b3 iff ( x in X & not x in Y ) ) );
:: deftheorem defines \+\ XBOOLE_0:def 6 :
for X, Y being set holds X \+\ Y = (X \ Y) \/ (Y \ X);
:: deftheorem Def7 defines misses XBOOLE_0:def 7 :
for X, Y being set holds
( X misses Y iff X /\ Y = {} );
:: deftheorem Def8 defines c< XBOOLE_0:def 8 :
for X, Y being set holds
( X c< Y iff ( X c= Y & X <> Y ) );
:: deftheorem defines are_c=-comparable XBOOLE_0:def 9 :
for X, Y being set holds
( X,Y are_c=-comparable iff ( X c= Y or Y c= X ) );
:: deftheorem defines = XBOOLE_0:def 10 :
for X, Y being set holds
( X = Y iff ( X c= Y & Y c= X ) );
theorem
for
x,
X,
Y being
set holds
(
x in X \+\ Y iff ( (
x in X & not
x in Y ) or (
x in Y & not
x in X ) ) )
theorem
for
X,
Y,
Z being
set st ( for
x being
set holds
( not
x in X iff (
x in Y iff
x in Z ) ) ) holds
X = Y \+\ Z
Lm1:
for X being set st X is empty holds
X = {}
theorem Th3:
for
X,
Y being
set holds
(
X meets Y iff ex
x being
set st
(
x in X &
x in Y ) )
theorem
theorem
scheme
Extensionality{
F1()
-> set ,
F2()
-> set ,
P1[
set ] } :
provided
A1:
for
x being
set holds
(
x in F1() iff
P1[
x] )
and A2:
for
x being
set holds
(
x in F2() iff
P1[
x] )
scheme
SetEq{
P1[
set ] } :
for
X1,
X2 being
set st ( for
x being
set holds
(
x in X1 iff
P1[
x] ) ) & ( for
x being
set holds
(
x in X2 iff
P1[
x] ) ) holds
X1 = X2
begin
theorem
for
X,
Y being
set st
X c< Y holds
ex
x being
set st
(
x in Y & not
x in X )
theorem