Article ORDINAL1, MML version 4.99.1005

:: ORDINAL1:th 3
theorem
for b1, b2, b3 being set
      st b1 in b2 & b2 in b3
   holds not b3 in b1;

:: ORDINAL1:th 4
theorem
for b1, b2, b3, b4 being set
      st b1 in b2 & b2 in b3 & b3 in b4
   holds not b4 in b1;

:: ORDINAL1:th 5
theorem
for b1, b2, b3, b4, b5 being set
      st b1 in b2 & b2 in b3 & b3 in b4 & b4 in b5
   holds not b5 in b1;

:: ORDINAL1:th 6
theorem
for b1, b2, b3, b4, b5, b6 being set
      st b1 in b2 & b2 in b3 & b3 in b4 & b4 in b5 & b5 in b6
   holds not b6 in b1;

:: ORDINAL1:th 7
theorem
for b1, b2 being set
      st b1 in b2
   holds not b2 c= b1;

:: ORDINAL1:funcnot 1 => ORDINAL1:func 1
definition
  let a1 be set;
  func succ A1 -> set equals
    a1 \/ {a1};
end;

:: ORDINAL1:def 1
theorem
for b1 being set holds
   succ b1 = b1 \/ {b1};

:: ORDINAL1:funcreg 1
registration
  let a1 be set;
  cluster succ a1 -> non empty;
end;

:: ORDINAL1:th 10
theorem
for b1 being set holds
   b1 in succ b1;

:: ORDINAL1:th 12
theorem
for b1, b2 being set
      st succ b1 = succ b2
   holds b1 = b2;

:: ORDINAL1:th 13
theorem
for b1, b2 being set holds
   b1 in succ b2
iff
   (b1 in b2 or b1 = b2);

:: ORDINAL1:th 14
theorem
for b1 being set holds
   b1 <> succ b1;

:: ORDINAL1:attrnot 1 => ORDINAL1:attr 1
definition
  let a1 be set;
  attr a1 is epsilon-transitive means
    for b1 being set
          st b1 in a1
       holds b1 c= a1;
end;

:: ORDINAL1:dfs 2
definiens
  let a1 be set;
To prove
     a1 is epsilon-transitive
it is sufficient to prove
  thus for b1 being set
          st b1 in a1
       holds b1 c= a1;

:: ORDINAL1:def 2
theorem
for b1 being set holds
      b1 is epsilon-transitive
   iff
      for b2 being set
            st b2 in b1
         holds b2 c= b1;

:: ORDINAL1:attrnot 2 => ORDINAL1:attr 2
definition
  let a1 be set;
  attr a1 is epsilon-connected means
    for b1, b2 being set
          st b1 in a1 & b2 in a1 & not b1 in b2 & b1 <> b2
       holds b2 in b1;
end;

:: ORDINAL1:dfs 3
definiens
  let a1 be set;
To prove
     a1 is epsilon-connected
it is sufficient to prove
  thus for b1, b2 being set
          st b1 in a1 & b2 in a1 & not b1 in b2 & b1 <> b2
       holds b2 in b1;

:: ORDINAL1:def 3
theorem
for b1 being set holds
      b1 is epsilon-connected
   iff
      for b2, b3 being set
            st b2 in b1 & b3 in b1 & not b2 in b3 & b2 <> b3
         holds b3 in b2;

:: ORDINAL1:attrnot 3 => ORDINAL1:attr 3
definition
  let a1 be set;
  attr a1 is ordinal means
    a1 is epsilon-transitive & a1 is epsilon-connected;
end;

:: ORDINAL1:dfs 4
definiens
  let a1 be set;
To prove
     a1 is ordinal
it is sufficient to prove
  thus a1 is epsilon-transitive & a1 is epsilon-connected;

:: ORDINAL1:def 4
theorem
for b1 being set holds
      b1 is ordinal
   iff
      b1 is epsilon-transitive & b1 is epsilon-connected;

:: ORDINAL1:condreg 1
registration
  cluster ordinal -> epsilon-transitive epsilon-connected (set);
end;

:: ORDINAL1:condreg 2
registration
  cluster epsilon-transitive epsilon-connected -> ordinal (set);
end;

:: ORDINAL1:modenot 1 => HIDDEN:mode 1
notation
  synonym number for set;
end;

:: ORDINAL1:exreg 1
registration
  cluster ordinal set;
end;

:: ORDINAL1:modenot 2
definition
  mode Ordinal is ordinal set;
end;

:: ORDINAL1:th 19
theorem
for b1, b2 being ordinal set
for b3 being epsilon-transitive set
      st b3 in b1 & b1 in b2
   holds b3 in b2;

:: ORDINAL1:th 21
theorem
for b1 being epsilon-transitive set
for b2 being ordinal set
      st b1 c< b2
   holds b1 in b2;

:: ORDINAL1:th 22
theorem
for b1 being epsilon-transitive set
for b2, b3 being ordinal set
      st b1 c= b2 & b2 in b3
   holds b1 in b3;

:: ORDINAL1:th 23
theorem
for b1 being set
for b2 being ordinal set
      st b1 in b2
   holds b1 is ordinal set;

:: ORDINAL1:th 24
theorem
for b1, b2 being ordinal set
      st not b1 in b2 & b1 <> b2
   holds b2 in b1;

:: ORDINAL1:prednot 1 => ORDINAL1:pred 1
definition
  let a1, a2 be ordinal set;
  redefine pred A1 c= A2 means
    for b1 being ordinal set
          st b1 in a1
       holds b1 in a2;
  reflexivity;
::  for a1 being ordinal set holds
::     a1 c= a1;
  connectedness;
::  for a1, a2 being ordinal set
::        st not a1 c= a2
::     holds a2 c= a1;
end;

:: ORDINAL1:dfs 5
definiens
  let a1, a2 be ordinal set;
To prove
     a1 c= a2
it is sufficient to prove
  thus for b1 being ordinal set
          st b1 in a1
       holds b1 in a2;

:: ORDINAL1:def 5
theorem
for b1, b2 being ordinal set holds
   b1 c= b2
iff
   for b3 being ordinal set
         st b3 in b1
      holds b3 in b2;

:: ORDINAL1:th 25
theorem
for b1, b2 being ordinal set holds
b1,b2 are_c=-comparable;

:: ORDINAL1:th 26
theorem
for b1, b2 being ordinal set
      st not b1 c= b2
   holds b2 in b1;

:: ORDINAL1:th 27
theorem
{} is ordinal set;

:: ORDINAL1:exreg 2
registration
  cluster empty epsilon-transitive epsilon-connected ordinal set;
end;

:: ORDINAL1:condreg 3
registration
  cluster empty -> ordinal (set);
end;

:: ORDINAL1:funcreg 2
registration
  cluster {} -> ordinal;
end;

:: ORDINAL1:th 29
theorem
for b1 being set
      st b1 is ordinal set
   holds succ b1 is ordinal set;

:: ORDINAL1:th 30
theorem
for b1 being set
      st b1 is ordinal
   holds union b1 is ordinal;

:: ORDINAL1:exreg 3
registration
  cluster non empty epsilon-transitive epsilon-connected ordinal set;
end;

:: ORDINAL1:funcreg 3
registration
  let a1 be ordinal set;
  cluster succ a1 -> non empty ordinal;
end;

:: ORDINAL1:funcreg 4
registration
  let a1 be ordinal set;
  cluster union a1 -> ordinal;
end;

:: ORDINAL1:th 31
theorem
for b1 being set
      st for b2 being set
              st b2 in b1
           holds b2 is ordinal set & b2 c= b1
   holds b1 is ordinal;

:: ORDINAL1:th 32
theorem
for b1 being set
for b2 being ordinal set
      st b1 c= b2 & b1 <> {}
   holds ex b3 being ordinal set st
      b3 in b1 &
       (for b4 being ordinal set
             st b4 in b1
          holds b3 c= b4);

:: ORDINAL1:th 33
theorem
for b1, b2 being ordinal set holds
   b1 in b2
iff
   succ b1 c= b2;

:: ORDINAL1:th 34
theorem
for b1, b2 being ordinal set holds
   b1 in succ b2
iff
   b1 c= b2;

:: ORDINAL1:sch 1
scheme ORDINAL1:sch 1
ex b1 being ordinal set st
   P1[b1] &
    (for b2 being ordinal set
          st P1[b2]
       holds b1 c= b2)
provided
   ex b1 being ordinal set st
      P1[b1];


:: ORDINAL1:sch 2
scheme ORDINAL1:sch 2
for b1 being ordinal set holds
   P1[b1]
provided
   for b1 being ordinal set
         st for b2 being ordinal set
                 st b2 in b1
              holds P1[b2]
      holds P1[b1];


:: ORDINAL1:th 35
theorem
for b1 being set
      st for b2 being set
              st b2 in b1
           holds b2 is ordinal set
   holds union b1 is ordinal;

:: ORDINAL1:th 36
theorem
for b1 being set
      st for b2 being set
              st b2 in b1
           holds b2 is ordinal set
   holds ex b2 being ordinal set st
      b1 c= b2;

:: ORDINAL1:th 37
theorem
for b1 being set holds
   ex b2 being set st
      (b2 in b1 & b2 is not ordinal set or b2 is ordinal set & not b2 in b1);

:: ORDINAL1:th 38
theorem
for b1 being set holds
   ex b2 being ordinal set st
      not b2 in b1;

:: ORDINAL1:th 39
theorem
for b1 being set holds
   ex b2 being ordinal set st
      not b2 in b1 &
       (for b3 being ordinal set
             st not b3 in b1
          holds b2 c= b3);

:: ORDINAL1:attrnot 4 => ORDINAL1:attr 4
definition
  let a1 be set;
  attr a1 is being_limit_ordinal means
    a1 = union a1;
end;

:: ORDINAL1:dfs 6
definiens
  let a1 be set;
To prove
     a1 is being_limit_ordinal
it is sufficient to prove
  thus a1 = union a1;

:: ORDINAL1:def 6
theorem
for b1 being set holds
      b1 is being_limit_ordinal
   iff
      b1 = union b1;

:: ORDINAL1:prednot 2 => ORDINAL1:attr 4
notation
  let a1 be set;
  synonym a1 is_limit_ordinal for being_limit_ordinal;
end;

:: ORDINAL1:th 41
theorem
for b1 being ordinal set holds
      b1 is being_limit_ordinal
   iff
      for b2 being ordinal set
            st b2 in b1
         holds succ b2 in b1;

:: ORDINAL1:th 42
theorem
for b1 being ordinal set holds
      b1 is not being_limit_ordinal
   iff
      ex b2 being ordinal set st
         b1 = succ b2;

:: ORDINAL1:attrnot 5 => ORDINAL1:attr 5
definition
  let a1 be Relation-like Function-like set;
  attr a1 is T-Sequence-like means
    proj1 a1 is ordinal;
end;

:: ORDINAL1:dfs 7
definiens
  let a1 be Relation-like Function-like set;
To prove
     a1 is T-Sequence-like
it is sufficient to prove
  thus proj1 a1 is ordinal;

:: ORDINAL1:def 7
theorem
for b1 being Relation-like Function-like set holds
      b1 is T-Sequence-like
   iff
      proj1 b1 is ordinal;

:: ORDINAL1:exreg 4
registration
  cluster Relation-like Function-like T-Sequence-like set;
end;

:: ORDINAL1:modenot 3
definition
  mode T-Sequence is Relation-like Function-like T-Sequence-like set;
end;

:: ORDINAL1:modenot 4 => ORDINAL1:mode 1
definition
  let a1 be set;
  mode T-Sequence of A1 -> Relation-like Function-like T-Sequence-like set means
    proj2 it c= a1;
end;

:: ORDINAL1:dfs 8
definiens
  let a1 be set;
  let a2 be Relation-like Function-like T-Sequence-like set;
To prove
     a2 is T-Sequence of a1
it is sufficient to prove
  thus proj2 a2 c= a1;

:: ORDINAL1:def 8
theorem
for b1 being set
for b2 being Relation-like Function-like T-Sequence-like set holds
      b2 is T-Sequence of b1
   iff
      proj2 b2 c= b1;

:: ORDINAL1:th 45
theorem
for b1 being set holds
   {} is T-Sequence of b1;

:: ORDINAL1:th 46
theorem
for b1 being Relation-like Function-like set
      st proj1 b1 is ordinal set
   holds b1 is T-Sequence of proj2 b1;

:: ORDINAL1:funcreg 5
registration
  let a1 be Relation-like Function-like T-Sequence-like set;
  cluster proj1 a1 -> ordinal;
end;

:: ORDINAL1:th 47
theorem
for b1, b2 being set
   st b1 c= b2
for b3 being T-Sequence of b1 holds
   b3 is T-Sequence of b2;

:: ORDINAL1:funcnot 2 => ORDINAL1:func 2
definition
  let a1 be Relation-like Function-like T-Sequence-like set;
  let a2 be ordinal set;
  redefine func a1 | a2 -> T-Sequence of proj2 a1;
end;

:: ORDINAL1:th 48
theorem
for b1 being set
for b2 being T-Sequence of b1
for b3 being ordinal set holds
   b2 | b3 is T-Sequence of b1;

:: ORDINAL1:attrnot 6 => ORDINAL1:attr 6
definition
  let a1 be set;
  attr a1 is c=-linear means
    for b1, b2 being set
          st b1 in a1 & b2 in a1
       holds b1,b2 are_c=-comparable;
end;

:: ORDINAL1:dfs 9
definiens
  let a1 be set;
To prove
     a1 is c=-linear
it is sufficient to prove
  thus for b1, b2 being set
          st b1 in a1 & b2 in a1
       holds b1,b2 are_c=-comparable;

:: ORDINAL1:def 9
theorem
for b1 being set holds
      b1 is c=-linear
   iff
      for b2, b3 being set
            st b2 in b1 & b3 in b1
         holds b2,b3 are_c=-comparable;

:: ORDINAL1:th 49
theorem
for b1 being set
      st (for b2 being set
               st b2 in b1
            holds b2 is Relation-like Function-like T-Sequence-like set) &
         b1 is c=-linear
   holds union b1 is Relation-like Function-like T-Sequence-like set;

:: ORDINAL1:sch 3
scheme ORDINAL1:sch 3
{F1 -> ordinal set,
  F2 -> set,
  F3 -> Relation-like Function-like T-Sequence-like set,
  F4 -> Relation-like Function-like T-Sequence-like set}:
F3() = F4()
provided
   proj1 F3() = F1() &
    (for b1 being ordinal set
    for b2 being Relation-like Function-like T-Sequence-like set
          st b1 in F1() & b2 = F3() | b1
       holds F3() . b1 = F2(b2))
and
   proj1 F4() = F1() &
    (for b1 being ordinal set
    for b2 being Relation-like Function-like T-Sequence-like set
          st b1 in F1() & b2 = F4() | b1
       holds F4() . b1 = F2(b2));


:: ORDINAL1:sch 4
scheme ORDINAL1:sch 4
{F1 -> ordinal set,
  F2 -> set}:
ex b1 being Relation-like Function-like T-Sequence-like set st
   proj1 b1 = F1() &
    (for b2 being ordinal set
    for b3 being Relation-like Function-like T-Sequence-like set
          st b2 in F1() & b3 = b1 | b2
       holds b1 . b2 = F2(b3))


:: ORDINAL1:sch 5
scheme ORDINAL1:sch 5
{F1 -> Relation-like Function-like T-Sequence-like set,
  F2 -> set,
  F3 -> set}:
for b1 being ordinal set
      st b1 in proj1 F1()
   holds F1() . b1 = F3(F1() | b1)
provided
   for b1 being ordinal set
   for b2 being set holds
         b2 = F2(b1)
      iff
         ex b3 being Relation-like Function-like T-Sequence-like set st
            b2 = F3(b3) &
             proj1 b3 = b1 &
             (for b4 being ordinal set
                   st b4 in b1
                holds b3 . b4 = F3(b3 | b4))
and
   for b1 being ordinal set
         st b1 in proj1 F1()
      holds F1() . b1 = F2(b1);


:: ORDINAL1:th 50
theorem
for b1, b2 being ordinal set
      st not b1 c< b2 & b1 <> b2
   holds b2 c< b1;

:: ORDINAL1:funcnot 3 => ORDINAL1:func 3
definition
  let a1 be set;
  func On A1 -> set means
    for b1 being set holds
          b1 in it
       iff
          b1 in a1 & b1 is ordinal set;
end;

:: ORDINAL1:def 10
theorem
for b1, b2 being set holds
   b2 = On b1
iff
   for b3 being set holds
         b3 in b2
      iff
         b3 in b1 & b3 is ordinal set;

:: ORDINAL1:funcnot 4 => ORDINAL1:func 4
definition
  let a1 be set;
  func Lim A1 -> set means
    for b1 being set holds
          b1 in it
       iff
          b1 in a1 &
           (ex b2 being ordinal set st
              b1 = b2 & b2 is being_limit_ordinal);
end;

:: ORDINAL1:def 11
theorem
for b1, b2 being set holds
   b2 = Lim b1
iff
   for b3 being set holds
         b3 in b2
      iff
         b3 in b1 &
          (ex b4 being ordinal set st
             b3 = b4 & b4 is being_limit_ordinal);

:: ORDINAL1:th 51
theorem
for b1 being ordinal set holds
   ex b2 being ordinal set st
      b1 in b2 & b2 is being_limit_ordinal;

:: ORDINAL1:funcnot 5 => ORDINAL1:func 5
definition
  func omega -> set means
    {} in it &
     it is being_limit_ordinal &
     it is ordinal &
     (for b1 being ordinal set
           st {} in b1 & b1 is being_limit_ordinal
        holds it c= b1);
end;

:: ORDINAL1:def 12
theorem
for b1 being set holds
      b1 = omega
   iff
      {} in b1 &
       b1 is being_limit_ordinal &
       b1 is ordinal &
       (for b2 being ordinal set
             st {} in b2 & b2 is being_limit_ordinal
          holds b1 c= b2);

:: ORDINAL1:funcreg 6
registration
  cluster omega -> non empty ordinal;
end;

:: ORDINAL1:attrnot 7 => ORDINAL1:attr 7
definition
  let a1 be set;
  attr a1 is natural means
    a1 in omega;
end;

:: ORDINAL1:dfs 13
definiens
  let a1 be set;
To prove
     a1 is natural
it is sufficient to prove
  thus a1 in omega;

:: ORDINAL1:def 13
theorem
for b1 being set holds
      b1 is natural
   iff
      b1 in omega;

:: ORDINAL1:exreg 5
registration
  cluster natural set;
end;

:: ORDINAL1:condreg 4
registration
  let a1 be ordinal set;
  cluster -> ordinal (Element of a1);
end;

:: ORDINAL1:condreg 5
registration
  cluster natural -> ordinal (set);
end;

:: ORDINAL1:sch 6
scheme ORDINAL1:sch 6
{F1 -> non empty set}:
ex b1 being Relation-like Function-like set st
   proj1 b1 = F1() &
    (for b2 being Element of F1() holds
       ex b3 being ordinal set st
          b3 = b1 . b2 &
           P1[b2, b3] &
           (for b4 being ordinal set
                 st P1[b2, b4]
              holds b3 c= b4))
provided
   for b1 being Element of F1() holds
      ex b2 being ordinal set st
         P1[b1, b2];


:: ORDINAL1:th 52
theorem
for b1 being set holds
   (succ b1) \ {b1} = b1;

:: ORDINAL1:condreg 6
registration
  cluster empty -> natural (set);
end;

:: ORDINAL1:condreg 7
registration
  cluster -> natural (Element of omega);
end;

:: ORDINAL1:exreg 6
registration
  cluster non empty natural set;
end;

:: ORDINAL1:funcreg 7
registration
  let a1 be ordinal natural set;
  cluster succ a1 -> natural;
end;