xboole_0.miz



    begin

    reserve X,Y,Z for set,

x,y,z for object;

    scheme :: XBOOLE_0:sch1

    Separation { A() -> set , P[ object] } :

ex X be set st for x holds x in X iff x in A() & P[x];

      defpred Q[ object, object] means $1 = $2 & P[$2];

      

       A1: for x,y,z be object st Q[x, y] & Q[x, z] holds y = z;

      consider X such that

       A2: for x holds x in X iff ex y st y in A() & Q[y, x] from TARSKI:sch 1( A1);

      take X;

      let x;

      thus x in X implies x in A() & P[x]

      proof

        assume x in X;

        then ex y st y in A() & Q[y, x] by A2;

        hence thesis;

      end;

      assume x in A() & P[x];

      then ex y st y in A() & Q[y, x];

      hence x in X by A2;

    end;

    definition

      let X be set;

      :: XBOOLE_0:def1

      attr X is empty means

      : Def1: not ex x st x in X;

    end

    registration

      cluster empty for set;

      existence

      proof

        defpred P[ object] means contradiction;

        consider Y such that

         A1: for x holds x in Y iff x in the set & P[x] from Separation;

        take Y;

        thus not ex x st x in Y by A1;

      end;

    end

    definition

      :: XBOOLE_0:def2

      func {} -> set equals the empty set;

      coherence ;

      let X,Y be set;

      :: XBOOLE_0:def3

      func X \/ Y -> set means

      : Def3: for x holds x in it iff x in X or x in Y;

      existence

      proof

        take ( union {X, Y});

        let x;

        thus x in ( union {X, Y}) implies x in X or x in Y

        proof

          assume x in ( union {X, Y});

          then ex Z be set st x in Z & Z in {X, Y} by TARSKI:def 4;

          hence thesis by TARSKI:def 2;

        end;

        X in {X, Y} & Y in {X, Y} by TARSKI:def 2;

        hence thesis by TARSKI:def 4;

      end;

      uniqueness

      proof

        let A1,A2 be set such that

         A1: for x holds x in A1 iff x in X or x in Y and

         A2: for x holds x in A2 iff x in X or x in Y;

        now

          let x;

          x in A1 iff x in X or x in Y by A1;

          hence x in A1 iff x in A2 by A2;

        end;

        hence thesis by TARSKI: 2;

      end;

      commutativity ;

      idempotence ;

      :: XBOOLE_0:def4

      func X /\ Y -> set means

      : Def4: for x holds x in it iff x in X & x in Y;

      existence

      proof

        defpred P[ object] means $1 in Y;

        thus ex Z be set st for x holds x in Z iff x in X & P[x] from Separation;

      end;

      uniqueness

      proof

        let A1,A2 be set such that

         A3: for x holds x in A1 iff x in X & x in Y and

         A4: for x holds x in A2 iff x in X & x in Y;

        now

          let x;

          x in A1 iff x in X & x in Y by A3;

          hence x in A1 iff x in A2 by A4;

        end;

        hence thesis by TARSKI: 2;

      end;

      commutativity ;

      idempotence ;

      :: XBOOLE_0:def5

      func X \ Y -> set means

      : Def5: for x holds x in it iff x in X & not x in Y;

      existence

      proof

        defpred P[ object] means not $1 in Y;

        thus ex Z be set st for x holds x in Z iff x in X & P[x] from Separation;

      end;

      uniqueness

      proof

        let A1,A2 be set such that

         A5: for x holds x in A1 iff x in X & not x in Y and

         A6: for x holds x in A2 iff x in X & not x in Y;

        now

          let x;

          x in A1 iff x in X & not x in Y by A5;

          hence x in A1 iff x in A2 by A6;

        end;

        hence thesis by TARSKI: 2;

      end;

    end

    definition

      let X,Y be set;

      :: XBOOLE_0:def6

      func X \+\ Y -> set equals ((X \ Y) \/ (Y \ X));

      correctness ;

      commutativity ;

      :: XBOOLE_0:def7

      pred X misses Y means (X /\ Y) = {} ;

      symmetry ;

      :: XBOOLE_0:def8

      pred X c< Y means

      : Def8: X c= Y & X <> Y;

      irreflexivity ;

      asymmetry by TARSKI: 2;

      :: XBOOLE_0:def9

      pred X,Y are_c=-comparable means X c= Y or Y c= X;

      reflexivity ;

      symmetry ;

      :: original: =

      redefine

      :: XBOOLE_0:def10

      pred X = Y means X c= Y & Y c= X;

      compatibility by TARSKI: 2;

    end

    notation

      let X,Y be set;

      antonym X meets Y for X misses Y;

    end

    theorem :: XBOOLE_0:1

    x in (X \+\ Y) iff not (x in X iff x in Y)

    proof

      x in (X \+\ Y) iff x in (X \ Y) or x in (Y \ X) by Def3;

      hence thesis by Def5;

    end;

    theorem :: XBOOLE_0:2

    (for x holds not x in X iff (x in Y iff x in Z)) implies X = (Y \+\ Z)

    proof

      assume

       A1: not x in X iff (x in Y iff x in Z);

      now

        let x;

        x in X iff x in Y & not x in Z or x in Z & not x in Y by A1;

        then x in X iff x in (Y \ Z) or x in (Z \ Y) by Def5;

        hence x in X iff x in (Y \+\ Z) by Def3;

      end;

      hence thesis by TARSKI: 2;

    end;

    registration

      cluster {} -> empty;

      coherence ;

    end

    registration

      let x;

      cluster {x} -> non empty;

      coherence

      proof

        x in {x} by TARSKI:def 1;

        hence ex z st z in {x};

      end;

      let y;

      cluster {x, y} -> non empty;

      coherence

      proof

        x in {x, y} by TARSKI:def 2;

        hence ex z st z in {x, y};

      end;

    end

    registration

      cluster non empty for set;

      existence

      proof

        take { the set};

        thus thesis;

      end;

    end

    registration

      let D be non empty set, X be set;

      cluster (D \/ X) -> non empty;

      coherence

      proof

        consider x such that

         A1: x in D by Def1;

        x in (D \/ X) by A1, Def3;

        hence ex x st x in (D \/ X);

      end;

      cluster (X \/ D) -> non empty;

      coherence ;

    end

    

     Lm1: X is empty implies X = {}

    proof

      assume not ex x st x in X;

      then for x holds x in {} iff x in X by Def1;

      hence thesis by TARSKI: 2;

    end;

    theorem :: XBOOLE_0:3

    

     Th3: X meets Y iff ex x st x in X & x in Y

    proof

      hereby

        assume X meets Y;

        then (X /\ Y) <> {} ;

        then not (X /\ Y) is empty by Lm1;

        then

        consider x such that

         A1: x in (X /\ Y);

        take x;

        thus x in X & x in Y by A1, Def4;

      end;

      given x such that

       A2: x in X & x in Y;

      x in (X /\ Y) by A2, Def4;

      then (X /\ Y) <> {} by Def1;

      hence thesis;

    end;

    theorem :: XBOOLE_0:4

    X meets Y iff ex x st x in (X /\ Y)

    proof

      hereby

        assume X meets Y;

        then (X /\ Y) <> {} ;

        then not (X /\ Y) is empty by Lm1;

        then

        consider x such that

         A1: x in (X /\ Y);

        take x;

        thus x in (X /\ Y) by A1;

      end;

      assume ex x st x in (X /\ Y);

      then (X /\ Y) <> {} by Def1;

      hence thesis;

    end;

    theorem :: XBOOLE_0:5

    X misses Y & x in (X \/ Y) implies x in X & not x in Y or x in Y & not x in X by Def3, Th3;

    scheme :: XBOOLE_0:sch2

    Extensionality { X,Y() -> set , P[ object] } :

X() = Y()

      provided

       A1: for x holds x in X() iff P[x]

       and

       A2: for x holds x in Y() iff P[x];

      

       A3: for x holds x in Y() implies x in X() by A1, A2;

      for x holds x in X() implies x in Y() by A1, A2;

      hence thesis by A3, TARSKI: 2;

    end;

    scheme :: XBOOLE_0:sch3

    SetEq { P[ object] } :

for X1,X2 be set st (for x holds x in X1 iff P[x]) & (for x holds x in X2 iff P[x]) holds X1 = X2;

      let X1,X2 be set such that

       A1: for x holds x in X1 iff P[x] and

       A2: for x holds x in X2 iff P[x];

      thus thesis from Extensionality( A1, A2);

    end;

    begin

    theorem :: XBOOLE_0:6

    

     Th6: X c< Y implies ex x st x in Y & not x in X by Def8, TARSKI:def 3;

    theorem :: XBOOLE_0:7

    X <> {} implies ex x st x in X by Def1, Lm1;

    theorem :: XBOOLE_0:8

    X c< Y implies ex x st x in Y & X c= (Y \ {x})

    proof

      assume

       A1: X c< Y;

      then

      consider x such that

       A2: x in Y and

       A3: not x in X by Th6;

      take x;

      thus x in Y by A2;

      let y;

      assume

       A4: y in X;

      then y <> x by A3;

      then

       A5: not y in {x} by TARSKI:def 1;

      X c= Y by A1;

      then y in Y by A4;

      hence thesis by Def5, A5;

    end;

    notation

      let x,y be set;

      antonym x c/= y for x c= y;

    end

    notation

      let x be object, y be set;

      antonym x nin y for x in y;

    end