Article WAYBEL_1, MML version 4.99.1005

:: WAYBEL_1:attrnot 1 => WAYBEL_1:attr 1
definition
  let a1, a2 be non empty 1-sorted;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  redefine attr a3 is one-to-one means
    for b1, b2 being Element of the carrier of a1
          st a3 . b1 = a3 . b2
       holds b1 = b2;
end;

:: WAYBEL_1:dfs 1
definiens
  let a1, a2 be non empty 1-sorted;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
To prove
     a1 is one-to-one
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1
          st a3 . b1 = a3 . b2
       holds b1 = b2;

:: WAYBEL_1:def 1
theorem
for b1, b2 being non empty 1-sorted
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
      b3 is one-to-one
   iff
      for b4, b5 being Element of the carrier of b1
            st b3 . b4 = b3 . b5
         holds b4 = b5;

:: WAYBEL_1:attrnot 2 => ORDERS_3:attr 5
definition
  let a1, a2 be RelStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  attr a3 is monotone means
    for b1, b2 being Element of the carrier of a1
          st b1 <= b2
       holds a3 . b1 <= a3 . b2;
end;

:: WAYBEL_1:dfs 2
definiens
  let a1, a2 be non empty RelStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
To prove
     a3 is monotone
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1
          st b1 <= b2
       holds a3 . b1 <= a3 . b2;

:: WAYBEL_1:def 2
theorem
for b1, b2 being non empty RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
      b3 is monotone(b1, b2)
   iff
      for b4, b5 being Element of the carrier of b1
            st b4 <= b5
         holds b3 . b4 <= b3 . b5;

:: WAYBEL_1:th 2
theorem
for b1 being transitive antisymmetric with_infima RelStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 <= b3
   holds b2 "/\" b4 <= b3 "/\" b4;

:: WAYBEL_1:th 3
theorem
for b1 being transitive antisymmetric with_suprema RelStr
for b2, b3, b4 being Element of the carrier of b1
      st b2 <= b3
   holds b2 "\/" b4 <= b3 "\/" b4;

:: WAYBEL_1:th 4
theorem
for b1 being non empty antisymmetric lower-bounded RelStr
for b2 being Element of the carrier of b1 holds
   (b1 is with_infima implies (Bottom b1) "/\" b2 = Bottom b1) &
    (b1 is with_suprema & b1 is reflexive & b1 is transitive implies (Bottom b1) "\/" b2 = b2);

:: WAYBEL_1:th 5
theorem
for b1 being non empty antisymmetric upper-bounded RelStr
for b2 being Element of the carrier of b1 holds
   (b1 is with_infima & b1 is transitive & b1 is reflexive implies (Top b1) "/\" b2 = b2) &
    (b1 is with_suprema implies (Top b1) "\/" b2 = Top b1);

:: WAYBEL_1:attrnot 3 => WAYBEL_1:attr 2
definition
  let a1 be non empty RelStr;
  attr a1 is distributive means
    for b1, b2, b3 being Element of the carrier of a1 holds
    b1 "/\" (b2 "\/" b3) = (b1 "/\" b2) "\/" (b1 "/\" b3);
end;

:: WAYBEL_1:dfs 3
definiens
  let a1 be non empty RelStr;
To prove
     a1 is distributive
it is sufficient to prove
  thus for b1, b2, b3 being Element of the carrier of a1 holds
    b1 "/\" (b2 "\/" b3) = (b1 "/\" b2) "\/" (b1 "/\" b3);

:: WAYBEL_1:def 3
theorem
for b1 being non empty RelStr holds
      b1 is distributive
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      b2 "/\" (b3 "\/" b4) = (b2 "/\" b3) "\/" (b2 "/\" b4);

:: WAYBEL_1:th 6
theorem
for b1 being reflexive transitive antisymmetric with_suprema with_infima RelStr holds
      b1 is distributive
   iff
      for b2, b3, b4 being Element of the carrier of b1 holds
      b2 "\/" (b3 "/\" b4) = (b2 "\/" b3) "/\" (b2 "\/" b4);

:: WAYBEL_1:funcreg 1
registration
  let a1 be set;
  cluster BoolePoset a1 -> strict distributive;
end;

:: WAYBEL_1:prednot 1 => WAYBEL_1:pred 1
definition
  let a1 be non empty RelStr;
  let a2 be set;
  pred ex_min_of A2,A1 means
    ex_inf_of a2,a1 & "/\"(a2,a1) in a2;
end;

:: WAYBEL_1:dfs 4
definiens
  let a1 be non empty RelStr;
  let a2 be set;
To prove
     ex_min_of a2,a1
it is sufficient to prove
  thus ex_inf_of a2,a1 & "/\"(a2,a1) in a2;

:: WAYBEL_1:def 4
theorem
for b1 being non empty RelStr
for b2 being set holds
      ex_min_of b2,b1
   iff
      ex_inf_of b2,b1 & "/\"(b2,b1) in b2;

:: WAYBEL_1:prednot 2 => WAYBEL_1:pred 2
definition
  let a1 be non empty RelStr;
  let a2 be set;
  pred ex_max_of A2,A1 means
    ex_sup_of a2,a1 & "\/"(a2,a1) in a2;
end;

:: WAYBEL_1:dfs 5
definiens
  let a1 be non empty RelStr;
  let a2 be set;
To prove
     ex_max_of a2,a1
it is sufficient to prove
  thus ex_sup_of a2,a1 & "\/"(a2,a1) in a2;

:: WAYBEL_1:def 5
theorem
for b1 being non empty RelStr
for b2 being set holds
      ex_max_of b2,b1
   iff
      ex_sup_of b2,b1 & "\/"(b2,b1) in b2;

:: WAYBEL_1:prednot 3 => WAYBEL_1:pred 1
notation
  let a1 be non empty RelStr;
  let a2 be set;
  synonym a2 has_the_min_in a1 for ex_min_of a2,a1;
end;

:: WAYBEL_1:prednot 4 => WAYBEL_1:pred 2
notation
  let a1 be non empty RelStr;
  let a2 be set;
  synonym a2 has_the_max_in a1 for ex_max_of a2,a1;
end;

:: WAYBEL_1:prednot 5 => WAYBEL_1:pred 3
definition
  let a1 be non empty RelStr;
  let a2 be Element of the carrier of a1;
  let a3 be set;
  pred A2 is_minimum_of A3 means
    ex_inf_of a3,a1 & a2 = "/\"(a3,a1) & "/\"(a3,a1) in a3;
end;

:: WAYBEL_1:dfs 6
definiens
  let a1 be non empty RelStr;
  let a2 be Element of the carrier of a1;
  let a3 be set;
To prove
     a2 is_minimum_of a3
it is sufficient to prove
  thus ex_inf_of a3,a1 & a2 = "/\"(a3,a1) & "/\"(a3,a1) in a3;

:: WAYBEL_1:def 6
theorem
for b1 being non empty RelStr
for b2 being Element of the carrier of b1
for b3 being set holds
      b2 is_minimum_of b3
   iff
      ex_inf_of b3,b1 & b2 = "/\"(b3,b1) & "/\"(b3,b1) in b3;

:: WAYBEL_1:prednot 6 => WAYBEL_1:pred 4
definition
  let a1 be non empty RelStr;
  let a2 be Element of the carrier of a1;
  let a3 be set;
  pred A2 is_maximum_of A3 means
    ex_sup_of a3,a1 & a2 = "\/"(a3,a1) & "\/"(a3,a1) in a3;
end;

:: WAYBEL_1:dfs 7
definiens
  let a1 be non empty RelStr;
  let a2 be Element of the carrier of a1;
  let a3 be set;
To prove
     a2 is_maximum_of a3
it is sufficient to prove
  thus ex_sup_of a3,a1 & a2 = "\/"(a3,a1) & "\/"(a3,a1) in a3;

:: WAYBEL_1:def 7
theorem
for b1 being non empty RelStr
for b2 being Element of the carrier of b1
for b3 being set holds
      b2 is_maximum_of b3
   iff
      ex_sup_of b3,b1 & b2 = "\/"(b3,b1) & "\/"(b3,b1) in b3;

:: WAYBEL_1:funcreg 2
registration
  let a1 be RelStr;
  cluster id a1 -> Function-like quasi_total isomorphic;
end;

:: WAYBEL_1:prednot 7 => WAYBEL_1:pred 5
definition
  let a1, a2 be RelStr;
  pred A1,A2 are_isomorphic means
    ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
       b1 is isomorphic(a1, a2);
  reflexivity;
::  for a1 being RelStr holds
::     a1,a1 are_isomorphic;
end;

:: WAYBEL_1:dfs 8
definiens
  let a1, a2 be RelStr;
To prove
     a1,a2 are_isomorphic
it is sufficient to prove
  thus ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
       b1 is isomorphic(a1, a2);

:: WAYBEL_1:def 8
theorem
for b1, b2 being RelStr holds
   b1,b2 are_isomorphic
iff
   ex b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 st
      b3 is isomorphic(b1, b2);

:: WAYBEL_1:th 7
theorem
for b1, b2 being non empty RelStr
      st b1,b2 are_isomorphic
   holds b2,b1 are_isomorphic;

:: WAYBEL_1:th 8
theorem
for b1, b2, b3 being RelStr
      st b1,b2 are_isomorphic & b2,b3 are_isomorphic
   holds b1,b3 are_isomorphic;

:: WAYBEL_1:modenot 1 => WAYBEL_1:mode 1
definition
  let a1, a2 be RelStr;
  mode Connection of A1,A2 means
    ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
       ex b2 being Function-like quasi_total Relation of the carrier of a2,the carrier of a1 st
          it = [b1,b2];
end;

:: WAYBEL_1:dfs 9
definiens
  let a1, a2 be RelStr;
  let a3 be set;
To prove
     a3 is Connection of a1,a2
it is sufficient to prove
  thus ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
       ex b2 being Function-like quasi_total Relation of the carrier of a2,the carrier of a1 st
          a3 = [b1,b2];

:: WAYBEL_1:def 9
theorem
for b1, b2 being RelStr
for b3 being set holds
      b3 is Connection of b1,b2
   iff
      ex b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 st
         ex b5 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1 st
            b3 = [b4,b5];

:: WAYBEL_1:funcnot 1 => WAYBEL_1:func 1
definition
  let a1, a2 be RelStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  let a4 be Function-like quasi_total Relation of the carrier of a2,the carrier of a1;
  redefine func [a3, a4] -> Connection of a1,a2;
end;

:: WAYBEL_1:attrnot 4 => WAYBEL_1:attr 3
definition
  let a1, a2 be non empty RelStr;
  let a3 be Connection of a1,a2;
  attr a3 is Galois means
    ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
       ex b2 being Function-like quasi_total Relation of the carrier of a2,the carrier of a1 st
          a3 = [b1,b2] &
           b1 is monotone(a1, a2) &
           b2 is monotone(a2, a1) &
           (for b3 being Element of the carrier of a2
           for b4 being Element of the carrier of a1 holds
                 b3 <= b1 . b4
              iff
                 b2 . b3 <= b4);
end;

:: WAYBEL_1:dfs 10
definiens
  let a1, a2 be non empty RelStr;
  let a3 be Connection of a1,a2;
To prove
     a3 is Galois
it is sufficient to prove
  thus ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
       ex b2 being Function-like quasi_total Relation of the carrier of a2,the carrier of a1 st
          a3 = [b1,b2] &
           b1 is monotone(a1, a2) &
           b2 is monotone(a2, a1) &
           (for b3 being Element of the carrier of a2
           for b4 being Element of the carrier of a1 holds
                 b3 <= b1 . b4
              iff
                 b2 . b3 <= b4);

:: WAYBEL_1:def 10
theorem
for b1, b2 being non empty RelStr
for b3 being Connection of b1,b2 holds
      b3 is Galois(b1, b2)
   iff
      ex b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 st
         ex b5 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1 st
            b3 = [b4,b5] &
             b4 is monotone(b1, b2) &
             b5 is monotone(b2, b1) &
             (for b6 being Element of the carrier of b2
             for b7 being Element of the carrier of b1 holds
                   b6 <= b4 . b7
                iff
                   b5 . b6 <= b7);

:: WAYBEL_1:th 9
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1 holds
      [b3,b4] is Galois(b1, b2)
   iff
      b3 is monotone(b1, b2) &
       b4 is monotone(b2, b1) &
       (for b5 being Element of the carrier of b2
       for b6 being Element of the carrier of b1 holds
             b5 <= b3 . b6
          iff
             b4 . b5 <= b6);

:: WAYBEL_1:attrnot 5 => WAYBEL_1:attr 4
definition
  let a1, a2 be non empty RelStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  attr a3 is upper_adjoint means
    ex b1 being Function-like quasi_total Relation of the carrier of a2,the carrier of a1 st
       [a3,b1] is Galois(a1, a2);
end;

:: WAYBEL_1:dfs 11
definiens
  let a1, a2 be non empty RelStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
To prove
     a3 is upper_adjoint
it is sufficient to prove
  thus ex b1 being Function-like quasi_total Relation of the carrier of a2,the carrier of a1 st
       [a3,b1] is Galois(a1, a2);

:: WAYBEL_1:def 11
theorem
for b1, b2 being non empty RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
      b3 is upper_adjoint(b1, b2)
   iff
      ex b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1 st
         [b3,b4] is Galois(b1, b2);

:: WAYBEL_1:prednot 8 => WAYBEL_1:attr 4
notation
  let a1, a2 be non empty RelStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  synonym a3 has_a_lower_adjoint for upper_adjoint;
end;

:: WAYBEL_1:attrnot 6 => WAYBEL_1:attr 5
definition
  let a1, a2 be non empty RelStr;
  let a3 be Function-like quasi_total Relation of the carrier of a2,the carrier of a1;
  attr a3 is lower_adjoint means
    ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
       [b1,a3] is Galois(a1, a2);
end;

:: WAYBEL_1:dfs 12
definiens
  let a1, a2 be non empty RelStr;
  let a3 be Function-like quasi_total Relation of the carrier of a2,the carrier of a1;
To prove
     a3 is lower_adjoint
it is sufficient to prove
  thus ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
       [b1,a3] is Galois(a1, a2);

:: WAYBEL_1:def 12
theorem
for b1, b2 being non empty RelStr
for b3 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1 holds
      b3 is lower_adjoint(b1, b2)
   iff
      ex b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 st
         [b4,b3] is Galois(b1, b2);

:: WAYBEL_1:prednot 9 => WAYBEL_1:attr 5
notation
  let a1, a2 be non empty RelStr;
  let a3 be Function-like quasi_total Relation of the carrier of a2,the carrier of a1;
  synonym a3 has_an_upper_adjoint for lower_adjoint;
end;

:: WAYBEL_1:th 10
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
      st [b3,b4] is Galois(b1, b2)
   holds b3 is upper_adjoint(b1, b2) & b4 is lower_adjoint(b1, b2);

:: WAYBEL_1:th 11
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1 holds
      [b3,b4] is Galois(b1, b2)
   iff
      b3 is monotone(b1, b2) &
       (for b5 being Element of the carrier of b2 holds
          b4 . b5 is_minimum_of b3 " uparrow b5);

:: WAYBEL_1:th 12
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1 holds
      [b3,b4] is Galois(b1, b2)
   iff
      b4 is monotone(b2, b1) &
       (for b5 being Element of the carrier of b1 holds
          b3 . b5 is_maximum_of b4 " downarrow b5);

:: WAYBEL_1:th 13
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
      st b3 is upper_adjoint(b1, b2)
   holds b3 is infs-preserving(b1, b2);

:: WAYBEL_1:condreg 1
registration
  let a1, a2 be non empty reflexive transitive antisymmetric RelStr;
  cluster Function-like quasi_total upper_adjoint -> infs-preserving (Relation of the carrier of a1,the carrier of a2);
end;

:: WAYBEL_1:th 14
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
      st b3 is lower_adjoint(b1, b2)
   holds b3 is sups-preserving(b2, b1);

:: WAYBEL_1:condreg 2
registration
  let a1, a2 be non empty reflexive transitive antisymmetric RelStr;
  cluster Function-like quasi_total lower_adjoint -> sups-preserving (Relation of the carrier of a1,the carrier of a2);
end;

:: WAYBEL_1:th 15
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
      st b1 is complete & b3 is infs-preserving(b1, b2)
   holds ex b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1 st
      [b3,b4] is Galois(b1, b2) &
       (for b5 being Element of the carrier of b2 holds
          b4 . b5 is_minimum_of b3 " uparrow b5);

:: WAYBEL_1:th 16
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
      st b2 is complete & b3 is sups-preserving(b2, b1)
   holds ex b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 st
      [b4,b3] is Galois(b1, b2) &
       (for b5 being Element of the carrier of b1 holds
          b4 . b5 is_maximum_of b3 " downarrow b5);

:: WAYBEL_1:th 17
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
      st b1 is complete
   holds    b3 is infs-preserving(b1, b2)
   iff
      b3 is monotone(b1, b2) & b3 is upper_adjoint(b1, b2);

:: WAYBEL_1:th 18
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
      st b2 is complete
   holds    b3 is sups-preserving(b2, b1)
   iff
      b3 is monotone(b2, b1) & b3 is lower_adjoint(b1, b2);

:: WAYBEL_1:th 19
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
      st [b3,b4] is Galois(b1, b2)
   holds b4 * b3 <= id b1 & id b2 <= b3 * b4;

:: WAYBEL_1:th 20
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
      st b3 is monotone(b1, b2) & b4 is monotone(b2, b1) & b4 * b3 <= id b1 & id b2 <= b3 * b4
   holds [b3,b4] is Galois(b1, b2);

:: WAYBEL_1:th 21
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
      st b3 is monotone(b1, b2) & b4 is monotone(b2, b1) & b4 * b3 <= id b1 & id b2 <= b3 * b4
   holds b4 = (b4 * b3) * b4 & b3 = (b3 * b4) * b3;

:: WAYBEL_1:th 22
theorem
for b1, b2 being non empty RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
      st b3 = (b3 * b4) * b3
   holds b3 * b4 is idempotent;

:: WAYBEL_1:th 23
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
   st [b3,b4] is Galois(b1, b2) & b3 is onto(the carrier of b1, the carrier of b2)
for b5 being Element of the carrier of b2 holds
   b4 . b5 is_minimum_of b3 " {b5};

:: WAYBEL_1:th 24
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
      st for b5 being Element of the carrier of b2 holds
           b4 . b5 is_minimum_of b3 " {b5}
   holds b3 * b4 = id b2;

:: WAYBEL_1:th 25
theorem
for b1, b2 being non empty 1-sorted
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
      st b4 * b3 = id b1
   holds b3 is one-to-one & b4 is onto(the carrier of b2, the carrier of b1);

:: WAYBEL_1:th 26
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
      st [b3,b4] is Galois(b1, b2)
   holds    b3 is onto(the carrier of b1, the carrier of b2)
   iff
      b4 is one-to-one;

:: WAYBEL_1:th 27
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
   st [b3,b4] is Galois(b1, b2) & b4 is onto(the carrier of b2, the carrier of b1)
for b5 being Element of the carrier of b1 holds
   b3 . b5 is_maximum_of b4 " {b5};

:: WAYBEL_1:th 28
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
      st for b5 being Element of the carrier of b1 holds
           b3 . b5 is_maximum_of b4 " {b5}
   holds b4 * b3 = id b1;

:: WAYBEL_1:th 29
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
      st [b3,b4] is Galois(b1, b2)
   holds    b3 is one-to-one
   iff
      b4 is onto(the carrier of b2, the carrier of b1);

:: WAYBEL_1:attrnot 7 => WAYBEL_1:attr 6
definition
  let a1 be non empty RelStr;
  let a2 be Function-like quasi_total Relation of the carrier of a1,the carrier of a1;
  attr a2 is projection means
    a2 is idempotent & a2 is monotone(a1, a1);
end;

:: WAYBEL_1:dfs 13
definiens
  let a1 be non empty RelStr;
  let a2 be Function-like quasi_total Relation of the carrier of a1,the carrier of a1;
To prove
     a2 is projection
it is sufficient to prove
  thus a2 is idempotent & a2 is monotone(a1, a1);

:: WAYBEL_1:def 13
theorem
for b1 being non empty RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1 holds
      b2 is projection(b1)
   iff
      b2 is idempotent & b2 is monotone(b1, b1);

:: WAYBEL_1:prednot 10 => WAYBEL_1:attr 6
notation
  let a1 be non empty RelStr;
  let a2 be Function-like quasi_total Relation of the carrier of a1,the carrier of a1;
  synonym a2 is_a_projection_operator for projection;
end;

:: WAYBEL_1:funcreg 3
registration
  let a1 be non empty RelStr;
  cluster id a1 -> Function-like quasi_total projection;
end;

:: WAYBEL_1:exreg 1
registration
  let a1 be non empty RelStr;
  cluster non empty Relation-like Function-like total quasi_total projection Relation of the carrier of a1,the carrier of a1;
end;

:: WAYBEL_1:attrnot 8 => WAYBEL_1:attr 7
definition
  let a1 be non empty RelStr;
  let a2 be Function-like quasi_total Relation of the carrier of a1,the carrier of a1;
  attr a2 is closure means
    a2 is projection(a1) & id a1 <= a2;
end;

:: WAYBEL_1:dfs 14
definiens
  let a1 be non empty RelStr;
  let a2 be Function-like quasi_total Relation of the carrier of a1,the carrier of a1;
To prove
     a2 is closure
it is sufficient to prove
  thus a2 is projection(a1) & id a1 <= a2;

:: WAYBEL_1:def 14
theorem
for b1 being non empty RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1 holds
      b2 is closure(b1)
   iff
      b2 is projection(b1) & id b1 <= b2;

:: WAYBEL_1:prednot 11 => WAYBEL_1:attr 7
notation
  let a1 be non empty RelStr;
  let a2 be Function-like quasi_total Relation of the carrier of a1,the carrier of a1;
  synonym a2 is_a_closure_operator for closure;
end;

:: WAYBEL_1:condreg 3
registration
  let a1 be non empty RelStr;
  cluster Function-like quasi_total closure -> projection (Relation of the carrier of a1,the carrier of a1);
end;

:: WAYBEL_1:exreg 2
registration
  let a1 be non empty reflexive RelStr;
  cluster non empty Relation-like Function-like total quasi_total closure Relation of the carrier of a1,the carrier of a1;
end;

:: WAYBEL_1:funcreg 4
registration
  let a1 be non empty reflexive RelStr;
  cluster id a1 -> Function-like quasi_total closure;
end;

:: WAYBEL_1:attrnot 9 => WAYBEL_1:attr 8
definition
  let a1 be non empty RelStr;
  let a2 be Function-like quasi_total Relation of the carrier of a1,the carrier of a1;
  attr a2 is kernel means
    a2 is projection(a1) & a2 <= id a1;
end;

:: WAYBEL_1:dfs 15
definiens
  let a1 be non empty RelStr;
  let a2 be Function-like quasi_total Relation of the carrier of a1,the carrier of a1;
To prove
     a2 is kernel
it is sufficient to prove
  thus a2 is projection(a1) & a2 <= id a1;

:: WAYBEL_1:def 15
theorem
for b1 being non empty RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1 holds
      b2 is kernel(b1)
   iff
      b2 is projection(b1) & b2 <= id b1;

:: WAYBEL_1:prednot 12 => WAYBEL_1:attr 8
notation
  let a1 be non empty RelStr;
  let a2 be Function-like quasi_total Relation of the carrier of a1,the carrier of a1;
  synonym a2 is_a_kernel_operator for kernel;
end;

:: WAYBEL_1:condreg 4
registration
  let a1 be non empty RelStr;
  cluster Function-like quasi_total kernel -> projection (Relation of the carrier of a1,the carrier of a1);
end;

:: WAYBEL_1:exreg 3
registration
  let a1 be non empty reflexive RelStr;
  cluster non empty Relation-like Function-like total quasi_total kernel Relation of the carrier of a1,the carrier of a1;
end;

:: WAYBEL_1:funcreg 5
registration
  let a1 be non empty reflexive RelStr;
  cluster id a1 -> Function-like quasi_total kernel;
end;

:: WAYBEL_1:th 30
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
for b3 being Element of bool the carrier of b1
      st b2 is closure(b1) & ex_inf_of b3,b1 & b3 c= rng b2
   holds "/\"(b3,b1) = b2 . "/\"(b3,b1);

:: WAYBEL_1:th 31
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
for b3 being Element of bool the carrier of b1
      st b2 is kernel(b1) & ex_sup_of b3,b1 & b3 c= rng b2
   holds "\/"(b3,b1) = b2 . "\/"(b3,b1);

:: WAYBEL_1:funcnot 2 => WAYBEL_1:func 2
definition
  let a1, a2 be non empty RelStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  func corestr A3 -> Function-like quasi_total Relation of the carrier of a1,the carrier of Image a3 equals
    (the carrier of Image a3) | a3;
end;

:: WAYBEL_1:def 16
theorem
for b1, b2 being non empty RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
   corestr b3 = (the carrier of Image b3) | b3;

:: WAYBEL_1:th 32
theorem
for b1, b2 being non empty RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
   corestr b3 = b3;

:: WAYBEL_1:funcreg 6
registration
  let a1, a2 be non empty RelStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  cluster corestr a3 -> Function-like quasi_total onto;
end;

:: WAYBEL_1:th 33
theorem
for b1, b2 being non empty RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
      st b3 is monotone(b1, b2)
   holds corestr b3 is monotone(b1, Image b3);

:: WAYBEL_1:funcnot 3 => WAYBEL_1:func 3
definition
  let a1, a2 be non empty RelStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  func inclusion A3 -> Function-like quasi_total Relation of the carrier of Image a3,the carrier of a2 equals
    id Image a3;
end;

:: WAYBEL_1:def 17
theorem
for b1, b2 being non empty RelStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
   inclusion b3 = id Image b3;

:: WAYBEL_1:funcreg 7
registration
  let a1, a2 be non empty RelStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  cluster inclusion a3 -> Function-like one-to-one quasi_total monotone;
end;

:: WAYBEL_1:th 35
theorem
for b1 being non empty RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1 holds
   (inclusion b2) * corestr b2 = b2;

:: WAYBEL_1:th 36
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b2 is idempotent
   holds (corestr b2) * inclusion b2 = id Image b2;

:: WAYBEL_1:th 37
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b2 is projection(b1)
   holds ex b3 being non empty reflexive transitive antisymmetric RelStr st
      ex b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b3 st
         ex b5 being Function-like quasi_total Relation of the carrier of b3,the carrier of b1 st
            b4 is monotone(b1, b3) & b4 is onto(the carrier of b1, the carrier of b3) & b5 is monotone(b3, b1) & b5 is one-to-one & b2 = b5 * b4 & id b3 = b4 * b5;

:: WAYBEL_1:th 38
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st ex b3 being non empty reflexive transitive antisymmetric RelStr st
           ex b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b3 st
              ex b5 being Function-like quasi_total Relation of the carrier of b3,the carrier of b1 st
                 b4 is monotone(b1, b3) & b5 is monotone(b3, b1) & b2 = b5 * b4 & id b3 = b4 * b5
   holds b2 is projection(b1);

:: WAYBEL_1:th 39
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b2 is closure(b1)
   holds [inclusion b2,corestr b2] is Galois(Image b2, b1);

:: WAYBEL_1:th 40
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b2 is closure(b1)
   holds ex b3 being non empty reflexive transitive antisymmetric RelStr st
      ex b4 being Function-like quasi_total Relation of the carrier of b3,the carrier of b1 st
         ex b5 being Function-like quasi_total Relation of the carrier of b1,the carrier of b3 st
            [b4,b5] is Galois(b3, b1) & b2 = b4 * b5;

:: WAYBEL_1:th 41
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b2 is monotone(b1, b1) &
         (ex b3 being non empty reflexive transitive antisymmetric RelStr st
            ex b4 being Function-like quasi_total Relation of the carrier of b3,the carrier of b1 st
               ex b5 being Function-like quasi_total Relation of the carrier of b1,the carrier of b3 st
                  [b4,b5] is Galois(b3, b1) & b2 = b4 * b5)
   holds b2 is closure(b1);

:: WAYBEL_1:th 42
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b2 is kernel(b1)
   holds [corestr b2,inclusion b2] is Galois(b1, Image b2);

:: WAYBEL_1:th 43
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b2 is kernel(b1)
   holds ex b3 being non empty reflexive transitive antisymmetric RelStr st
      ex b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b3 st
         ex b5 being Function-like quasi_total Relation of the carrier of b3,the carrier of b1 st
            [b4,b5] is Galois(b1, b3) & b2 = b5 * b4;

:: WAYBEL_1:th 44
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b2 is monotone(b1, b1) &
         (ex b3 being non empty reflexive transitive antisymmetric RelStr st
            ex b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b3 st
               ex b5 being Function-like quasi_total Relation of the carrier of b3,the carrier of b1 st
                  [b4,b5] is Galois(b1, b3) & b2 = b5 * b4)
   holds b2 is kernel(b1);

:: WAYBEL_1:th 45
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b2 is projection(b1)
   holds rng b2 = {b3 where b3 is Element of the carrier of b1: b3 <= b2 . b3} /\ {b3 where b3 is Element of the carrier of b1: b2 . b3 <= b3};

:: WAYBEL_1:th 46
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b2 is projection(b1)
   holds {b3 where b3 is Element of the carrier of b1: b3 <= b2 . b3} is non empty Element of bool the carrier of b1 &
    {b3 where b3 is Element of the carrier of b1: b2 . b3 <= b3} is non empty Element of bool the carrier of b1;

:: WAYBEL_1:th 47
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b2 is projection(b1)
   holds rng (b2 | {b3 where b3 is Element of the carrier of b1: b3 <= b2 . b3}) = rng b2 &
    rng (b2 | {b3 where b3 is Element of the carrier of b1: b2 . b3 <= b3}) = rng b2;

:: WAYBEL_1:th 48
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
   st b2 is projection(b1)
for b3, b4 being non empty Element of bool the carrier of b1
      st b3 = {b5 where b5 is Element of the carrier of b1: b5 <= b2 . b5}
   holds b2 | b3 is Function-like quasi_total Relation of the carrier of subrelstr b3,the carrier of subrelstr b3;

:: WAYBEL_1:th 49
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
   st b2 is projection(b1)
for b3 being non empty Element of bool the carrier of b1
      st b3 = {b4 where b4 is Element of the carrier of b1: b2 . b4 <= b4}
   holds b2 | b3 is Function-like quasi_total Relation of the carrier of subrelstr b3,the carrier of subrelstr b3;

:: WAYBEL_1:th 50
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
   st b2 is projection(b1)
for b3 being non empty Element of bool the carrier of b1
   st b3 = {b4 where b4 is Element of the carrier of b1: b4 <= b2 . b4}
for b4 being Function-like quasi_total Relation of the carrier of subrelstr b3,the carrier of subrelstr b3
      st b4 = b2 | b3
   holds b4 is closure(subrelstr b3);

:: WAYBEL_1:th 51
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
   st b2 is projection(b1)
for b3 being non empty Element of bool the carrier of b1
   st b3 = {b4 where b4 is Element of the carrier of b1: b2 . b4 <= b4}
for b4 being Function-like quasi_total Relation of the carrier of subrelstr b3,the carrier of subrelstr b3
      st b4 = b2 | b3
   holds b4 is kernel(subrelstr b3);

:: WAYBEL_1:th 52
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
   st b2 is monotone(b1, b1)
for b3 being Element of bool the carrier of b1
      st b3 = {b4 where b4 is Element of the carrier of b1: b4 <= b2 . b4}
   holds subrelstr b3 is sups-inheriting(b1);

:: WAYBEL_1:th 53
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
   st b2 is monotone(b1, b1)
for b3 being Element of bool the carrier of b1
      st b3 = {b4 where b4 is Element of the carrier of b1: b2 . b4 <= b4}
   holds subrelstr b3 is infs-inheriting(b1);

:: WAYBEL_1:th 54
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
   st b2 is projection(b1)
for b3 being non empty Element of bool the carrier of b1
      st b3 = {b4 where b4 is Element of the carrier of b1: b4 <= b2 . b4}
   holds (b2 is infs-preserving(b1, b1) implies subrelstr b3 is infs-inheriting(b1) & Image b2 is infs-inheriting(b1)) &
    (b2 is filtered-infs-preserving(b1, b1) implies subrelstr b3 is filtered-infs-inheriting(b1) & Image b2 is filtered-infs-inheriting(b1));

:: WAYBEL_1:th 55
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
   st b2 is projection(b1)
for b3 being non empty Element of bool the carrier of b1
      st b3 = {b4 where b4 is Element of the carrier of b1: b2 . b4 <= b4}
   holds (b2 is sups-preserving(b1, b1) implies subrelstr b3 is sups-inheriting(b1) & Image b2 is sups-inheriting(b1)) &
    (b2 is directed-sups-preserving(b1, b1) implies subrelstr b3 is directed-sups-inheriting(b1) & Image b2 is directed-sups-inheriting(b1));

:: WAYBEL_1:th 56
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1 holds
   (b2 is closure(b1) implies Image b2 is infs-inheriting(b1)) & (b2 is kernel(b1) implies Image b2 is sups-inheriting(b1));

:: WAYBEL_1:th 57
theorem
for b1 being non empty reflexive transitive antisymmetric complete RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b2 is projection(b1)
   holds Image b2 is complete;

:: WAYBEL_1:th 58
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b2 is closure(b1)
   holds corestr b2 is sups-preserving(b1, Image b2) &
    (for b3 being Element of bool the carrier of b1
          st b3 c= the carrier of Image b2 & ex_sup_of b3,b1
       holds ex_sup_of b3,Image b2 &
        "\/"(b3,Image b2) = b2 . "\/"(b3,b1));

:: WAYBEL_1:th 59
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
      st b2 is kernel(b1)
   holds corestr b2 is infs-preserving(b1, Image b2) &
    (for b3 being Element of bool the carrier of b1
          st b3 c= the carrier of Image b2 & ex_inf_of b3,b1
       holds ex_inf_of b3,Image b2 &
        "/\"(b3,Image b2) = b2 . "/\"(b3,b1));

:: WAYBEL_1:th 60
theorem
for b1 being non empty reflexive transitive antisymmetric complete RelStr holds
   [IdsMap b1,SupMap b1] is Galois(b1, InclPoset Ids b1) &
    SupMap b1 is sups-preserving(InclPoset Ids b1, b1);

:: WAYBEL_1:th 61
theorem
for b1 being non empty reflexive transitive antisymmetric complete RelStr holds
   (IdsMap b1) * SupMap b1 is closure(InclPoset Ids b1) &
    Image ((IdsMap b1) * SupMap b1),b1 are_isomorphic;

:: WAYBEL_1:funcnot 4 => WAYBEL_1:func 4
definition
  let a1 be non empty RelStr;
  let a2 be Element of the carrier of a1;
  func A2 "/\" -> Function-like quasi_total Relation of the carrier of a1,the carrier of a1 means
    for b1 being Element of the carrier of a1 holds
       it . b1 = a2 "/\" b1;
end;

:: WAYBEL_1:def 18
theorem
for b1 being non empty RelStr
for b2 being Element of the carrier of b1
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1 holds
      b3 = b2 "/\"
   iff
      for b4 being Element of the carrier of b1 holds
         b3 . b4 = b2 "/\" b4;

:: WAYBEL_1:th 62
theorem
for b1 being non empty RelStr
for b2, b3 being Element of the carrier of b1 holds
{b4 where b4 is Element of the carrier of b1: b2 "/\" b4 <= b3} = b2 "/\" " downarrow b3;

:: WAYBEL_1:th 63
theorem
for b1 being reflexive transitive antisymmetric with_infima RelStr
for b2 being Element of the carrier of b1 holds
   b2 "/\" is monotone(b1, b1);

:: WAYBEL_1:funcreg 8
registration
  let a1 be reflexive transitive antisymmetric with_infima RelStr;
  let a2 be Element of the carrier of a1;
  cluster a2 "/\" -> Function-like quasi_total monotone;
end;

:: WAYBEL_1:th 64
theorem
for b1 being non empty RelStr
for b2 being Element of the carrier of b1
for b3 being Element of bool the carrier of b1 holds
   b2 "/\" .: b3 = {b2 "/\" b4 where b4 is Element of the carrier of b1: b4 in b3};

:: WAYBEL_1:th 65
theorem
for b1 being reflexive transitive antisymmetric with_infima RelStr holds
      for b2 being Element of the carrier of b1 holds
         b2 "/\" is lower_adjoint(b1, b1)
   iff
      for b2, b3 being Element of the carrier of b1 holds
      ex_max_of {b4 where b4 is Element of the carrier of b1: b2 "/\" b4 <= b3},b1;

:: WAYBEL_1:th 66
theorem
for b1 being reflexive transitive antisymmetric with_infima RelStr
   st for b2 being Element of the carrier of b1 holds
        b2 "/\" is lower_adjoint(b1, b1)
for b2 being Element of bool the carrier of b1
   st ex_sup_of b2,b1
for b3 being Element of the carrier of b1 holds
   b3 "/\" "\/"(b2,b1) = "\/"({b3 "/\" b4 where b4 is Element of the carrier of b1: b4 in b2},b1);

:: WAYBEL_1:th 67
theorem
for b1 being non empty reflexive transitive antisymmetric complete RelStr holds
      for b2 being Element of the carrier of b1 holds
         b2 "/\" is lower_adjoint(b1, b1)
   iff
      for b2 being Element of bool the carrier of b1
      for b3 being Element of the carrier of b1 holds
         b3 "/\" "\/"(b2,b1) = "\/"({b3 "/\" b4 where b4 is Element of the carrier of b1: b4 in b2},b1);

:: WAYBEL_1:th 68
theorem
for b1 being reflexive transitive antisymmetric with_suprema with_infima RelStr
      st for b2 being Element of bool the carrier of b1
           st ex_sup_of b2,b1
        for b3 being Element of the carrier of b1 holds
           b3 "/\" "\/"(b2,b1) = "\/"({b3 "/\" b4 where b4 is Element of the carrier of b1: b4 in b2},b1)
   holds b1 is distributive;

:: WAYBEL_1:attrnot 10 => WAYBEL_1:attr 9
definition
  let a1 be non empty RelStr;
  attr a1 is Heyting means
    a1 is reflexive transitive antisymmetric with_suprema with_infima RelStr &
     (for b1 being Element of the carrier of a1 holds
        b1 "/\" is lower_adjoint(a1, a1));
end;

:: WAYBEL_1:dfs 19
definiens
  let a1 be non empty RelStr;
To prove
     a1 is Heyting
it is sufficient to prove
  thus a1 is reflexive transitive antisymmetric with_suprema with_infima RelStr &
     (for b1 being Element of the carrier of a1 holds
        b1 "/\" is lower_adjoint(a1, a1));

:: WAYBEL_1:def 19
theorem
for b1 being non empty RelStr holds
      b1 is Heyting
   iff
      b1 is reflexive transitive antisymmetric with_suprema with_infima RelStr &
       (for b2 being Element of the carrier of b1 holds
          b2 "/\" is lower_adjoint(b1, b1));

:: WAYBEL_1:prednot 13 => WAYBEL_1:attr 9
notation
  let a1 be non empty RelStr;
  synonym a1 is_a_Heyting_algebra for Heyting;
end;

:: WAYBEL_1:condreg 5
registration
  cluster non empty Heyting -> reflexive transitive antisymmetric with_suprema with_infima (RelStr);
end;

:: WAYBEL_1:funcnot 5 => WAYBEL_1:func 5
definition
  let a1 be non empty RelStr;
  let a2 be Element of the carrier of a1;
  assume a1 is Heyting;
  func A2 => -> Function-like quasi_total Relation of the carrier of a1,the carrier of a1 means
    [it,a2 "/\"] is Galois(a1, a1);
end;

:: WAYBEL_1:def 20
theorem
for b1 being non empty RelStr
for b2 being Element of the carrier of b1
   st b1 is Heyting
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1 holds
      b3 = b2 =>
   iff
      [b3,b2 "/\"] is Galois(b1, b1);

:: WAYBEL_1:th 69
theorem
for b1 being non empty RelStr
      st b1 is Heyting
   holds b1 is distributive;

:: WAYBEL_1:condreg 6
registration
  cluster non empty Heyting -> distributive (RelStr);
end;

:: WAYBEL_1:funcnot 6 => WAYBEL_1:func 6
definition
  let a1 be non empty RelStr;
  let a2, a3 be Element of the carrier of a1;
  func A2 => A3 -> Element of the carrier of a1 equals
    a2 => . a3;
end;

:: WAYBEL_1:def 21
theorem
for b1 being non empty RelStr
for b2, b3 being Element of the carrier of b1 holds
b2 => b3 = b2 => . b3;

:: WAYBEL_1:th 70
theorem
for b1 being non empty RelStr
   st b1 is Heyting
for b2, b3, b4 being Element of the carrier of b1 holds
   b3 "/\" b4 <= b2
iff
   b4 <= b3 => b2;

:: WAYBEL_1:th 71
theorem
for b1 being non empty RelStr
      st b1 is Heyting
   holds b1 is upper-bounded;

:: WAYBEL_1:condreg 7
registration
  cluster non empty Heyting -> upper-bounded (RelStr);
end;

:: WAYBEL_1:th 72
theorem
for b1 being non empty RelStr
   st b1 is Heyting
for b2, b3 being Element of the carrier of b1 holds
   Top b1 = b2 => b3
iff
   b2 <= b3;

:: WAYBEL_1:th 73
theorem
for b1 being non empty RelStr
   st b1 is Heyting
for b2 being Element of the carrier of b1 holds
   Top b1 = b2 => b2;

:: WAYBEL_1:th 74
theorem
for b1 being non empty RelStr
   st b1 is Heyting
for b2, b3 being Element of the carrier of b1
      st Top b1 = b2 => b3 & Top b1 = b3 => b2
   holds b2 = b3;

:: WAYBEL_1:th 75
theorem
for b1 being non empty RelStr
   st b1 is Heyting
for b2, b3 being Element of the carrier of b1 holds
b3 <= b2 => b3;

:: WAYBEL_1:th 76
theorem
for b1 being non empty RelStr
   st b1 is Heyting
for b2 being Element of the carrier of b1 holds
   Top b1 = b2 => Top b1;

:: WAYBEL_1:th 77
theorem
for b1 being non empty RelStr
   st b1 is Heyting
for b2 being Element of the carrier of b1 holds
   b2 = (Top b1) => b2;

:: WAYBEL_1:th 78
theorem
for b1 being non empty RelStr
   st b1 is Heyting
for b2, b3, b4 being Element of the carrier of b1
      st b2 <= b3
   holds b3 => b4 <= b2 => b4;

:: WAYBEL_1:th 79
theorem
for b1 being non empty RelStr
   st b1 is Heyting
for b2, b3, b4 being Element of the carrier of b1
      st b3 <= b4
   holds b2 => b3 <= b2 => b4;

:: WAYBEL_1:th 80
theorem
for b1 being non empty RelStr
   st b1 is Heyting
for b2, b3 being Element of the carrier of b1 holds
b2 "/\" (b2 => b3) = b2 "/\" b3;

:: WAYBEL_1:th 81
theorem
for b1 being non empty RelStr
   st b1 is Heyting
for b2, b3, b4 being Element of the carrier of b1 holds
(b2 "\/" b3) => b4 = (b2 => b4) "/\" (b3 => b4);

:: WAYBEL_1:funcnot 7 => WAYBEL_1:func 7
definition
  let a1 be non empty RelStr;
  let a2 be Element of the carrier of a1;
  func 'not' A2 -> Element of the carrier of a1 equals
    a2 => Bottom a1;
end;

:: WAYBEL_1:def 22
theorem
for b1 being non empty RelStr
for b2 being Element of the carrier of b1 holds
   'not' b2 = b2 => Bottom b1;

:: WAYBEL_1:th 82
theorem
for b1 being non empty RelStr
   st b1 is Heyting & b1 is lower-bounded
for b2 being Element of the carrier of b1 holds
   'not' b2 is_maximum_of {b3 where b3 is Element of the carrier of b1: b2 "/\" b3 = Bottom b1};

:: WAYBEL_1:th 83
theorem
for b1 being non empty RelStr
      st b1 is Heyting & b1 is lower-bounded
   holds 'not' Bottom b1 = Top b1 & 'not' Top b1 = Bottom b1;

:: WAYBEL_1:th 84
theorem
for b1 being non empty lower-bounded RelStr
   st b1 is Heyting
for b2, b3 being Element of the carrier of b1 holds
   b3 <= 'not' b2
iff
   b2 <= 'not' b3;

:: WAYBEL_1:th 85
theorem
for b1 being non empty lower-bounded RelStr
   st b1 is Heyting
for b2, b3 being Element of the carrier of b1 holds
   b3 <= 'not' b2
iff
   b2 "/\" b3 = Bottom b1;

:: WAYBEL_1:th 86
theorem
for b1 being non empty lower-bounded RelStr
   st b1 is Heyting
for b2, b3 being Element of the carrier of b1
      st b2 <= b3
   holds 'not' b3 <= 'not' b2;

:: WAYBEL_1:th 87
theorem
for b1 being non empty lower-bounded RelStr
   st b1 is Heyting
for b2, b3 being Element of the carrier of b1 holds
'not' (b2 "\/" b3) = ('not' b2) "/\" 'not' b3;

:: WAYBEL_1:th 88
theorem
for b1 being non empty lower-bounded RelStr
   st b1 is Heyting
for b2, b3 being Element of the carrier of b1 holds
('not' b2) "\/" 'not' b3 <= 'not' (b2 "/\" b3);

:: WAYBEL_1:prednot 14 => WAYBEL_1:pred 6
definition
  let a1 be non empty RelStr;
  let a2, a3 be Element of the carrier of a1;
  pred A3 is_a_complement_of A2 means
    a2 "\/" a3 = Top a1 & a2 "/\" a3 = Bottom a1;
end;

:: WAYBEL_1:dfs 23
definiens
  let a1 be non empty RelStr;
  let a2, a3 be Element of the carrier of a1;
To prove
     a3 is_a_complement_of a2
it is sufficient to prove
  thus a2 "\/" a3 = Top a1 & a2 "/\" a3 = Bottom a1;

:: WAYBEL_1:def 23
theorem
for b1 being non empty RelStr
for b2, b3 being Element of the carrier of b1 holds
   b3 is_a_complement_of b2
iff
   b2 "\/" b3 = Top b1 & b2 "/\" b3 = Bottom b1;

:: WAYBEL_1:attrnot 11 => WAYBEL_1:attr 10
definition
  let a1 be non empty RelStr;
  attr a1 is complemented means
    for b1 being Element of the carrier of a1 holds
       ex b2 being Element of the carrier of a1 st
          b2 is_a_complement_of b1;
end;

:: WAYBEL_1:dfs 24
definiens
  let a1 be non empty RelStr;
To prove
     a1 is complemented
it is sufficient to prove
  thus for b1 being Element of the carrier of a1 holds
       ex b2 being Element of the carrier of a1 st
          b2 is_a_complement_of b1;

:: WAYBEL_1:def 24
theorem
for b1 being non empty RelStr holds
      b1 is complemented
   iff
      for b2 being Element of the carrier of b1 holds
         ex b3 being Element of the carrier of b1 st
            b3 is_a_complement_of b2;

:: WAYBEL_1:funcreg 9
registration
  let a1 be set;
  cluster BoolePoset a1 -> strict complemented;
end;

:: WAYBEL_1:th 89
theorem
for b1 being reflexive transitive antisymmetric with_suprema with_infima bounded RelStr
   st b1 is Heyting &
      (for b2 being Element of the carrier of b1 holds
         'not' 'not' b2 = b2)
for b2 being Element of the carrier of b1 holds
   'not' b2 is_a_complement_of b2;

:: WAYBEL_1:th 90
theorem
for b1 being reflexive transitive antisymmetric with_suprema with_infima bounded RelStr holds
      b1 is distributive & b1 is complemented
   iff
      b1 is Heyting &
       (for b2 being Element of the carrier of b1 holds
          'not' 'not' b2 = b2);

:: WAYBEL_1:attrnot 12 => WAYBEL_1:attr 11
definition
  let a1 be non empty RelStr;
  attr a1 is Boolean means
    a1 is reflexive transitive antisymmetric with_suprema with_infima RelStr &
     a1 is bounded &
     a1 is distributive &
     a1 is complemented;
end;

:: WAYBEL_1:dfs 25
definiens
  let a1 be non empty RelStr;
To prove
     a1 is Boolean
it is sufficient to prove
  thus a1 is reflexive transitive antisymmetric with_suprema with_infima RelStr &
     a1 is bounded &
     a1 is distributive &
     a1 is complemented;

:: WAYBEL_1:def 25
theorem
for b1 being non empty RelStr holds
      b1 is Boolean
   iff
      b1 is reflexive transitive antisymmetric with_suprema with_infima RelStr &
       b1 is bounded &
       b1 is distributive &
       b1 is complemented;

:: WAYBEL_1:prednot 15 => WAYBEL_1:attr 11
notation
  let a1 be non empty RelStr;
  synonym a1 is_a_Boolean_algebra for Boolean;
end;

:: WAYBEL_1:prednot 16 => WAYBEL_1:attr 11
notation
  let a1 be non empty RelStr;
  synonym a1 is_a_Boolean_lattice for Boolean;
end;

:: WAYBEL_1:condreg 8
registration
  cluster non empty Boolean -> reflexive transitive antisymmetric with_suprema with_infima bounded distributive complemented (RelStr);
end;

:: WAYBEL_1:condreg 9
registration
  cluster non empty reflexive transitive antisymmetric with_suprema with_infima bounded distributive complemented -> Boolean (RelStr);
end;

:: WAYBEL_1:condreg 10
registration
  cluster non empty Boolean -> Heyting (RelStr);
end;

:: WAYBEL_1:exreg 4
registration
  cluster non empty strict reflexive transitive antisymmetric with_suprema with_infima Boolean RelStr;
end;

:: WAYBEL_1:exreg 5
registration
  cluster non empty strict reflexive transitive antisymmetric with_suprema with_infima Heyting RelStr;
end;