Article YELLOW21, MML version 4.99.1005

:: YELLOW21:funcnot 1 => YELLOW21:func 1
definition
  let a1 be set;
  func A1 as_1-sorted -> 1-sorted equals
    a1
    if a1 is 1-sorted
    otherwise 1-sorted(#a1#);
end;

:: YELLOW21:def 1
theorem
for b1 being set holds
   (b1 is 1-sorted implies b1 as_1-sorted = b1) & (b1 is 1-sorted or b1 as_1-sorted = 1-sorted(#b1#));

:: YELLOW21:funcnot 2 => YELLOW21:func 2
definition
  let a1 be set;
  func POSETS A1 -> set means
    for b1 being set holds
          b1 in it
       iff
          b1 is strict reflexive transitive antisymmetric RelStr & the carrier of b1 as_1-sorted in a1;
end;

:: YELLOW21:def 2
theorem
for b1, b2 being set holds
   b2 = POSETS b1
iff
   for b3 being set holds
         b3 in b2
      iff
         b3 is strict reflexive transitive antisymmetric RelStr & the carrier of b3 as_1-sorted in b1;

:: YELLOW21:funcreg 1
registration
  let a1 be non empty set;
  cluster POSETS a1 -> non empty;
end;

:: YELLOW21:funcreg 2
registration
  let a1 be with_non-empty_elements set;
  cluster POSETS a1 -> POSet_set-like;
end;

:: YELLOW21:attrnot 1 => YELLOW21:attr 1
definition
  let a1 be non empty transitive associative with_units AltCatStr;
  attr a1 is carrier-underlaid means
    for b1 being Element of the carrier of a1 holds
       ex b2 being 1-sorted st
          b1 = b2 & a1 -carrier_of b1 = the carrier of b2;
end;

:: YELLOW21:dfs 3
definiens
  let a1 be non empty transitive associative with_units AltCatStr;
To prove
     a1 is carrier-underlaid
it is sufficient to prove
  thus for b1 being Element of the carrier of a1 holds
       ex b2 being 1-sorted st
          b1 = b2 & a1 -carrier_of b1 = the carrier of b2;

:: YELLOW21:def 3
theorem
for b1 being non empty transitive associative with_units AltCatStr holds
      b1 is carrier-underlaid
   iff
      for b2 being Element of the carrier of b1 holds
         ex b3 being 1-sorted st
            b2 = b3 & b1 -carrier_of b2 = the carrier of b3;

:: YELLOW21:attrnot 2 => YELLOW21:attr 2
definition
  let a1 be non empty transitive associative with_units AltCatStr;
  attr a1 is lattice-wise means
    a1 is semi-functional &
     a1 is set-id-inheriting &
     (for b1 being Element of the carrier of a1 holds
        b1 is reflexive transitive antisymmetric with_suprema with_infima RelStr) &
     (for b1, b2 being Element of the carrier of a1
     for b3, b4 being reflexive transitive antisymmetric with_suprema with_infima RelStr
           st b3 = b1 & b4 = b2
        holds <^b1,b2^> c= MonFuncs(b3,b4));
end;

:: YELLOW21:dfs 4
definiens
  let a1 be non empty transitive associative with_units AltCatStr;
To prove
     a1 is lattice-wise
it is sufficient to prove
  thus a1 is semi-functional &
     a1 is set-id-inheriting &
     (for b1 being Element of the carrier of a1 holds
        b1 is reflexive transitive antisymmetric with_suprema with_infima RelStr) &
     (for b1, b2 being Element of the carrier of a1
     for b3, b4 being reflexive transitive antisymmetric with_suprema with_infima RelStr
           st b3 = b1 & b4 = b2
        holds <^b1,b2^> c= MonFuncs(b3,b4));

:: YELLOW21:def 4
theorem
for b1 being non empty transitive associative with_units AltCatStr holds
      b1 is lattice-wise
   iff
      b1 is semi-functional &
       b1 is set-id-inheriting &
       (for b2 being Element of the carrier of b1 holds
          b2 is reflexive transitive antisymmetric with_suprema with_infima RelStr) &
       (for b2, b3 being Element of the carrier of b1
       for b4, b5 being reflexive transitive antisymmetric with_suprema with_infima RelStr
             st b4 = b2 & b5 = b3
          holds <^b2,b3^> c= MonFuncs(b4,b5));

:: YELLOW21:attrnot 3 => YELLOW21:attr 3
definition
  let a1 be non empty transitive associative with_units AltCatStr;
  attr a1 is with_complete_lattices means
    a1 is lattice-wise &
     (for b1 being Element of the carrier of a1 holds
        b1 is reflexive transitive antisymmetric with_suprema with_infima complete RelStr);
end;

:: YELLOW21:dfs 5
definiens
  let a1 be non empty transitive associative with_units AltCatStr;
To prove
     a1 is with_complete_lattices
it is sufficient to prove
  thus a1 is lattice-wise &
     (for b1 being Element of the carrier of a1 holds
        b1 is reflexive transitive antisymmetric with_suprema with_infima complete RelStr);

:: YELLOW21:def 5
theorem
for b1 being non empty transitive associative with_units AltCatStr holds
      b1 is with_complete_lattices
   iff
      b1 is lattice-wise &
       (for b2 being Element of the carrier of b1 holds
          b2 is reflexive transitive antisymmetric with_suprema with_infima complete RelStr);

:: YELLOW21:condreg 1
registration
  cluster non empty transitive associative with_units with_complete_lattices -> lattice-wise (AltCatStr);
end;

:: YELLOW21:condreg 2
registration
  cluster non empty transitive associative with_units lattice-wise -> concrete carrier-underlaid (AltCatStr);
end;

:: YELLOW21:sch 1
scheme YELLOW21:sch 1
{F1 -> non empty set}:
ex b1 being non empty transitive strict associative with_units AltCatStr st
   b1 is lattice-wise &
    the carrier of b1 = F1() &
    (for b2, b3 being reflexive transitive antisymmetric with_suprema with_infima RelStr
    for b4 being Function-like quasi_total monotone Relation of the carrier of b2,the carrier of b3 holds
          b4 in (the Arrows of b1) .(b2,b3)
       iff
          b2 in F1() & b3 in F1() & P1[b2, b3, b4])
provided
   for b1 being Element of F1() holds
      b1 is reflexive transitive antisymmetric with_suprema with_infima RelStr
and
   for b1, b2, b3 being reflexive transitive antisymmetric with_suprema with_infima RelStr
      st b1 in F1() & b2 in F1() & b3 in F1()
   for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
   for b5 being Function-like quasi_total Relation of the carrier of b2,the carrier of b3
         st P1[b1, b2, b4] & P1[b2, b3, b5]
      holds P1[b1, b3, b5 * b4]
and
   for b1 being reflexive transitive antisymmetric with_suprema with_infima RelStr
         st b1 in F1()
      holds P1[b1, b1, id b1];


:: YELLOW21:exreg 1
registration
  cluster non empty transitive strict associative with_units reflexive with_complete_lattices AltCatStr;
end;

:: YELLOW21:th 1
theorem
for b1 being non empty transitive associative with_units carrier-underlaid AltCatStr
for b2 being Element of the carrier of b1 holds
   b1 -carrier_of b2 = the carrier of b2 as_1-sorted;

:: YELLOW21:th 2
theorem
for b1 being non empty transitive associative with_units set-id-inheriting carrier-underlaid AltCatStr
for b2 being Element of the carrier of b1 holds
   idm b2 = id (b2 as_1-sorted);

:: YELLOW21:funcnot 3 => YELLOW21:func 1
notation
  let a1 be non empty transitive associative with_units lattice-wise AltCatStr;
  let a2 be Element of the carrier of a1;
  synonym latt a2 for a1 as_1-sorted;
end;

:: YELLOW21:funcnot 4 => YELLOW21:func 3
definition
  let a1 be non empty transitive associative with_units lattice-wise AltCatStr;
  let a2 be Element of the carrier of a1;
  redefine func latt A2 -> reflexive transitive antisymmetric with_suprema with_infima RelStr equals
    a2;
end;

:: YELLOW21:def 6
theorem
for b1 being non empty transitive associative with_units lattice-wise AltCatStr
for b2 being Element of the carrier of b1 holds
   latt b2 = b2;

:: YELLOW21:funcnot 5 => YELLOW21:func 1
notation
  let a1 be non empty transitive associative with_units with_complete_lattices AltCatStr;
  let a2 be Element of the carrier of a1;
  synonym latt a2 for a1 as_1-sorted;
end;

:: YELLOW21:funcnot 6 => YELLOW21:func 4
definition
  let a1 be non empty transitive associative with_units with_complete_lattices AltCatStr;
  let a2 be Element of the carrier of a1;
  redefine func latt a2 -> reflexive transitive antisymmetric with_suprema with_infima complete RelStr;
end;

:: YELLOW21:funcnot 7 => YELLOW21:func 5
definition
  let a1 be non empty transitive associative with_units lattice-wise AltCatStr;
  let a2, a3 be Element of the carrier of a1;
  let a4 be Element of <^a2,a3^>;
  assume <^a2,a3^> <> {};
  func @ A4 -> Function-like quasi_total monotone Relation of the carrier of latt a2,the carrier of latt a3 equals
    a4;
end;

:: YELLOW21:def 7
theorem
for b1 being non empty transitive associative with_units lattice-wise AltCatStr
for b2, b3 being Element of the carrier of b1
   st <^b2,b3^> <> {}
for b4 being Element of <^b2,b3^> holds
   @ b4 = b4;

:: YELLOW21:th 3
theorem
for b1 being non empty transitive associative with_units lattice-wise AltCatStr
for b2, b3, b4 being Element of the carrier of b1
   st <^b2,b3^> <> {} & <^b3,b4^> <> {}
for b5 being Element of <^b2,b3^>
for b6 being Element of <^b3,b4^> holds
   b6 * b5 = (@ b6) * @ b5;

:: YELLOW21:sch 2
scheme YELLOW21:sch 2
{F1 -> non empty set}:
ex b1 being non empty transitive strict associative with_units lattice-wise AltCatStr st
   the carrier of b1 = F1() &
    (for b2, b3 being Element of the carrier of b1
    for b4 being Function-like quasi_total monotone Relation of the carrier of latt b2,the carrier of latt b3 holds
          b4 in <^b2,b3^>
       iff
          P1[latt b2, latt b3, b4])
provided
   for b1 being Element of F1() holds
      b1 is reflexive transitive antisymmetric with_suprema with_infima RelStr
and
   for b1, b2, b3 being reflexive transitive antisymmetric with_suprema with_infima RelStr
      st b1 in F1() & b2 in F1() & b3 in F1()
   for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
   for b5 being Function-like quasi_total Relation of the carrier of b2,the carrier of b3
         st P1[b1, b2, b4] & P1[b2, b3, b5]
      holds P1[b1, b3, b5 * b4]
and
   for b1 being reflexive transitive antisymmetric with_suprema with_infima RelStr
         st b1 in F1()
      holds P1[b1, b1, id b1];


:: YELLOW21:sch 3
scheme YELLOW21:sch 3
{F1 -> non empty set}:
ex b1 being non empty transitive strict associative with_units lattice-wise AltCatStr st
   (for b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr holds
          b2 is Element of the carrier of b1
       iff
          b2 is strict & P1[b2] & the carrier of b2 in F1()) &
    (for b2, b3 being Element of the carrier of b1
    for b4 being Function-like quasi_total monotone Relation of the carrier of latt b2,the carrier of latt b3 holds
          b4 in <^b2,b3^>
       iff
          P2[latt b2, latt b3, b4])
provided
   ex b1 being strict reflexive transitive antisymmetric with_suprema with_infima RelStr st
      P1[b1] & the carrier of b1 in F1()
and
   for b1, b2, b3 being reflexive transitive antisymmetric with_suprema with_infima RelStr
      st P1[b1] & P1[b2] & P1[b3]
   for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
   for b5 being Function-like quasi_total Relation of the carrier of b2,the carrier of b3
         st P2[b1, b2, b4] & P2[b2, b3, b5]
      holds P2[b1, b3, b5 * b4]
and
   for b1 being reflexive transitive antisymmetric with_suprema with_infima RelStr
         st P1[b1]
      holds P2[b1, b1, id b1];


:: YELLOW21:sch 4
scheme YELLOW21:sch 4
{F1 -> non empty set}:
for b1, b2 being non empty transitive associative with_units lattice-wise AltCatStr
      st the carrier of b1 = F1() &
         (for b3, b4 being Element of the carrier of b1
         for b5 being Function-like quasi_total monotone Relation of the carrier of latt b3,the carrier of latt b4 holds
               b5 in <^b3,b4^>
            iff
               P1[b3, b4, b5]) &
         the carrier of b2 = F1() &
         (for b3, b4 being Element of the carrier of b2
         for b5 being Function-like quasi_total monotone Relation of the carrier of latt b3,the carrier of latt b4 holds
               b5 in <^b3,b4^>
            iff
               P1[b3, b4, b5])
   holds AltCatStr(#the carrier of b1,the Arrows of b1,the Comp of b1#) = AltCatStr(#the carrier of b2,the Arrows of b2,the Comp of b2#)


:: YELLOW21:sch 5
scheme YELLOW21:sch 5
{F1 -> non empty set}:
for b1, b2 being non empty transitive associative with_units lattice-wise AltCatStr
      st (for b3 being reflexive transitive antisymmetric with_suprema with_infima RelStr holds
               b3 is Element of the carrier of b1
            iff
               b3 is strict & P1[b3] & the carrier of b3 in F1()) &
         (for b3, b4 being Element of the carrier of b1
         for b5 being Function-like quasi_total monotone Relation of the carrier of latt b3,the carrier of latt b4 holds
               b5 in <^b3,b4^>
            iff
               P2[b3, b4, b5]) &
         (for b3 being reflexive transitive antisymmetric with_suprema with_infima RelStr holds
               b3 is Element of the carrier of b2
            iff
               b3 is strict & P1[b3] & the carrier of b3 in F1()) &
         (for b3, b4 being Element of the carrier of b2
         for b5 being Function-like quasi_total monotone Relation of the carrier of latt b3,the carrier of latt b4 holds
               b5 in <^b3,b4^>
            iff
               P2[b3, b4, b5])
   holds AltCatStr(#the carrier of b1,the Arrows of b1,the Comp of b1#) = AltCatStr(#the carrier of b2,the Arrows of b2,the Comp of b2#)


:: YELLOW21:sch 6
scheme YELLOW21:sch 6
{F1 -> non empty transitive associative with_units lattice-wise AltCatStr,
  F2 -> non empty transitive associative with_units lattice-wise AltCatStr,
  F3 -> reflexive transitive antisymmetric with_suprema with_infima RelStr,
  F4 -> Relation-like Function-like set}:
ex b1 being strict covariant Functor of F1(),F2() st
   (for b2 being Element of the carrier of F1() holds
       b1 . b2 = F3(latt b2)) &
    (for b2, b3 being Element of the carrier of F1()
       st <^b2,b3^> <> {}
    for b4 being Element of <^b2,b3^> holds
       b1 . b4 = F4(latt b2, latt b3, @ b4))
provided
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
         b3 in (the Arrows of F1()) .(b1,b2)
      iff
         b1 in the carrier of F1() & b2 in the carrier of F1() & P1[b1, b2, b3]
and
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
         b3 in (the Arrows of F2()) .(b1,b2)
      iff
         b1 in the carrier of F2() & b2 in the carrier of F2() & P2[b1, b2, b3]
and
   for b1 being reflexive transitive antisymmetric with_suprema with_infima RelStr
         st b1 in the carrier of F1()
      holds F3(b1) in the carrier of F2()
and
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
         st P1[b1, b2, b3]
      holds F4(b1, b2, b3) is Function-like quasi_total Relation of the carrier of F3(b1),the carrier of F3(b2) &
       P2[F3(b1), F3(b2), F4(b1, b2, b3)]
and
   for b1 being reflexive transitive antisymmetric with_suprema with_infima RelStr
         st b1 in the carrier of F1()
      holds F4(b1, b1, id b1) = id F3(b1)
and
   for b1, b2, b3 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
   for b5 being Function-like quasi_total Relation of the carrier of b2,the carrier of b3
         st P1[b1, b2, b4] & P1[b2, b3, b5]
      holds F4(b1, b3, b5 * b4) = F4(b1, b2, b4) * F4(b2, b3, b5);


:: YELLOW21:sch 7
scheme YELLOW21:sch 7
{F1 -> non empty transitive associative with_units lattice-wise AltCatStr,
  F2 -> non empty transitive associative with_units lattice-wise AltCatStr,
  F3 -> reflexive transitive antisymmetric with_suprema with_infima RelStr,
  F4 -> Relation-like Function-like set}:
ex b1 being strict contravariant Functor of F1(),F2() st
   (for b2 being Element of the carrier of F1() holds
       b1 . b2 = F3(latt b2)) &
    (for b2, b3 being Element of the carrier of F1()
       st <^b2,b3^> <> {}
    for b4 being Element of <^b2,b3^> holds
       b1 . b4 = F4(latt b2, latt b3, @ b4))
provided
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
         b3 in (the Arrows of F1()) .(b1,b2)
      iff
         b1 in the carrier of F1() & b2 in the carrier of F1() & P1[b1, b2, b3]
and
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
         b3 in (the Arrows of F2()) .(b1,b2)
      iff
         b1 in the carrier of F2() & b2 in the carrier of F2() & P2[b1, b2, b3]
and
   for b1 being reflexive transitive antisymmetric with_suprema with_infima RelStr
         st b1 in the carrier of F1()
      holds F3(b1) in the carrier of F2()
and
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
         st P1[b1, b2, b3]
      holds F4(b1, b2, b3) is Function-like quasi_total Relation of the carrier of F3(b2),the carrier of F3(b1) &
       P2[F3(b2), F3(b1), F4(b1, b2, b3)]
and
   for b1 being reflexive transitive antisymmetric with_suprema with_infima RelStr
         st b1 in the carrier of F1()
      holds F4(b1, b1, id b1) = id F3(b1)
and
   for b1, b2, b3 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
   for b5 being Function-like quasi_total Relation of the carrier of b2,the carrier of b3
         st P1[b1, b2, b4] & P1[b2, b3, b5]
      holds F4(b1, b3, b5 * b4) = F4(b2, b3, b5) * F4(b1, b2, b4);


:: YELLOW21:sch 8
scheme YELLOW21:sch 8
{F1 -> non empty transitive associative with_units lattice-wise AltCatStr,
  F2 -> non empty transitive associative with_units lattice-wise AltCatStr,
  F3 -> reflexive transitive antisymmetric with_suprema with_infima RelStr,
  F4 -> Relation-like Function-like set}:
F1(),F2() are_isomorphic
provided
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
         b3 in (the Arrows of F1()) .(b1,b2)
      iff
         b1 in the carrier of F1() & b2 in the carrier of F1() & P1[b1, b2, b3]
and
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
         b3 in (the Arrows of F2()) .(b1,b2)
      iff
         b1 in the carrier of F2() & b2 in the carrier of F2() & P2[b1, b2, b3]
and
   ex b1 being covariant Functor of F1(),F2() st
      (for b2 being Element of the carrier of F1() holds
          b1 . b2 = F3(b2)) &
       (for b2, b3 being Element of the carrier of F1()
          st <^b2,b3^> <> {}
       for b4 being Element of <^b2,b3^> holds
          b1 . b4 = F4(b2, b3, b4))
and
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
         st b1 in the carrier of F1() & b2 in the carrier of F1() & F3(b1) = F3(b2)
      holds b1 = b2
and
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b3, b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
         st P1[b1, b2, b3] & P1[b1, b2, b4] & F4(b1, b2, b3) = F4(b1, b2, b4)
      holds b3 = b4
and
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
         st P2[b1, b2, b3]
      holds ex b4, b5 being reflexive transitive antisymmetric with_suprema with_infima RelStr st
         ex b6 being Function-like quasi_total Relation of the carrier of b4,the carrier of b5 st
            b4 in the carrier of F1() & b5 in the carrier of F1() & P1[b4, b5, b6] & b1 = F3(b4) & b2 = F3(b5) & b3 = F4(b4, b5, b6);


:: YELLOW21:sch 9
scheme YELLOW21:sch 9
{F1 -> non empty transitive associative with_units lattice-wise AltCatStr,
  F2 -> non empty transitive associative with_units lattice-wise AltCatStr,
  F3 -> reflexive transitive antisymmetric with_suprema with_infima RelStr,
  F4 -> Relation-like Function-like set}:
F1(),F2() are_anti-isomorphic
provided
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
         b3 in (the Arrows of F1()) .(b1,b2)
      iff
         b1 in the carrier of F1() & b2 in the carrier of F1() & P1[b1, b2, b3]
and
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
         b3 in (the Arrows of F2()) .(b1,b2)
      iff
         b1 in the carrier of F2() & b2 in the carrier of F2() & P2[b1, b2, b3]
and
   ex b1 being contravariant Functor of F1(),F2() st
      (for b2 being Element of the carrier of F1() holds
          b1 . b2 = F3(b2)) &
       (for b2, b3 being Element of the carrier of F1()
          st <^b2,b3^> <> {}
       for b4 being Element of <^b2,b3^> holds
          b1 . b4 = F4(b2, b3, b4))
and
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
         st b1 in the carrier of F1() & b2 in the carrier of F1() & F3(b1) = F3(b2)
      holds b1 = b2
and
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b3, b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
         st F4(b1, b2, b3) = F4(b1, b2, b4)
      holds b3 = b4
and
   for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
   for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
         st P2[b1, b2, b3]
      holds ex b4, b5 being reflexive transitive antisymmetric with_suprema with_infima RelStr st
         ex b6 being Function-like quasi_total Relation of the carrier of b4,the carrier of b5 st
            b4 in the carrier of F1() & b5 in the carrier of F1() & P1[b4, b5, b6] & b2 = F3(b4) & b1 = F3(b5) & b3 = F4(b4, b5, b6);


:: YELLOW21:attrnot 4 => YELLOW21:attr 4
definition
  let a1 be non empty transitive associative with_units lattice-wise AltCatStr;
  attr a1 is with_all_isomorphisms means
    for b1, b2 being Element of the carrier of a1
    for b3 being Function-like quasi_total Relation of the carrier of latt b1,the carrier of latt b2
          st b3 is isomorphic(latt b1, latt b2)
       holds b3 in <^b1,b2^>;
end;

:: YELLOW21:dfs 8
definiens
  let a1 be non empty transitive associative with_units lattice-wise AltCatStr;
To prove
     a1 is with_all_isomorphisms
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1
    for b3 being Function-like quasi_total Relation of the carrier of latt b1,the carrier of latt b2
          st b3 is isomorphic(latt b1, latt b2)
       holds b3 in <^b1,b2^>;

:: YELLOW21:def 8
theorem
for b1 being non empty transitive associative with_units lattice-wise AltCatStr holds
      b1 is with_all_isomorphisms
   iff
      for b2, b3 being Element of the carrier of b1
      for b4 being Function-like quasi_total Relation of the carrier of latt b2,the carrier of latt b3
            st b4 is isomorphic(latt b2, latt b3)
         holds b4 in <^b2,b3^>;

:: YELLOW21:exreg 2
registration
  cluster non empty transitive strict semi-functional associative with_units reflexive para-functional set-id-inheriting concrete carrier-underlaid lattice-wise with_all_isomorphisms AltCatStr;
end;

:: YELLOW21:th 4
theorem
for b1 being non empty transitive associative with_units lattice-wise with_all_isomorphisms AltCatStr
for b2, b3 being Element of the carrier of b1
for b4 being Element of <^b2,b3^>
      st @ b4 is isomorphic(latt b2, latt b3)
   holds b4 is iso(b1, b2, b3);

:: YELLOW21:th 5
theorem
for b1 being non empty transitive associative with_units lattice-wise AltCatStr
for b2, b3 being Element of the carrier of b1
   st <^b2,b3^> <> {} & <^b3,b2^> <> {}
for b4 being Element of <^b2,b3^>
      st b4 is iso(b1, b2, b3)
   holds @ b4 is isomorphic(latt b2, latt b3);

:: YELLOW21:sch 10
scheme YELLOW21:sch 10
{F1 -> non empty transitive associative with_units lattice-wise AltCatStr,
  F2 -> non empty transitive associative with_units lattice-wise AltCatStr,
  F3 -> reflexive transitive antisymmetric with_suprema with_infima RelStr,
  F4 -> reflexive transitive antisymmetric with_suprema with_infima RelStr,
  F5 -> Relation-like Function-like set,
  F6 -> Relation-like Function-like set,
  F7 -> Relation-like Function-like set,
  F8 -> Relation-like Function-like set}:
F1(),F2() are_equivalent
provided
   for b1, b2 being Element of the carrier of F1()
   for b3 being Function-like quasi_total monotone Relation of the carrier of latt b1,the carrier of latt b2 holds
         b3 in <^b1,b2^>
      iff
         P1[latt b1, latt b2, b3]
and
   for b1, b2 being Element of the carrier of F2()
   for b3 being Function-like quasi_total monotone Relation of the carrier of latt b1,the carrier of latt b2 holds
         b3 in <^b1,b2^>
      iff
         P2[latt b1, latt b2, b3]
and
   ex b1 being covariant Functor of F1(),F2() st
      (for b2 being Element of the carrier of F1() holds
          b1 . b2 = F3(b2)) &
       (for b2, b3 being Element of the carrier of F1()
          st <^b2,b3^> <> {}
       for b4 being Element of <^b2,b3^> holds
          b1 . b4 = F5(b2, b3, b4))
and
   ex b1 being covariant Functor of F2(),F1() st
      (for b2 being Element of the carrier of F2() holds
          b1 . b2 = F4(b2)) &
       (for b2, b3 being Element of the carrier of F2()
          st <^b2,b3^> <> {}
       for b4 being Element of <^b2,b3^> holds
          b1 . b4 = F6(b2, b3, b4))
and
   for b1 being reflexive transitive antisymmetric with_suprema with_infima RelStr
         st b1 in the carrier of F1()
      holds ex b2 being Function-like quasi_total monotone Relation of the carrier of F4(F3(b1)),the carrier of b1 st
         b2 = F7(b1) & b2 is isomorphic(F4(F3(b1)), b1) & P1[F4(F3(b1)), b1, b2] & P1[b1, F4(F3(b1)), b2 "]
and
   for b1 being reflexive transitive antisymmetric with_suprema with_infima RelStr
         st b1 in the carrier of F2()
      holds ex b2 being Function-like quasi_total monotone Relation of the carrier of b1,the carrier of F3(F4(b1)) st
         b2 = F8(b1) & b2 is isomorphic(b1, F3(F4(b1))) & P2[b1, F3(F4(b1)), b2] & P2[F3(F4(b1)), b1, b2 "]
and
   for b1, b2 being Element of the carrier of F1()
      st <^b1,b2^> <> {}
   for b3 being Element of <^b1,b2^> holds
      F6(F3(b1), F3(b2), F5(b1, b2, b3)) * F7(b2) = F7(b1) * @ b3
and
   for b1, b2 being Element of the carrier of F2()
      st <^b1,b2^> <> {}
   for b3 being Element of <^b1,b2^> holds
      F8(b1) * F5(F4(b1), F4(b2), F6(b1, b2, b3)) = (@ b3) * F8(b2);


:: YELLOW21:attrnot 5 => YELLOW21:attr 5
definition
  let a1 be Relation-like set;
  attr a1 is upper-bounded means
    ex b1 being set st
       for b2 being set
             st b2 in field a1
          holds [b2,b1] in a1;
end;

:: YELLOW21:dfs 9
definiens
  let a1 be Relation-like set;
To prove
     a1 is upper-bounded
it is sufficient to prove
  thus ex b1 being set st
       for b2 being set
             st b2 in field a1
          holds [b2,b1] in a1;

:: YELLOW21:def 9
theorem
for b1 being Relation-like set holds
      b1 is upper-bounded
   iff
      ex b2 being set st
         for b3 being set
               st b3 in field b1
            holds [b3,b2] in b1;

:: YELLOW21:condreg 3
registration
  cluster Relation-like well-ordering -> well_founded reflexive antisymmetric connected transitive (set);
end;

:: YELLOW21:exreg 3
registration
  cluster Relation-like well-ordering set;
end;

:: YELLOW21:th 6
theorem
for b1, b2 being set
for b3 being Relation-like Function-like one-to-one set
for b4 being Relation-like set holds
      [b1,b2] in (b3 * b4) * (b3 ")
   iff
      b1 in proj1 b3 & b2 in proj1 b3 & [b3 . b1,b3 . b2] in b4;

:: YELLOW21:funcreg 3
registration
  let a1 be Relation-like Function-like one-to-one set;
  let a2 be Relation-like reflexive set;
  cluster (a1 * a2) * (a1 ") -> Relation-like reflexive;
end;

:: YELLOW21:funcreg 4
registration
  let a1 be Relation-like Function-like one-to-one set;
  let a2 be Relation-like antisymmetric set;
  cluster (a1 * a2) * (a1 ") -> Relation-like antisymmetric;
end;

:: YELLOW21:funcreg 5
registration
  let a1 be Relation-like Function-like one-to-one set;
  let a2 be Relation-like transitive set;
  cluster (a1 * a2) * (a1 ") -> Relation-like transitive;
end;

:: YELLOW21:th 7
theorem
for b1 being set
for b2 being ordinal set
      st b1,b2 are_equipotent
   holds ex b3 being reflexive antisymmetric transitive total Relation of b1,b1 st
      b3 well_orders b1 & order_type_of b3 = b2;

:: YELLOW21:exreg 4
registration
  let a1 be non empty set;
  cluster Relation-like well-ordering reflexive antisymmetric transitive total upper-bounded Relation of a1,a1;
end;

:: YELLOW21:th 8
theorem
for b1 being non empty reflexive RelStr holds
      b1 is upper-bounded
   iff
      the InternalRel of b1 is upper-bounded;

:: YELLOW21:th 9
theorem
for b1 being non empty reflexive transitive antisymmetric upper-bounded RelStr
      st the InternalRel of b1 is well-ordering
   holds b1 is connected & b1 is complete & b1 is continuous;

:: YELLOW21:th 10
theorem
for b1 being non empty reflexive transitive antisymmetric upper-bounded RelStr
   st the InternalRel of b1 is well-ordering
for b2, b3 being Element of the carrier of b1
      st b3 < b2
   holds ex b4 being Element of the carrier of b1 st
      b4 is compact(b1) & b3 <= b4 & b4 <= b2;

:: YELLOW21:th 11
theorem
for b1 being non empty reflexive transitive antisymmetric upper-bounded RelStr
      st the InternalRel of b1 is well-ordering
   holds b1 is algebraic;

:: YELLOW21:funcreg 6
registration
  let a1 be non empty set;
  let a2 be well-ordering reflexive antisymmetric transitive total upper-bounded Relation of a1,a1;
  cluster RelStr(#a1,a2#) -> strict complete connected continuous algebraic;
end;

:: YELLOW21:condreg 4
registration
  cluster non trivial -> with_non-empty_element (set);
end;

:: YELLOW21:funcnot 8 => YELLOW21:func 6
definition
  let a1 be non empty set;
  assume ex b1 being Element of a1 st
       b1 is not empty;
  func A1 -UPS_category -> non empty transitive strict associative with_units lattice-wise AltCatStr means
    (for b1 being reflexive transitive antisymmetric with_suprema with_infima RelStr holds
           b1 is Element of the carrier of it
        iff
           b1 is strict & b1 is complete & the carrier of b1 in a1) &
     (for b1, b2 being Element of the carrier of it
     for b3 being Function-like quasi_total monotone Relation of the carrier of latt b1,the carrier of latt b2 holds
           b3 in <^b1,b2^>
        iff
           b3 is directed-sups-preserving(latt b1, latt b2));
end;

:: YELLOW21:def 10
theorem
for b1 being non empty set
   st ex b2 being Element of b1 st
        b2 is not empty
for b2 being non empty transitive strict associative with_units lattice-wise AltCatStr holds
      b2 = b1 -UPS_category
   iff
      (for b3 being reflexive transitive antisymmetric with_suprema with_infima RelStr holds
             b3 is Element of the carrier of b2
          iff
             b3 is strict & b3 is complete & the carrier of b3 in b1) &
       (for b3, b4 being Element of the carrier of b2
       for b5 being Function-like quasi_total monotone Relation of the carrier of latt b3,the carrier of latt b4 holds
             b5 in <^b3,b4^>
          iff
             b5 is directed-sups-preserving(latt b3, latt b4));

:: YELLOW21:funcreg 7
registration
  let a1 be with_non-empty_element set;
  cluster a1 -UPS_category -> non empty transitive strict associative with_units lattice-wise with_complete_lattices with_all_isomorphisms;
end;

:: YELLOW21:th 12
theorem
for b1 being with_non-empty_element set holds
   the carrier of b1 -UPS_category c= POSETS b1;

:: YELLOW21:th 13
theorem
for b1 being with_non-empty_element set
for b2 being set holds
      b2 is Element of the carrier of b1 -UPS_category
   iff
      b2 is reflexive transitive antisymmetric with_suprema with_infima complete RelStr &
       b2 in POSETS b1;

:: YELLOW21:th 14
theorem
for b1 being with_non-empty_element set
for b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
      st the carrier of b2 in b1
   holds    b2 is Element of the carrier of b1 -UPS_category
   iff
      b2 is strict & b2 is complete;

:: YELLOW21:th 15
theorem
for b1 being with_non-empty_element set
for b2, b3 being Element of the carrier of b1 -UPS_category
for b4 being set holds
      b4 in <^b2,b3^>
   iff
      b4 is Function-like quasi_total directed-sups-preserving Relation of the carrier of latt b2,the carrier of latt b3;

:: YELLOW21:funcreg 8
registration
  let a1 be with_non-empty_element set;
  let a2, a3 be Element of the carrier of a1 -UPS_category;
  cluster <^a2,a3^> -> non empty;
end;

:: YELLOW21:condreg 5
registration
  let a1 be non empty transitive associative with_units set-id-inheriting AltCatStr;
  cluster non empty transitive id-inheriting -> set-id-inheriting (SubCatStr of a1);
end;

:: YELLOW21:condreg 6
registration
  let a1 be non empty transitive associative with_units para-functional AltCatStr;
  cluster non empty transitive id-inheriting -> para-functional (SubCatStr of a1);
end;

:: YELLOW21:condreg 7
registration
  let a1 be non empty transitive semi-functional associative with_units AltCatStr;
  cluster non empty transitive -> semi-functional (SubCatStr of a1);
end;

:: YELLOW21:condreg 8
registration
  let a1 be non empty transitive associative with_units carrier-underlaid AltCatStr;
  cluster non empty transitive id-inheriting -> carrier-underlaid (SubCatStr of a1);
end;

:: YELLOW21:condreg 9
registration
  let a1 be non empty transitive associative with_units lattice-wise AltCatStr;
  cluster non empty transitive id-inheriting -> lattice-wise (SubCatStr of a1);
end;

:: YELLOW21:condreg 10
registration
  let a1 be non empty transitive associative with_units lattice-wise with_all_isomorphisms AltCatStr;
  cluster non empty transitive full id-inheriting -> with_all_isomorphisms (SubCatStr of a1);
end;

:: YELLOW21:condreg 11
registration
  let a1 be non empty transitive associative with_units with_complete_lattices AltCatStr;
  cluster non empty transitive id-inheriting -> with_complete_lattices (SubCatStr of a1);
end;

:: YELLOW21:funcnot 9 => YELLOW21:func 7
definition
  let a1 be with_non-empty_element set;
  func A1 -CONT_category -> non empty transitive strict full id-inheriting SubCatStr of a1 -UPS_category means
    for b1 being Element of the carrier of a1 -UPS_category holds
          b1 is Element of the carrier of it
       iff
          latt b1 is continuous;
end;

:: YELLOW21:def 11
theorem
for b1 being with_non-empty_element set
for b2 being non empty transitive strict full id-inheriting SubCatStr of b1 -UPS_category holds
      b2 = b1 -CONT_category
   iff
      for b3 being Element of the carrier of b1 -UPS_category holds
            b3 is Element of the carrier of b2
         iff
            latt b3 is continuous;

:: YELLOW21:funcnot 10 => YELLOW21:func 8
definition
  let a1 be with_non-empty_element set;
  func A1 -ALG_category -> non empty transitive strict full id-inheriting SubCatStr of a1 -CONT_category means
    for b1 being Element of the carrier of a1 -CONT_category holds
          b1 is Element of the carrier of it
       iff
          latt b1 is algebraic;
end;

:: YELLOW21:def 12
theorem
for b1 being with_non-empty_element set
for b2 being non empty transitive strict full id-inheriting SubCatStr of b1 -CONT_category holds
      b2 = b1 -ALG_category
   iff
      for b3 being Element of the carrier of b1 -CONT_category holds
            b3 is Element of the carrier of b2
         iff
            latt b3 is algebraic;

:: YELLOW21:th 17
theorem
for b1 being with_non-empty_element set
for b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
      st the carrier of b2 in b1
   holds    b2 is Element of the carrier of b1 -CONT_category
   iff
      b2 is strict & b2 is complete & b2 is continuous;

:: YELLOW21:th 18
theorem
for b1 being with_non-empty_element set
for b2 being reflexive transitive antisymmetric with_suprema with_infima RelStr
      st the carrier of b2 in b1
   holds    b2 is Element of the carrier of b1 -ALG_category
   iff
      b2 is strict & b2 is complete & b2 is algebraic;

:: YELLOW21:th 19
theorem
for b1 being with_non-empty_element set
for b2, b3 being Element of the carrier of b1 -CONT_category
for b4 being set holds
      b4 in <^b2,b3^>
   iff
      b4 is Function-like quasi_total directed-sups-preserving Relation of the carrier of latt b2,the carrier of latt b3;

:: YELLOW21:th 20
theorem
for b1 being with_non-empty_element set
for b2, b3 being Element of the carrier of b1 -ALG_category
for b4 being set holds
      b4 in <^b2,b3^>
   iff
      b4 is Function-like quasi_total directed-sups-preserving Relation of the carrier of latt b2,the carrier of latt b3;

:: YELLOW21:funcreg 9
registration
  let a1 be with_non-empty_element set;
  let a2, a3 be Element of the carrier of a1 -CONT_category;
  cluster <^a2,a3^> -> non empty;
end;

:: YELLOW21:funcreg 10
registration
  let a1 be with_non-empty_element set;
  let a2, a3 be Element of the carrier of a1 -ALG_category;
  cluster <^a2,a3^> -> non empty;
end;