Article ORDERS_2, MML version 4.99.1005

:: ORDERS_2:structnot 1 => ORDERS_2:struct 1
definition
  struct(1-sorted) RelStr(#
    carrier -> set,
    InternalRel -> Relation of the carrier of it,the carrier of it
  #);
end;

:: ORDERS_2:attrnot 1 => ORDERS_2:attr 1
definition
  let a1 be RelStr;
  attr a1 is strict;
end;

:: ORDERS_2:exreg 1
registration
  cluster strict RelStr;
end;

:: ORDERS_2:aggrnot 1 => ORDERS_2:aggr 1
definition
  let a1 be set;
  let a2 be Relation of a1,a1;
  aggr RelStr(#a1,a2#) -> strict RelStr;
end;

:: ORDERS_2:selnot 1 => ORDERS_2:sel 1
definition
  let a1 be RelStr;
  sel the InternalRel of a1 -> Relation of the carrier of a1,the carrier of a1;
end;

:: ORDERS_2:funcreg 1
registration
  let a1 be non empty set;
  let a2 be Relation of a1,a1;
  cluster RelStr(#a1,a2#) -> non empty strict;
end;

:: ORDERS_2:attrnot 2 => ORDERS_2:attr 2
definition
  let a1 be RelStr;
  attr a1 is total means
    the InternalRel of a1 is total(the carrier of a1, the carrier of a1);
end;

:: ORDERS_2:dfs 1
definiens
  let a1 be RelStr;
To prove
     a1 is total
it is sufficient to prove
  thus the InternalRel of a1 is total(the carrier of a1, the carrier of a1);

:: ORDERS_2:def 3
theorem
for b1 being RelStr holds
      b1 is total
   iff
      the InternalRel of b1 is total(the carrier of b1, the carrier of b1);

:: ORDERS_2:attrnot 3 => ORDERS_2:attr 3
definition
  let a1 be RelStr;
  attr a1 is reflexive means
    the InternalRel of a1 is_reflexive_in the carrier of a1;
end;

:: ORDERS_2:dfs 2
definiens
  let a1 be RelStr;
To prove
     a1 is reflexive
it is sufficient to prove
  thus the InternalRel of a1 is_reflexive_in the carrier of a1;

:: ORDERS_2:def 4
theorem
for b1 being RelStr holds
      b1 is reflexive
   iff
      the InternalRel of b1 is_reflexive_in the carrier of b1;

:: ORDERS_2:attrnot 4 => ORDERS_2:attr 4
definition
  let a1 be RelStr;
  attr a1 is transitive means
    the InternalRel of a1 is_transitive_in the carrier of a1;
end;

:: ORDERS_2:dfs 3
definiens
  let a1 be RelStr;
To prove
     a1 is transitive
it is sufficient to prove
  thus the InternalRel of a1 is_transitive_in the carrier of a1;

:: ORDERS_2:def 5
theorem
for b1 being RelStr holds
      b1 is transitive
   iff
      the InternalRel of b1 is_transitive_in the carrier of b1;

:: ORDERS_2:attrnot 5 => ORDERS_2:attr 5
definition
  let a1 be RelStr;
  attr a1 is antisymmetric means
    the InternalRel of a1 is_antisymmetric_in the carrier of a1;
end;

:: ORDERS_2:dfs 4
definiens
  let a1 be RelStr;
To prove
     a1 is antisymmetric
it is sufficient to prove
  thus the InternalRel of a1 is_antisymmetric_in the carrier of a1;

:: ORDERS_2:def 6
theorem
for b1 being RelStr holds
      b1 is antisymmetric
   iff
      the InternalRel of b1 is_antisymmetric_in the carrier of b1;

:: ORDERS_2:exreg 2
registration
  cluster non empty strict total reflexive transitive antisymmetric RelStr;
end;

:: ORDERS_2:condreg 1
registration
  cluster reflexive -> total (RelStr);
end;

:: ORDERS_2:modenot 1
definition
  mode Poset is reflexive transitive antisymmetric RelStr;
end;

:: ORDERS_2:funcreg 2
registration
  let a1 be total RelStr;
  cluster the InternalRel of a1 -> total;
end;

:: ORDERS_2:funcreg 3
registration
  let a1 be reflexive RelStr;
  cluster the InternalRel of a1 -> reflexive;
end;

:: ORDERS_2:funcreg 4
registration
  let a1 be total antisymmetric RelStr;
  cluster the InternalRel of a1 -> antisymmetric;
end;

:: ORDERS_2:funcreg 5
registration
  let a1 be total transitive RelStr;
  cluster the InternalRel of a1 -> transitive;
end;

:: ORDERS_2:funcreg 6
registration
  let a1 be set;
  let a2 be reflexive total Relation of a1,a1;
  cluster RelStr(#a1,a2#) -> strict reflexive;
end;

:: ORDERS_2:funcreg 7
registration
  let a1 be set;
  let a2 be transitive total Relation of a1,a1;
  cluster RelStr(#a1,a2#) -> strict transitive;
end;

:: ORDERS_2:funcreg 8
registration
  let a1 be set;
  let a2 be antisymmetric total Relation of a1,a1;
  cluster RelStr(#a1,a2#) -> strict antisymmetric;
end;

:: ORDERS_2:prednot 1 => ORDERS_2:pred 1
definition
  let a1 be RelStr;
  let a2, a3 be Element of the carrier of a1;
  pred A2 <= A3 means
    [a2,a3] in the InternalRel of a1;
end;

:: ORDERS_2:dfs 5
definiens
  let a1 be RelStr;
  let a2, a3 be Element of the carrier of a1;
To prove
     a2 <= a3
it is sufficient to prove
  thus [a2,a3] in the InternalRel of a1;

:: ORDERS_2:def 9
theorem
for b1 being RelStr
for b2, b3 being Element of the carrier of b1 holds
   b2 <= b3
iff
   [b2,b3] in the InternalRel of b1;

:: ORDERS_2:prednot 2 => ORDERS_2:pred 1
notation
  let a1 be RelStr;
  let a2, a3 be Element of the carrier of a1;
  synonym a3 >= a2 for a2 <= a3;
end;

:: ORDERS_2:prednot 3 => ORDERS_2:pred 2
definition
  let a1 be RelStr;
  let a2, a3 be Element of the carrier of a1;
  pred A2 < A3 means
    a2 <= a3 & a2 <> a3;
  irreflexivity;
::  for a1 being RelStr
::  for a2 being Element of the carrier of a1 holds
::     not a2 < a2;
end;

:: ORDERS_2:dfs 6
definiens
  let a1 be RelStr;
  let a2, a3 be Element of the carrier of a1;
To prove
     a2 < a3
it is sufficient to prove
  thus a2 <= a3 & a2 <> a3;

:: ORDERS_2:def 10
theorem
for b1 being RelStr
for b2, b3 being Element of the carrier of b1 holds
   b2 < b3
iff
   b2 <= b3 & b2 <> b3;

:: ORDERS_2:prednot 4 => ORDERS_2:pred 2
notation
  let a1 be RelStr;
  let a2, a3 be Element of the carrier of a1;
  synonym a3 > a2 for a2 < a3;
end;

:: ORDERS_2:th 24
theorem
for b1 being non empty reflexive RelStr
for b2 being Element of the carrier of b1 holds
   b2 <= b2;

:: ORDERS_2:prednot 5 => ORDERS_2:pred 3
definition
  let a1 be non empty reflexive RelStr;
  let a2, a3 be Element of the carrier of a1;
  redefine pred a2 <= a3;
  reflexivity;
::  for a1 being non empty reflexive RelStr
::  for a2 being Element of the carrier of a1 holds
::     a2 <= a2;
end;

:: ORDERS_2:th 25
theorem
for b1 being antisymmetric RelStr
for b2, b3 being Element of the carrier of b1
      st b2 <= b3 & b3 <= b2
   holds b2 = b3;

:: ORDERS_2:th 26
theorem
for b1 being transitive RelStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 <= b3 & b3 <= b4
   holds b2 <= b4;

:: ORDERS_2:th 28
theorem
for b1 being antisymmetric RelStr
for b2, b3 being Element of the carrier of b1
      st b2 < b3
   holds not b3 < b2;

:: ORDERS_2:th 29
theorem
for b1 being transitive antisymmetric RelStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 < b3 & b3 < b4
   holds b2 < b4;

:: ORDERS_2:th 30
theorem
for b1 being antisymmetric RelStr
for b2, b3 being Element of the carrier of b1
      st b2 <= b3
   holds not b3 < b2;

:: ORDERS_2:th 32
theorem
for b1 being transitive antisymmetric RelStr
for b2, b3, b4 being Element of the carrier of b1
      st (b2 < b3 & b3 <= b4 or b2 <= b3 & b3 < b4)
   holds b2 < b4;

:: ORDERS_2:attrnot 6 => ORDERS_2:attr 6
definition
  let a1 be RelStr;
  let a2 be Element of bool the carrier of a1;
  attr a2 is strongly_connected means
    the InternalRel of a1 is_strongly_connected_in a2;
end;

:: ORDERS_2:dfs 7
definiens
  let a1 be RelStr;
  let a2 be Element of bool the carrier of a1;
To prove
     a2 is strongly_connected
it is sufficient to prove
  thus the InternalRel of a1 is_strongly_connected_in a2;

:: ORDERS_2:def 11
theorem
for b1 being RelStr
for b2 being Element of bool the carrier of b1 holds
      b2 is strongly_connected(b1)
   iff
      the InternalRel of b1 is_strongly_connected_in b2;

:: ORDERS_2:funcreg 9
registration
  let a1 be RelStr;
  cluster {} a1 -> strongly_connected;
end;

:: ORDERS_2:exreg 3
registration
  let a1 be RelStr;
  cluster strongly_connected Element of bool the carrier of a1;
end;

:: ORDERS_2:modenot 2
definition
  let a1 be RelStr;
  mode Chain of a1 is strongly_connected Element of bool the carrier of a1;
end;

:: ORDERS_2:th 35
theorem
for b1 being non empty reflexive RelStr
for b2 being Element of the carrier of b1 holds
   {b2} is strongly_connected Element of bool the carrier of b1;

:: ORDERS_2:th 36
theorem
for b1 being non empty reflexive RelStr
for b2, b3 being Element of the carrier of b1 holds
   {b2,b3} is strongly_connected Element of bool the carrier of b1
iff
   (b2 <= b3 or b3 <= b2);

:: ORDERS_2:th 37
theorem
for b1 being RelStr
for b2 being strongly_connected Element of bool the carrier of b1
for b3 being Element of bool the carrier of b1
      st b3 c= b2
   holds b3 is strongly_connected Element of bool the carrier of b1;

:: ORDERS_2:th 38
theorem
for b1 being reflexive RelStr
for b2, b3 being Element of the carrier of b1 holds
   ex b4 being strongly_connected Element of bool the carrier of b1 st
      b2 in b4 & b3 in b4
iff
   (b2 <= b3 or b3 <= b2);

:: ORDERS_2:th 39
theorem
for b1 being reflexive antisymmetric RelStr
for b2, b3 being Element of the carrier of b1 holds
   ex b4 being strongly_connected Element of bool the carrier of b1 st
      b2 in b4 & b3 in b4
iff
      b2 < b3
   iff
      not b3 <= b2;

:: ORDERS_2:th 40
theorem
for b1 being RelStr
for b2 being Element of bool the carrier of b1
      st the InternalRel of b1 well_orders b2
   holds b2 is strongly_connected Element of bool the carrier of b1;

:: ORDERS_2:funcnot 1 => ORDERS_2:func 1
definition
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be Element of bool the carrier of a1;
  func UpperCone A2 -> Element of bool the carrier of a1 equals
    {b1 where b1 is Element of the carrier of a1: for b2 being Element of the carrier of a1
          st b2 in a2
       holds b2 < b1};
end;

:: ORDERS_2:def 12
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of bool the carrier of b1 holds
   UpperCone b2 = {b3 where b3 is Element of the carrier of b1: for b4 being Element of the carrier of b1
         st b4 in b2
      holds b4 < b3};

:: ORDERS_2:funcnot 2 => ORDERS_2:func 2
definition
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be Element of bool the carrier of a1;
  func LowerCone A2 -> Element of bool the carrier of a1 equals
    {b1 where b1 is Element of the carrier of a1: for b2 being Element of the carrier of a1
          st b2 in a2
       holds b1 < b2};
end;

:: ORDERS_2:def 13
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of bool the carrier of b1 holds
   LowerCone b2 = {b3 where b3 is Element of the carrier of b1: for b4 being Element of the carrier of b1
         st b4 in b2
      holds b3 < b4};

:: ORDERS_2:th 43
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr holds
   UpperCone {} b1 = the carrier of b1;

:: ORDERS_2:th 44
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr holds
   UpperCone [#] b1 = {};

:: ORDERS_2:th 45
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr holds
   LowerCone {} b1 = the carrier of b1;

:: ORDERS_2:th 46
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr holds
   LowerCone [#] b1 = {};

:: ORDERS_2:th 47
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of the carrier of b1
for b3 being Element of bool the carrier of b1
      st b2 in b3
   holds not b2 in UpperCone b3;

:: ORDERS_2:th 48
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of the carrier of b1 holds
   not b2 in UpperCone {b2};

:: ORDERS_2:th 49
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of the carrier of b1
for b3 being Element of bool the carrier of b1
      st b2 in b3
   holds not b2 in LowerCone b3;

:: ORDERS_2:th 50
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of the carrier of b1 holds
   not b2 in LowerCone {b2};

:: ORDERS_2:th 51
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2, b3 being Element of the carrier of b1 holds
   b2 < b3
iff
   b3 in UpperCone {b2};

:: ORDERS_2:th 52
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2, b3 being Element of the carrier of b1 holds
   b2 < b3
iff
   b2 in LowerCone {b3};

:: ORDERS_2:funcnot 3 => ORDERS_2:func 3
definition
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be Element of bool the carrier of a1;
  let a3 be Element of the carrier of a1;
  func InitSegm(A2,A3) -> Element of bool the carrier of a1 equals
    (LowerCone {a3}) /\ a2;
end;

:: ORDERS_2:def 14
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of bool the carrier of b1
for b3 being Element of the carrier of b1 holds
   InitSegm(b2,b3) = (LowerCone {b3}) /\ b2;

:: ORDERS_2:modenot 3 => ORDERS_2:mode 1
definition
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be Element of bool the carrier of a1;
  mode Initial_Segm of A2 -> Element of bool the carrier of a1 means
    ex b1 being Element of the carrier of a1 st
       b1 in a2 & it = InitSegm(a2,b1)
    if a2 <> {}
    otherwise it = {};
end;

:: ORDERS_2:dfs 11
definiens
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2, a3 be Element of bool the carrier of a1;
To prove
     a3 is Initial_Segm of a2
it is sufficient to prove
  per cases;
  case a2 <> {};
    thus ex b1 being Element of the carrier of a1 st
       b1 in a2 & a3 = InitSegm(a2,b1);
  end;
  case a2 = {};
    thus a3 = {};
  end;

:: ORDERS_2:def 15
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2, b3 being Element of bool the carrier of b1 holds
(b2 = {} or    (b3 is Initial_Segm of b2
 iff
    ex b4 being Element of the carrier of b1 st
       b4 in b2 & b3 = InitSegm(b2,b4))) &
 (b2 = {} implies    (b3 is Initial_Segm of b2
 iff
    b3 = {}));

:: ORDERS_2:th 57
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2, b3 being Element of the carrier of b1
for b4 being Element of bool the carrier of b1 holds
      b2 in InitSegm(b4,b3)
   iff
      b2 < b3 & b2 in b4;

:: ORDERS_2:th 60
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of the carrier of b1 holds
   InitSegm({} b1,b2) = {};

:: ORDERS_2:th 62
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of the carrier of b1
for b3 being Element of bool the carrier of b1 holds
   not b2 in InitSegm(b3,b2);

:: ORDERS_2:th 64
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2, b3 being Element of the carrier of b1
for b4 being Element of bool the carrier of b1
      st b2 < b3
   holds InitSegm(b4,b2) c= InitSegm(b4,b3);

:: ORDERS_2:th 65
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of the carrier of b1
for b3, b4 being Element of bool the carrier of b1
      st b3 c= b4
   holds InitSegm(b3,b2) c= InitSegm(b4,b2);

:: ORDERS_2:th 67
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of bool the carrier of b1
for b3 being Initial_Segm of b2 holds
   b3 c= b2;

:: ORDERS_2:th 68
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of bool the carrier of b1 holds
      b2 <> {}
   iff
      b2 is not Initial_Segm of b2;

:: ORDERS_2:th 69
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2, b3 being Element of bool the carrier of b1
      st b2 <> {} & b2 is Initial_Segm of b3
   holds b3 is not Initial_Segm of b2;

:: ORDERS_2:th 70
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2, b3 being Element of the carrier of b1
for b4, b5 being Element of bool the carrier of b1
      st b2 < b3 & b2 in b4 & b3 in b5 & b5 is Initial_Segm of b4
   holds b2 in b5;

:: ORDERS_2:th 71
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of the carrier of b1
for b3, b4 being Element of bool the carrier of b1
      st b2 in b3 & b3 is Initial_Segm of b4
   holds InitSegm(b3,b2) = InitSegm(b4,b2);

:: ORDERS_2:th 72
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2, b3 being Element of bool the carrier of b1
      st b2 c= b3 &
         the InternalRel of b1 well_orders b3 &
         (for b4, b5 being Element of the carrier of b1
               st b5 in b2 & b4 < b5
            holds b4 in b2) &
         b2 <> b3
   holds b2 is Initial_Segm of b3;

:: ORDERS_2:th 73
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2, b3 being Element of bool the carrier of b1
      st b2 c= b3 &
         the InternalRel of b1 well_orders b3 &
         (for b4, b5 being Element of the carrier of b1
               st b5 in b2 & b4 in b3 & b4 < b5
            holds b4 in b2) &
         b2 <> b3
   holds b2 is Initial_Segm of b3;

:: ORDERS_2:modenot 4 => ORDERS_2:mode 2
definition
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be Choice_Function of BOOL the carrier of a1;
  mode Chain of A2 -> strongly_connected Element of bool the carrier of a1 means
    it <> {} &
     the InternalRel of a1 well_orders it &
     (for b1 being Element of the carrier of a1
           st b1 in it
        holds a2 . UpperCone InitSegm(it,b1) = b1);
end;

:: ORDERS_2:dfs 12
definiens
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be Choice_Function of BOOL the carrier of a1;
  let a3 be strongly_connected Element of bool the carrier of a1;
To prove
     a3 is Chain of a2
it is sufficient to prove
  thus a3 <> {} &
     the InternalRel of a1 well_orders a3 &
     (for b1 being Element of the carrier of a1
           st b1 in a3
        holds a2 . UpperCone InitSegm(a3,b1) = b1);

:: ORDERS_2:def 16
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Choice_Function of BOOL the carrier of b1
for b3 being strongly_connected Element of bool the carrier of b1 holds
      b3 is Chain of b2
   iff
      b3 <> {} &
       the InternalRel of b1 well_orders b3 &
       (for b4 being Element of the carrier of b1
             st b4 in b3
          holds b2 . UpperCone InitSegm(b3,b4) = b4);

:: ORDERS_2:th 78
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Choice_Function of BOOL the carrier of b1 holds
   {b2 . the carrier of b1} is Chain of b2;

:: ORDERS_2:th 79
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Choice_Function of BOOL the carrier of b1
for b3 being Chain of b2 holds
   b2 . the carrier of b1 in b3;

:: ORDERS_2:th 80
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2, b3 being Element of the carrier of b1
for b4 being Choice_Function of BOOL the carrier of b1
for b5 being Chain of b4
      st b2 in b5 & b3 = b4 . the carrier of b1
   holds b3 <= b2;

:: ORDERS_2:th 81
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of the carrier of b1
for b3 being Choice_Function of BOOL the carrier of b1
for b4 being Chain of b3
      st b2 = b3 . the carrier of b1
   holds InitSegm(b4,b2) = {};

:: ORDERS_2:th 82
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Choice_Function of BOOL the carrier of b1
for b3, b4 being Chain of b2 holds
b3 meets b4;

:: ORDERS_2:th 83
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Choice_Function of BOOL the carrier of b1
for b3, b4 being Chain of b2
      st b3 <> b4
   holds    b3 is Initial_Segm of b4
   iff
      b4 is not Initial_Segm of b3;

:: ORDERS_2:th 84
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Choice_Function of BOOL the carrier of b1
for b3, b4 being Chain of b2 holds
   b3 c< b4
iff
   b3 is Initial_Segm of b4;

:: ORDERS_2:funcnot 4 => ORDERS_2:func 4
definition
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be Choice_Function of BOOL the carrier of a1;
  func Chains A2 -> set means
    for b1 being set holds
          b1 in it
       iff
          b1 is Chain of a2;
end;

:: ORDERS_2:def 17
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Choice_Function of BOOL the carrier of b1
for b3 being set holds
      b3 = Chains b2
   iff
      for b4 being set holds
            b4 in b3
         iff
            b4 is Chain of b2;

:: ORDERS_2:funcreg 10
registration
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be Choice_Function of BOOL the carrier of a1;
  cluster Chains a2 -> non empty;
end;

:: ORDERS_2:th 87
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Choice_Function of BOOL the carrier of b1 holds
   union Chains b2 <> {};

:: ORDERS_2:th 88
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of bool the carrier of b1
for b3 being Choice_Function of BOOL the carrier of b1
for b4 being Chain of b3
      st b4 <> union Chains b3 & b2 = union Chains b3
   holds b4 is Initial_Segm of b2;

:: ORDERS_2:th 89
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Choice_Function of BOOL the carrier of b1 holds
   union Chains b2 is Chain of b2;

:: ORDERS_2:th 107
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of bool the carrier of b1 holds
   field ((the InternalRel of b1) |_2 b2) = b2;

:: ORDERS_2:th 108
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of bool the carrier of b1
      st (the InternalRel of b1) |_2 b2 is being_linear-order
   holds b2 is strongly_connected Element of bool the carrier of b1;

:: ORDERS_2:th 109
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being strongly_connected Element of bool the carrier of b1 holds
   (the InternalRel of b1) |_2 b2 is being_linear-order;

:: ORDERS_2:th 135
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of bool the carrier of b1
      st the InternalRel of b1 linearly_orders b2
   holds b2 is strongly_connected Element of bool the carrier of b1;

:: ORDERS_2:th 136
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being strongly_connected Element of bool the carrier of b1 holds
   the InternalRel of b1 linearly_orders b2;

:: ORDERS_2:th 158
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of the carrier of b1 holds
      b2 is_minimal_in the InternalRel of b1
   iff
      for b3 being Element of the carrier of b1 holds
         not b3 < b2;

:: ORDERS_2:th 159
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of the carrier of b1 holds
      b2 is_maximal_in the InternalRel of b1
   iff
      for b3 being Element of the carrier of b1 holds
         not b2 < b3;

:: ORDERS_2:th 160
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of the carrier of b1 holds
      b2 is_superior_of the InternalRel of b1
   iff
      for b3 being Element of the carrier of b1
            st b2 <> b3
         holds b3 < b2;

:: ORDERS_2:th 161
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Element of the carrier of b1 holds
      b2 is_inferior_of the InternalRel of b1
   iff
      for b3 being Element of the carrier of b1
            st b2 <> b3
         holds b2 < b3;

:: ORDERS_2:th 162
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
      st for b2 being strongly_connected Element of bool the carrier of b1 holds
           ex b3 being Element of the carrier of b1 st
              for b4 being Element of the carrier of b1
                    st b4 in b2
                 holds b4 <= b3
   holds ex b2 being Element of the carrier of b1 st
      for b3 being Element of the carrier of b1 holds
         not b2 < b3;

:: ORDERS_2:th 163
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
      st for b2 being strongly_connected Element of bool the carrier of b1 holds
           ex b3 being Element of the carrier of b1 st
              for b4 being Element of the carrier of b1
                    st b4 in b2
                 holds b3 <= b4
   holds ex b2 being Element of the carrier of b1 st
      for b3 being Element of the carrier of b1 holds
         not b3 < b2;