Article CLASSES1, MML version 4.99.1005

:: CLASSES1:attrnot 1 => CLASSES1:attr 1
definition
  let a1 be set;
  attr a1 is subset-closed means
    for b1, b2 being set
          st b1 in a1 & b2 c= b1
       holds b2 in a1;
end;

:: CLASSES1:dfs 1
definiens
  let a1 be set;
To prove
     a1 is subset-closed
it is sufficient to prove
  thus for b1, b2 being set
          st b1 in a1 & b2 c= b1
       holds b2 in a1;

:: CLASSES1:def 1
theorem
for b1 being set holds
      b1 is subset-closed
   iff
      for b2, b3 being set
            st b2 in b1 & b3 c= b2
         holds b3 in b1;

:: CLASSES1:attrnot 2 => CLASSES1:attr 2
definition
  let a1 be set;
  attr a1 is being_Tarski-Class means
    a1 is subset-closed &
     (for b1 being set
           st b1 in a1
        holds bool b1 in a1) &
     (for b1 being set
           st b1 c= a1 & not b1,a1 are_equipotent
        holds b1 in a1);
end;

:: CLASSES1:dfs 2
definiens
  let a1 be set;
To prove
     a1 is being_Tarski-Class
it is sufficient to prove
  thus a1 is subset-closed &
     (for b1 being set
           st b1 in a1
        holds bool b1 in a1) &
     (for b1 being set
           st b1 c= a1 & not b1,a1 are_equipotent
        holds b1 in a1);

:: CLASSES1:def 2
theorem
for b1 being set holds
      b1 is being_Tarski-Class
   iff
      b1 is subset-closed &
       (for b2 being set
             st b2 in b1
          holds bool b2 in b1) &
       (for b2 being set
             st b2 c= b1 & not b2,b1 are_equipotent
          holds b2 in b1);

:: CLASSES1:prednot 1 => CLASSES1:attr 2
notation
  let a1 be set;
  synonym a1 is_Tarski-Class for being_Tarski-Class;
end;

:: CLASSES1:prednot 2 => CLASSES1:pred 1
definition
  let a1, a2 be set;
  pred A2 is_Tarski-Class_of A1 means
    a1 in a2 & a2 is being_Tarski-Class;
end;

:: CLASSES1:dfs 3
definiens
  let a1, a2 be set;
To prove
     a2 is_Tarski-Class_of a1
it is sufficient to prove
  thus a1 in a2 & a2 is being_Tarski-Class;

:: CLASSES1:def 3
theorem
for b1, b2 being set holds
   b2 is_Tarski-Class_of b1
iff
   b1 in b2 & b2 is being_Tarski-Class;

:: CLASSES1:funcnot 1 => CLASSES1:func 1
definition
  let a1 be set;
  func Tarski-Class A1 -> set means
    it is_Tarski-Class_of a1 &
     (for b1 being set
           st b1 is_Tarski-Class_of a1
        holds it c= b1);
end;

:: CLASSES1:def 4
theorem
for b1, b2 being set holds
   b2 = Tarski-Class b1
iff
   b2 is_Tarski-Class_of b1 &
    (for b3 being set
          st b3 is_Tarski-Class_of b1
       holds b2 c= b3);

:: CLASSES1:funcreg 1
registration
  let a1 be set;
  cluster Tarski-Class a1 -> non empty;
end;

:: CLASSES1:th 2
theorem
for b1 being set holds
      b1 is being_Tarski-Class
   iff
      b1 is subset-closed &
       (for b2 being set
             st b2 in b1
          holds bool b2 in b1) &
       (for b2 being set
             st b2 c= b1 & Card b2 in Card b1
          holds b2 in b1);

:: CLASSES1:th 5
theorem
for b1 being set holds
   b1 in Tarski-Class b1;

:: CLASSES1:th 6
theorem
for b1, b2, b3 being set
      st b1 in Tarski-Class b2 & b3 c= b1
   holds b3 in Tarski-Class b2;

:: CLASSES1:th 7
theorem
for b1, b2 being set
      st b1 in Tarski-Class b2
   holds bool b1 in Tarski-Class b2;

:: CLASSES1:th 8
theorem
for b1, b2 being set
      st b1 c= Tarski-Class b2 & not b1,Tarski-Class b2 are_equipotent
   holds b1 in Tarski-Class b2;

:: CLASSES1:th 9
theorem
for b1, b2 being set
      st b1 c= Tarski-Class b2 & Card b1 in Card Tarski-Class b2
   holds b1 in Tarski-Class b2;

:: CLASSES1:funcnot 2 => CLASSES1:func 2
definition
  let a1 be set;
  let a2 be ordinal set;
  func Tarski-Class(A1,A2) -> set means
    ex b1 being Relation-like Function-like T-Sequence-like set st
       it = last b1 &
        proj1 b1 = succ a2 &
        b1 . {} = {a1} &
        (for b2 being ordinal set
              st succ b2 in succ a2
           holds b1 . succ b2 = ({b3 where b3 is Element of Tarski-Class a1: ex b4 being Element of Tarski-Class a1 st
              b4 in b1 . b2 & b3 c= b4} \/ {bool b3 where b3 is Element of Tarski-Class a1: b3 in b1 . b2}) \/ ((bool (b1 . b2)) /\ Tarski-Class a1)) &
        (for b2 being ordinal set
              st b2 in succ a2 & b2 <> {} & b2 is being_limit_ordinal
           holds b1 . b2 = (union proj2 (b1 | b2)) /\ Tarski-Class a1);
end;

:: CLASSES1:def 5
theorem
for b1 being set
for b2 being ordinal set
for b3 being set holds
      b3 = Tarski-Class(b1,b2)
   iff
      ex b4 being Relation-like Function-like T-Sequence-like set st
         b3 = last b4 &
          proj1 b4 = succ b2 &
          b4 . {} = {b1} &
          (for b5 being ordinal set
                st succ b5 in succ b2
             holds b4 . succ b5 = ({b6 where b6 is Element of Tarski-Class b1: ex b7 being Element of Tarski-Class b1 st
                b7 in b4 . b5 & b6 c= b7} \/ {bool b6 where b6 is Element of Tarski-Class b1: b6 in b4 . b5}) \/ ((bool (b4 . b5)) /\ Tarski-Class b1)) &
          (for b5 being ordinal set
                st b5 in succ b2 & b5 <> {} & b5 is being_limit_ordinal
             holds b4 . b5 = (union proj2 (b4 | b5)) /\ Tarski-Class b1);

:: CLASSES1:funcnot 3 => CLASSES1:func 3
definition
  let a1 be set;
  let a2 be ordinal set;
  redefine func Tarski-Class(a1,a2) -> Element of bool Tarski-Class a1;
end;

:: CLASSES1:th 10
theorem
for b1 being set holds
   Tarski-Class(b1,{}) = {b1};

:: CLASSES1:th 11
theorem
for b1 being set
for b2 being ordinal set holds
   Tarski-Class(b1,succ b2) = ({b3 where b3 is Element of Tarski-Class b1: ex b4 being Element of Tarski-Class b1 st
      b4 in Tarski-Class(b1,b2) & b3 c= b4} \/ {bool b3 where b3 is Element of Tarski-Class b1: b3 in Tarski-Class(b1,b2)}) \/ ((bool Tarski-Class(b1,b2)) /\ Tarski-Class b1);

:: CLASSES1:th 12
theorem
for b1 being set
for b2 being ordinal set
      st b2 <> {} & b2 is being_limit_ordinal
   holds Tarski-Class(b1,b2) = {b3 where b3 is Element of Tarski-Class b1: ex b4 being ordinal set st
      b4 in b2 & b3 in Tarski-Class(b1,b4)};

:: CLASSES1:th 13
theorem
for b1, b2 being set
for b3 being ordinal set holds
      b1 in Tarski-Class(b2,succ b3)
   iff
      ((b1 c= Tarski-Class(b2,b3) implies not b1 in Tarski-Class b2) implies ex b4 being set st
         b4 in Tarski-Class(b2,b3) & (b1 c= b4 or b1 = bool b4));

:: CLASSES1:th 14
theorem
for b1, b2, b3 being set
for b4 being ordinal set
      st b1 c= b2 & b2 in Tarski-Class(b3,b4)
   holds b1 in Tarski-Class(b3,succ b4);

:: CLASSES1:th 15
theorem
for b1, b2 being set
for b3 being ordinal set
      st b1 in Tarski-Class(b2,b3)
   holds bool b1 in Tarski-Class(b2,succ b3);

:: CLASSES1:th 16
theorem
for b1, b2 being set
for b3 being ordinal set
      st b3 <> {} & b3 is being_limit_ordinal
   holds    b2 in Tarski-Class(b1,b3)
   iff
      ex b4 being ordinal set st
         b4 in b3 & b2 in Tarski-Class(b1,b4);

:: CLASSES1:th 17
theorem
for b1, b2, b3 being set
for b4 being ordinal set
      st b4 <> {} & b4 is being_limit_ordinal & b1 in Tarski-Class(b2,b4) & (b3 c= b1 or b3 = bool b1)
   holds b3 in Tarski-Class(b2,b4);

:: CLASSES1:th 18
theorem
for b1 being set
for b2 being ordinal set holds
   Tarski-Class(b1,b2) c= Tarski-Class(b1,succ b2);

:: CLASSES1:th 19
theorem
for b1 being set
for b2, b3 being ordinal set
      st b2 c= b3
   holds Tarski-Class(b1,b2) c= Tarski-Class(b1,b3);

:: CLASSES1:th 20
theorem
for b1 being set holds
   ex b2 being ordinal set st
      Tarski-Class(b1,b2) = Tarski-Class(b1,succ b2);

:: CLASSES1:th 21
theorem
for b1 being set
for b2 being ordinal set
      st Tarski-Class(b1,b2) = Tarski-Class(b1,succ b2)
   holds Tarski-Class(b1,b2) = Tarski-Class b1;

:: CLASSES1:th 22
theorem
for b1 being set holds
   ex b2 being ordinal set st
      Tarski-Class(b1,b2) = Tarski-Class b1;

:: CLASSES1:th 23
theorem
for b1 being set holds
   ex b2 being ordinal set st
      Tarski-Class(b1,b2) = Tarski-Class b1 &
       (for b3 being ordinal set
             st b3 in b2
          holds Tarski-Class(b1,b3) <> Tarski-Class b1);

:: CLASSES1:th 24
theorem
for b1, b2 being set
      st b1 <> b2 & b1 in Tarski-Class b2
   holds ex b3 being ordinal set st
      not b1 in Tarski-Class(b2,b3) & b1 in Tarski-Class(b2,succ b3);

:: CLASSES1:th 25
theorem
for b1 being set
   st b1 is epsilon-transitive
for b2 being ordinal set
      st b2 <> {}
   holds Tarski-Class(b1,b2) is epsilon-transitive;

:: CLASSES1:th 26
theorem
for b1 being set holds
   Tarski-Class(b1,{}) in Tarski-Class(b1,1) & Tarski-Class(b1,{}) <> Tarski-Class(b1,1);

:: CLASSES1:th 27
theorem
for b1 being set
      st b1 is epsilon-transitive
   holds Tarski-Class b1 is epsilon-transitive;

:: CLASSES1:th 28
theorem
for b1, b2 being set
      st b1 in Tarski-Class b2
   holds Card b1 in Card Tarski-Class b2;

:: CLASSES1:th 29
theorem
for b1, b2 being set
      st b1 in Tarski-Class b2
   holds not b1,Tarski-Class b2 are_equipotent;

:: CLASSES1:th 30
theorem
for b1, b2, b3 being set
      st b2 in Tarski-Class b1 & b3 in Tarski-Class b1
   holds {b2} in Tarski-Class b1 & {b2,b3} in Tarski-Class b1;

:: CLASSES1:th 31
theorem
for b1, b2, b3 being set
      st b2 in Tarski-Class b1 & b3 in Tarski-Class b1
   holds [b2,b3] in Tarski-Class b1;

:: CLASSES1:th 32
theorem
for b1, b2, b3 being set
      st b1 c= Tarski-Class b2 & b3 c= Tarski-Class b2
   holds [:b1,b3:] c= Tarski-Class b2;

:: CLASSES1:funcnot 4 => CLASSES1:func 4
definition
  let a1 be ordinal set;
  func Rank A1 -> set means
    ex b1 being Relation-like Function-like T-Sequence-like set st
       it = last b1 &
        proj1 b1 = succ a1 &
        b1 . {} = {} &
        (for b2 being ordinal set
              st succ b2 in succ a1
           holds b1 . succ b2 = bool (b1 . b2)) &
        (for b2 being ordinal set
              st b2 in succ a1 & b2 <> {} & b2 is being_limit_ordinal
           holds b1 . b2 = union proj2 (b1 | b2));
end;

:: CLASSES1:def 6
theorem
for b1 being ordinal set
for b2 being set holds
      b2 = Rank b1
   iff
      ex b3 being Relation-like Function-like T-Sequence-like set st
         b2 = last b3 &
          proj1 b3 = succ b1 &
          b3 . {} = {} &
          (for b4 being ordinal set
                st succ b4 in succ b1
             holds b3 . succ b4 = bool (b3 . b4)) &
          (for b4 being ordinal set
                st b4 in succ b1 & b4 <> {} & b4 is being_limit_ordinal
             holds b3 . b4 = union proj2 (b3 | b4));

:: CLASSES1:th 33
theorem
Rank {} = {};

:: CLASSES1:th 34
theorem
for b1 being ordinal set holds
   Rank succ b1 = bool Rank b1;

:: CLASSES1:th 35
theorem
for b1 being ordinal set
   st b1 <> {} & b1 is being_limit_ordinal
for b2 being set holds
      b2 in Rank b1
   iff
      ex b3 being ordinal set st
         b3 in b1 & b2 in Rank b3;

:: CLASSES1:th 36
theorem
for b1 being set
for b2 being ordinal set holds
      b1 c= Rank b2
   iff
      b1 in Rank succ b2;

:: CLASSES1:th 37
theorem
for b1 being ordinal set holds
   Rank b1 is epsilon-transitive;

:: CLASSES1:th 38
theorem
for b1 being set
for b2 being ordinal set
      st b1 in Rank b2
   holds b1 c= Rank b2;

:: CLASSES1:th 39
theorem
for b1 being ordinal set holds
   Rank b1 c= Rank succ b1;

:: CLASSES1:th 40
theorem
for b1 being ordinal set holds
   union Rank b1 c= Rank b1;

:: CLASSES1:th 41
theorem
for b1 being set
for b2 being ordinal set
      st b1 in Rank b2
   holds union b1 in Rank b2;

:: CLASSES1:th 42
theorem
for b1, b2 being ordinal set holds
   b1 in b2
iff
   Rank b1 in Rank b2;

:: CLASSES1:th 43
theorem
for b1, b2 being ordinal set holds
   b1 c= b2
iff
   Rank b1 c= Rank b2;

:: CLASSES1:th 44
theorem
for b1 being ordinal set holds
   b1 c= Rank b1;

:: CLASSES1:th 45
theorem
for b1 being ordinal set
for b2 being set
      st b2 in Rank b1
   holds not b2,Rank b1 are_equipotent & Card b2 in Card Rank b1;

:: CLASSES1:th 46
theorem
for b1 being set
for b2 being ordinal set holds
      b1 c= Rank b2
   iff
      bool b1 c= Rank succ b2;

:: CLASSES1:th 47
theorem
for b1, b2 being set
for b3 being ordinal set
      st b1 c= b2 & b2 in Rank b3
   holds b1 in Rank b3;

:: CLASSES1:th 48
theorem
for b1 being set
for b2 being ordinal set holds
      b1 in Rank b2
   iff
      bool b1 in Rank succ b2;

:: CLASSES1:th 49
theorem
for b1 being set
for b2 being ordinal set holds
      b1 in Rank b2
   iff
      {b1} in Rank succ b2;

:: CLASSES1:th 50
theorem
for b1, b2 being set
for b3 being ordinal set holds
      b1 in Rank b3 & b2 in Rank b3
   iff
      {b1,b2} in Rank succ b3;

:: CLASSES1:th 51
theorem
for b1, b2 being set
for b3 being ordinal set holds
      b1 in Rank b3 & b2 in Rank b3
   iff
      [b1,b2] in Rank succ succ b3;

:: CLASSES1:th 52
theorem
for b1 being set
for b2 being ordinal set
      st b1 is epsilon-transitive &
         (Rank b2) /\ Tarski-Class b1 = (Rank succ b2) /\ Tarski-Class b1
   holds Tarski-Class b1 c= Rank b2;

:: CLASSES1:th 53
theorem
for b1 being set
      st b1 is epsilon-transitive
   holds ex b2 being ordinal set st
      Tarski-Class b1 c= Rank b2;

:: CLASSES1:th 54
theorem
for b1 being set
      st b1 is epsilon-transitive
   holds union b1 c= b1;

:: CLASSES1:th 55
theorem
for b1, b2 being set
      st b1 is epsilon-transitive & b2 is epsilon-transitive
   holds b1 \/ b2 is epsilon-transitive;

:: CLASSES1:th 56
theorem
for b1, b2 being set
      st b1 is epsilon-transitive & b2 is epsilon-transitive
   holds b1 /\ b2 is epsilon-transitive;

:: CLASSES1:funcnot 5 => CLASSES1:func 5
definition
  let a1 be set;
  func the_transitive-closure_of A1 -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2 being Relation-like Function-like set st
             ex b3 being Element of NAT st
                b1 in b2 . b3 &
                 proj1 b2 = NAT &
                 b2 . 0 = a1 &
                 (for b4 being natural set holds
                    b2 . (b4 + 1) = union (b2 . b4));
end;

:: CLASSES1:def 7
theorem
for b1, b2 being set holds
   b2 = the_transitive-closure_of b1
iff
   for b3 being set holds
         b3 in b2
      iff
         ex b4 being Relation-like Function-like set st
            ex b5 being Element of NAT st
               b3 in b4 . b5 &
                proj1 b4 = NAT &
                b4 . 0 = b1 &
                (for b6 being natural set holds
                   b4 . (b6 + 1) = union (b4 . b6));

:: CLASSES1:th 58
theorem
for b1 being set holds
   the_transitive-closure_of b1 is epsilon-transitive;

:: CLASSES1:th 59
theorem
for b1 being set holds
   b1 c= the_transitive-closure_of b1;

:: CLASSES1:th 60
theorem
for b1, b2 being set
      st b1 c= b2 & b2 is epsilon-transitive
   holds the_transitive-closure_of b1 c= b2;

:: CLASSES1:th 61
theorem
for b1, b2 being set
      st (for b3 being set
               st b1 c= b3 & b3 is epsilon-transitive
            holds b2 c= b3) &
         b1 c= b2 &
         b2 is epsilon-transitive
   holds the_transitive-closure_of b1 = b2;

:: CLASSES1:th 62
theorem
for b1 being set
      st b1 is epsilon-transitive
   holds the_transitive-closure_of b1 = b1;

:: CLASSES1:th 63
theorem
the_transitive-closure_of {} = {};

:: CLASSES1:th 64
theorem
for b1 being ordinal set holds
   the_transitive-closure_of b1 = b1;

:: CLASSES1:th 65
theorem
for b1, b2 being set
      st b1 c= b2
   holds the_transitive-closure_of b1 c= the_transitive-closure_of b2;

:: CLASSES1:th 66
theorem
for b1 being set holds
   the_transitive-closure_of the_transitive-closure_of b1 = the_transitive-closure_of b1;

:: CLASSES1:th 67
theorem
for b1, b2 being set holds
the_transitive-closure_of (b1 \/ b2) = (the_transitive-closure_of b1) \/ the_transitive-closure_of b2;

:: CLASSES1:th 68
theorem
for b1, b2 being set holds
the_transitive-closure_of (b1 /\ b2) c= (the_transitive-closure_of b1) /\ the_transitive-closure_of b2;

:: CLASSES1:th 69
theorem
for b1 being set holds
   ex b2 being ordinal set st
      b1 c= Rank b2;

:: CLASSES1:funcnot 6 => CLASSES1:func 6
definition
  let a1 be set;
  func the_rank_of A1 -> ordinal set means
    a1 c= Rank it &
     (for b1 being ordinal set
           st a1 c= Rank b1
        holds it c= b1);
end;

:: CLASSES1:def 8
theorem
for b1 being set
for b2 being ordinal set holds
      b2 = the_rank_of b1
   iff
      b1 c= Rank b2 &
       (for b3 being ordinal set
             st b1 c= Rank b3
          holds b2 c= b3);

:: CLASSES1:th 71
theorem
for b1 being set holds
   the_rank_of bool b1 = succ the_rank_of b1;

:: CLASSES1:th 72
theorem
for b1 being ordinal set holds
   the_rank_of Rank b1 = b1;

:: CLASSES1:th 73
theorem
for b1 being set
for b2 being ordinal set holds
      b1 c= Rank b2
   iff
      the_rank_of b1 c= b2;

:: CLASSES1:th 74
theorem
for b1 being set
for b2 being ordinal set holds
      b1 in Rank b2
   iff
      the_rank_of b1 in b2;

:: CLASSES1:th 75
theorem
for b1, b2 being set
      st b1 c= b2
   holds the_rank_of b1 c= the_rank_of b2;

:: CLASSES1:th 76
theorem
for b1, b2 being set
      st b1 in b2
   holds the_rank_of b1 in the_rank_of b2;

:: CLASSES1:th 77
theorem
for b1 being set
for b2 being ordinal set holds
      the_rank_of b1 c= b2
   iff
      for b3 being set
            st b3 in b1
         holds the_rank_of b3 in b2;

:: CLASSES1:th 78
theorem
for b1 being set
for b2 being ordinal set holds
      b2 c= the_rank_of b1
   iff
      for b3 being ordinal set
            st b3 in b2
         holds ex b4 being set st
            b4 in b1 & b3 c= the_rank_of b4;

:: CLASSES1:th 79
theorem
for b1 being set holds
      the_rank_of b1 = {}
   iff
      b1 = {};

:: CLASSES1:th 80
theorem
for b1 being set
for b2 being ordinal set
      st the_rank_of b1 = succ b2
   holds ex b3 being set st
      b3 in b1 & the_rank_of b3 = b2;

:: CLASSES1:th 81
theorem
for b1 being ordinal set holds
   the_rank_of b1 = b1;

:: CLASSES1:th 82
theorem
for b1 being set holds
   the_rank_of Tarski-Class b1 <> {} & the_rank_of Tarski-Class b1 is being_limit_ordinal;

:: CLASSES1:sch 1
scheme CLASSES1:sch 1
{F1 -> set}:
ex b1 being Relation-like Function-like set st
   proj1 b1 = F1() &
    (for b2 being set
          st b2 in F1()
       holds P1[b2, b1 . b2])
provided
   for b1 being set
         st b1 in F1()
      holds ex b2 being set st
         P1[b1, b2];