Article COHSP_1, MML version 4.99.1005

:: COHSP_1:attrnot 1 => COH_SP:attr 1
definition
  let a1 be set;
  attr a1 is binary_complete means
    for b1 being set
          st for b2, b3 being set
                  st b2 in b1 & b3 in b1
               holds b2 \/ b3 in a1
       holds union b1 in a1;
end;

:: COHSP_1:dfs 1
definiens
  let a1 be set;
To prove
     a1 is binary_complete
it is sufficient to prove
  thus for b1 being set
          st for b2, b3 being set
                  st b2 in b1 & b3 in b1
               holds b2 \/ b3 in a1
       holds union b1 in a1;

:: COHSP_1:def 1
theorem
for b1 being set holds
      b1 is binary_complete
   iff
      for b2 being set
            st for b3, b4 being set
                    st b3 in b2 & b4 in b2
                 holds b3 \/ b4 in b1
         holds union b2 in b1;

:: COHSP_1:exreg 1
registration
  cluster non empty finite subset-closed binary_complete set;
end;

:: COHSP_1:funcnot 1 => COHSP_1:func 1
definition
  let a1 be set;
  func FlatCoh A1 -> set equals
    CohSp id a1;
end;

:: COHSP_1:def 2
theorem
for b1 being set holds
   FlatCoh b1 = CohSp id b1;

:: COHSP_1:funcnot 2 => COHSP_1:func 2
definition
  let a1 be set;
  func Sub_of_Fin A1 -> Element of bool a1 means
    for b1 being set holds
          b1 in it
       iff
          b1 in a1 & b1 is finite;
end;

:: COHSP_1:def 3
theorem
for b1 being set
for b2 being Element of bool b1 holds
      b2 = Sub_of_Fin b1
   iff
      for b3 being set holds
            b3 in b2
         iff
            b3 in b1 & b3 is finite;

:: COHSP_1:th 1
theorem
for b1, b2 being set holds
   b2 in FlatCoh b1
iff
   (b2 <> {} implies ex b3 being set st
      b2 = {b3} & b3 in b1);

:: COHSP_1:th 2
theorem
for b1 being set holds
   union FlatCoh b1 = b1;

:: COHSP_1:th 3
theorem
for b1 being finite subset-closed set holds
   Sub_of_Fin b1 = b1;

:: COHSP_1:funcreg 1
registration
  cluster {{}} -> subset-closed binary_complete;
end;

:: COHSP_1:funcreg 2
registration
  let a1 be set;
  cluster bool a1 -> subset-closed binary_complete;
end;

:: COHSP_1:funcreg 3
registration
  let a1 be set;
  cluster FlatCoh a1 -> non empty subset-closed binary_complete;
end;

:: COHSP_1:funcreg 4
registration
  let a1 be non empty subset-closed set;
  cluster Sub_of_Fin a1 -> non empty subset-closed;
end;

:: COHSP_1:th 4
theorem
Web {{}} = {};

:: COHSP_1:sch 1
scheme COHSP_1:sch 1
{F1 -> set,
  F2 -> set}:
ex b1 being set st
   b1 in F2() &
    P1[b1] &
    (for b2 being set
          st b2 in F2() & P1[b2] & b2 c= b1
       holds b2 = b1)
provided
   F1() in F2()
and
   P1[F1()]
and
   F1() is finite;


:: COHSP_1:exreg 2
registration
  let a1 be non empty subset-closed binary_complete set;
  cluster finite Element of a1;
end;

:: COHSP_1:attrnot 2 => COHSP_1:attr 1
definition
  let a1 be set;
  attr a1 is c=directed means
    for b1 being finite Element of bool a1 holds
       ex b2 being set st
          union b1 c= b2 & b2 in a1;
end;

:: COHSP_1:dfs 4
definiens
  let a1 be set;
To prove
     a1 is c=directed
it is sufficient to prove
  thus for b1 being finite Element of bool a1 holds
       ex b2 being set st
          union b1 c= b2 & b2 in a1;

:: COHSP_1:def 4
theorem
for b1 being set holds
      b1 is c=directed
   iff
      for b2 being finite Element of bool b1 holds
         ex b3 being set st
            union b2 c= b3 & b3 in b1;

:: COHSP_1:attrnot 3 => COHSP_1:attr 2
definition
  let a1 be set;
  attr a1 is c=filtered means
    for b1 being finite Element of bool a1 holds
       ex b2 being set st
          (for b3 being set
                 st b3 in b1
              holds b2 c= b3) &
           b2 in a1;
end;

:: COHSP_1:dfs 5
definiens
  let a1 be set;
To prove
     a1 is c=filtered
it is sufficient to prove
  thus for b1 being finite Element of bool a1 holds
       ex b2 being set st
          (for b3 being set
                 st b3 in b1
              holds b2 c= b3) &
           b2 in a1;

:: COHSP_1:def 5
theorem
for b1 being set holds
      b1 is c=filtered
   iff
      for b2 being finite Element of bool b1 holds
         ex b3 being set st
            (for b4 being set
                   st b4 in b2
                holds b3 c= b4) &
             b3 in b1;

:: COHSP_1:condreg 1
registration
  cluster c=directed -> non empty (set);
end;

:: COHSP_1:condreg 2
registration
  cluster c=filtered -> non empty (set);
end;

:: COHSP_1:th 5
theorem
for b1 being set
   st b1 is c=directed
for b2, b3 being set
      st b2 in b1 & b3 in b1
   holds ex b4 being set st
      b2 \/ b3 c= b4 & b4 in b1;

:: COHSP_1:th 6
theorem
for b1 being non empty set
      st for b2, b3 being set
              st b2 in b1 & b3 in b1
           holds ex b4 being set st
              b2 \/ b3 c= b4 & b4 in b1
   holds b1 is c=directed;

:: COHSP_1:th 7
theorem
for b1 being set
   st b1 is c=filtered
for b2, b3 being set
      st b2 in b1 & b3 in b1
   holds ex b4 being set st
      b4 c= b2 /\ b3 & b4 in b1;

:: COHSP_1:th 8
theorem
for b1 being non empty set
      st for b2, b3 being set
              st b2 in b1 & b3 in b1
           holds ex b4 being set st
              b4 c= b2 /\ b3 & b4 in b1
   holds b1 is c=filtered;

:: COHSP_1:th 9
theorem
for b1 being set holds
   {b1} is c=directed & {b1} is c=filtered;

:: COHSP_1:th 10
theorem
for b1, b2 being set holds
{b1,b2,b1 \/ b2} is c=directed;

:: COHSP_1:th 11
theorem
for b1, b2 being set holds
{b1,b2,b1 /\ b2} is c=filtered;

:: COHSP_1:exreg 3
registration
  cluster finite c=directed c=filtered set;
end;

:: COHSP_1:exreg 4
registration
  let a1 be non empty set;
  cluster finite c=directed c=filtered Element of bool a1;
end;

:: COHSP_1:th 12
theorem
for b1 being set holds
   Fin b1 is c=directed & Fin b1 is c=filtered;

:: COHSP_1:funcreg 5
registration
  let a1 be set;
  cluster Fin a1 -> preBoolean c=directed c=filtered;
end;

:: COHSP_1:exreg 5
registration
  let a1 be non empty subset-closed set;
  cluster non empty preBoolean Element of bool a1;
end;

:: COHSP_1:funcnot 3 => COHSP_1:func 3
definition
  let a1 be non empty subset-closed set;
  let a2 be Element of a1;
  redefine func Fin a2 -> non empty preBoolean Element of bool a1;
end;

:: COHSP_1:th 13
theorem
for b1 being non empty set
for b2 being set
      st b1 is c=directed & b2 c= union b1 & b2 is finite
   holds ex b3 being set st
      b3 in b1 & b2 c= b3;

:: COHSP_1:attrnot 4 => FINSUB_1:attr 2
notation
  let a1 be set;
  synonym multiplicative for cap-closed;
end;

:: COHSP_1:attrnot 5 => COHSP_1:attr 3
definition
  let a1 be set;
  attr a1 is d.union-closed means
    for b1 being Element of bool a1
          st b1 is c=directed
       holds union b1 in a1;
end;

:: COHSP_1:dfs 6
definiens
  let a1 be set;
To prove
     a1 is d.union-closed
it is sufficient to prove
  thus for b1 being Element of bool a1
          st b1 is c=directed
       holds union b1 in a1;

:: COHSP_1:def 7
theorem
for b1 being set holds
      b1 is d.union-closed
   iff
      for b2 being Element of bool b1
            st b2 is c=directed
         holds union b2 in b1;

:: COHSP_1:condreg 3
registration
  cluster subset-closed -> cap-closed (set);
end;

:: COHSP_1:th 15
theorem
for b1 being non empty subset-closed binary_complete set
for b2 being c=directed Element of bool b1 holds
   union b2 in b1;

:: COHSP_1:condreg 4
registration
  cluster non empty subset-closed binary_complete -> d.union-closed (set);
end;

:: COHSP_1:exreg 6
registration
  cluster non empty cap-closed subset-closed binary_complete d.union-closed set;
end;

:: COHSP_1:funcnot 4 => COHSP_1:func 4
definition
  let a1 be non empty d.union-closed set;
  let a2 be c=directed Element of bool a1;
  redefine func union a2 -> Element of a1;
end;

:: COHSP_1:prednot 1 => COHSP_1:pred 1
definition
  let a1, a2 be set;
  pred A1 includes_lattice_of A2 means
    for b1, b2 being set
          st b1 in a2 & b2 in a2
       holds b1 /\ b2 in a1 & b1 \/ b2 in a1;
end;

:: COHSP_1:dfs 7
definiens
  let a1, a2 be set;
To prove
     a1 includes_lattice_of a2
it is sufficient to prove
  thus for b1, b2 being set
          st b1 in a2 & b2 in a2
       holds b1 /\ b2 in a1 & b1 \/ b2 in a1;

:: COHSP_1:def 8
theorem
for b1, b2 being set holds
   b1 includes_lattice_of b2
iff
   for b3, b4 being set
         st b3 in b2 & b4 in b2
      holds b3 /\ b4 in b1 & b3 \/ b4 in b1;

:: COHSP_1:th 16
theorem
for b1 being non empty set
      st b1 includes_lattice_of b1
   holds b1 is c=directed & b1 is c=filtered;

:: COHSP_1:prednot 2 => COHSP_1:pred 2
definition
  let a1, a2, a3 be set;
  pred A1 includes_lattice_of A2,A3 means
    a1 includes_lattice_of {a2,a3};
end;

:: COHSP_1:dfs 8
definiens
  let a1, a2, a3 be set;
To prove
     a1 includes_lattice_of a2,a3
it is sufficient to prove
  thus a1 includes_lattice_of {a2,a3};

:: COHSP_1:def 9
theorem
for b1, b2, b3 being set holds
   b1 includes_lattice_of b2,b3
iff
   b1 includes_lattice_of {b2,b3};

:: COHSP_1:th 17
theorem
for b1, b2, b3 being set holds
   b1 includes_lattice_of b2,b3
iff
   b2 in b1 & b3 in b1 & b2 /\ b3 in b1 & b2 \/ b3 in b1;

:: COHSP_1:attrnot 6 => COHSP_1:attr 4
definition
  let a1 be Relation-like Function-like set;
  attr a1 is union-distributive means
    for b1 being Element of bool proj1 a1
          st union b1 in proj1 a1
       holds a1 . union b1 = union (a1 .: b1);
end;

:: COHSP_1:dfs 9
definiens
  let a1 be Relation-like Function-like set;
To prove
     a1 is union-distributive
it is sufficient to prove
  thus for b1 being Element of bool proj1 a1
          st union b1 in proj1 a1
       holds a1 . union b1 = union (a1 .: b1);

:: COHSP_1:def 10
theorem
for b1 being Relation-like Function-like set holds
      b1 is union-distributive
   iff
      for b2 being Element of bool proj1 b1
            st union b2 in proj1 b1
         holds b1 . union b2 = union (b1 .: b2);

:: COHSP_1:attrnot 7 => COHSP_1:attr 5
definition
  let a1 be Relation-like Function-like set;
  attr a1 is d.union-distributive means
    for b1 being Element of bool proj1 a1
          st b1 is c=directed & union b1 in proj1 a1
       holds a1 . union b1 = union (a1 .: b1);
end;

:: COHSP_1:dfs 10
definiens
  let a1 be Relation-like Function-like set;
To prove
     a1 is d.union-distributive
it is sufficient to prove
  thus for b1 being Element of bool proj1 a1
          st b1 is c=directed & union b1 in proj1 a1
       holds a1 . union b1 = union (a1 .: b1);

:: COHSP_1:def 11
theorem
for b1 being Relation-like Function-like set holds
      b1 is d.union-distributive
   iff
      for b2 being Element of bool proj1 b1
            st b2 is c=directed & union b2 in proj1 b1
         holds b1 . union b2 = union (b1 .: b2);

:: COHSP_1:attrnot 8 => COHSP_1:attr 6
definition
  let a1 be Relation-like Function-like set;
  attr a1 is c=-monotone means
    for b1, b2 being set
          st b1 in proj1 a1 & b2 in proj1 a1 & b1 c= b2
       holds a1 . b1 c= a1 . b2;
end;

:: COHSP_1:dfs 11
definiens
  let a1 be Relation-like Function-like set;
To prove
     a1 is c=-monotone
it is sufficient to prove
  thus for b1, b2 being set
          st b1 in proj1 a1 & b2 in proj1 a1 & b1 c= b2
       holds a1 . b1 c= a1 . b2;

:: COHSP_1:def 12
theorem
for b1 being Relation-like Function-like set holds
      b1 is c=-monotone
   iff
      for b2, b3 being set
            st b2 in proj1 b1 & b3 in proj1 b1 & b2 c= b3
         holds b1 . b2 c= b1 . b3;

:: COHSP_1:attrnot 9 => COHSP_1:attr 7
definition
  let a1 be Relation-like Function-like set;
  attr a1 is cap-distributive means
    for b1, b2 being set
          st proj1 a1 includes_lattice_of b1,b2
       holds a1 . (b1 /\ b2) = (a1 . b1) /\ (a1 . b2);
end;

:: COHSP_1:dfs 12
definiens
  let a1 be Relation-like Function-like set;
To prove
     a1 is cap-distributive
it is sufficient to prove
  thus for b1, b2 being set
          st proj1 a1 includes_lattice_of b1,b2
       holds a1 . (b1 /\ b2) = (a1 . b1) /\ (a1 . b2);

:: COHSP_1:def 13
theorem
for b1 being Relation-like Function-like set holds
      b1 is cap-distributive
   iff
      for b2, b3 being set
            st proj1 b1 includes_lattice_of b2,b3
         holds b1 . (b2 /\ b3) = (b1 . b2) /\ (b1 . b3);

:: COHSP_1:condreg 5
registration
  cluster Relation-like Function-like d.union-distributive -> c=-monotone (set);
end;

:: COHSP_1:condreg 6
registration
  cluster Relation-like Function-like union-distributive -> d.union-distributive (set);
end;

:: COHSP_1:th 18
theorem
for b1 being Relation-like Function-like set
   st b1 is union-distributive
for b2, b3 being set
      st b2 in proj1 b1 & b3 in proj1 b1 & b2 \/ b3 in proj1 b1
   holds b1 . (b2 \/ b3) = (b1 . b2) \/ (b1 . b3);

:: COHSP_1:th 19
theorem
for b1 being Relation-like Function-like set
      st b1 is union-distributive
   holds b1 . {} = {};

:: COHSP_1:exreg 7
registration
  let a1, a2 be non empty subset-closed binary_complete set;
  cluster Relation-like Function-like quasi_total union-distributive cap-distributive Relation of a1,a2;
end;

:: COHSP_1:exreg 8
registration
  let a1 be non empty subset-closed binary_complete set;
  cluster Relation-like Function-like union-distributive cap-distributive ManySortedSet of a1;
end;

:: COHSP_1:attrnot 10 => COHSP_1:attr 8
definition
  let a1 be Relation-like Function-like set;
  attr a1 is U-continuous means
    proj1 a1 is d.union-closed & a1 is d.union-distributive;
end;

:: COHSP_1:dfs 13
definiens
  let a1 be Relation-like Function-like set;
To prove
     a1 is U-continuous
it is sufficient to prove
  thus proj1 a1 is d.union-closed & a1 is d.union-distributive;

:: COHSP_1:def 14
theorem
for b1 being Relation-like Function-like set holds
      b1 is U-continuous
   iff
      proj1 b1 is d.union-closed & b1 is d.union-distributive;

:: COHSP_1:attrnot 11 => COHSP_1:attr 9
definition
  let a1 be Relation-like Function-like set;
  attr a1 is U-stable means
    proj1 a1 is cap-closed & a1 is U-continuous & a1 is cap-distributive;
end;

:: COHSP_1:dfs 14
definiens
  let a1 be Relation-like Function-like set;
To prove
     a1 is U-stable
it is sufficient to prove
  thus proj1 a1 is cap-closed & a1 is U-continuous & a1 is cap-distributive;

:: COHSP_1:def 15
theorem
for b1 being Relation-like Function-like set holds
      b1 is U-stable
   iff
      proj1 b1 is cap-closed & b1 is U-continuous & b1 is cap-distributive;

:: COHSP_1:attrnot 12 => COHSP_1:attr 10
definition
  let a1 be Relation-like Function-like set;
  attr a1 is U-linear means
    a1 is U-stable & a1 is union-distributive;
end;

:: COHSP_1:dfs 15
definiens
  let a1 be Relation-like Function-like set;
To prove
     a1 is U-linear
it is sufficient to prove
  thus a1 is U-stable & a1 is union-distributive;

:: COHSP_1:def 16
theorem
for b1 being Relation-like Function-like set holds
      b1 is U-linear
   iff
      b1 is U-stable & b1 is union-distributive;

:: COHSP_1:condreg 7
registration
  cluster Relation-like Function-like U-continuous -> d.union-distributive (set);
end;

:: COHSP_1:condreg 8
registration
  cluster Relation-like Function-like U-stable -> cap-distributive U-continuous (set);
end;

:: COHSP_1:condreg 9
registration
  cluster Relation-like Function-like U-linear -> union-distributive U-stable (set);
end;

:: COHSP_1:condreg 10
registration
  let a1 be d.union-closed set;
  cluster d.union-distributive -> U-continuous (ManySortedSet of a1);
end;

:: COHSP_1:condreg 11
registration
  let a1 be cap-closed set;
  cluster cap-distributive U-continuous -> U-stable (ManySortedSet of a1);
end;

:: COHSP_1:condreg 12
registration
  cluster Relation-like Function-like union-distributive U-stable -> U-linear (set);
end;

:: COHSP_1:exreg 9
registration
  cluster Relation-like Function-like U-linear set;
end;

:: COHSP_1:exreg 10
registration
  let a1 be non empty subset-closed binary_complete set;
  cluster Relation-like Function-like U-linear ManySortedSet of a1;
end;

:: COHSP_1:exreg 11
registration
  let a1, a2 be non empty subset-closed binary_complete set;
  cluster Relation-like Function-like quasi_total U-linear Relation of a2,a1;
end;

:: COHSP_1:funcreg 6
registration
  let a1 be Relation-like Function-like U-continuous set;
  cluster proj1 a1 -> d.union-closed;
end;

:: COHSP_1:funcreg 7
registration
  let a1 be Relation-like Function-like U-stable set;
  cluster proj1 a1 -> cap-closed;
end;

:: COHSP_1:th 20
theorem
for b1 being set holds
   union Fin b1 = b1;

:: COHSP_1:th 21
theorem
for b1 being Relation-like Function-like U-continuous set
   st proj1 b1 is subset-closed
for b2 being set
      st b2 in proj1 b1
   holds b1 . b2 = union (b1 .: Fin b2);

:: COHSP_1:th 22
theorem
for b1 being Relation-like Function-like set
      st proj1 b1 is subset-closed
   holds    b1 is U-continuous
   iff
      proj1 b1 is d.union-closed &
       b1 is c=-monotone &
       (for b2, b3 being set
             st b2 in proj1 b1 & b3 in b1 . b2
          holds ex b4 being set st
             b4 is finite & b4 c= b2 & b3 in b1 . b4);

:: COHSP_1:th 23
theorem
for b1 being Relation-like Function-like set
      st proj1 b1 is subset-closed & proj1 b1 is d.union-closed
   holds    b1 is U-stable
   iff
      b1 is c=-monotone &
       (for b2, b3 being set
             st b2 in proj1 b1 & b3 in b1 . b2
          holds ex b4 being set st
             b4 is finite &
              b4 c= b2 &
              b3 in b1 . b4 &
              (for b5 being set
                    st b5 c= b2 & b3 in b1 . b5
                 holds b4 c= b5));

:: COHSP_1:th 24
theorem
for b1 being Relation-like Function-like set
      st proj1 b1 is subset-closed & proj1 b1 is d.union-closed
   holds    b1 is U-linear
   iff
      b1 is c=-monotone &
       (for b2, b3 being set
             st b2 in proj1 b1 & b3 in b1 . b2
          holds ex b4 being set st
             b4 in b2 &
              b3 in b1 . {b4} &
              (for b5 being set
                    st b5 c= b2 & b3 in b1 . b5
                 holds b4 in b5));

:: COHSP_1:funcnot 5 => COHSP_1:func 5
definition
  let a1 be Relation-like Function-like set;
  func graph A1 -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2 being finite set st
             ex b3 being set st
                b1 = [b2,b3] & b2 in proj1 a1 & b3 in a1 . b2;
end;

:: COHSP_1:def 17
theorem
for b1 being Relation-like Function-like set
for b2 being set holds
      b2 = graph b1
   iff
      for b3 being set holds
            b3 in b2
         iff
            ex b4 being finite set st
               ex b5 being set st
                  b3 = [b4,b5] & b4 in proj1 b1 & b5 in b1 . b4;

:: COHSP_1:funcnot 6 => COHSP_1:func 6
definition
  let a1, a2 be non empty set;
  let a3 be Function-like quasi_total Relation of a1,a2;
  redefine func graph a3 -> Element of bool [:a1,union a2:];
end;

:: COHSP_1:funcreg 8
registration
  let a1 be Relation-like Function-like set;
  cluster graph a1 -> Relation-like;
end;

:: COHSP_1:th 25
theorem
for b1 being Relation-like Function-like set
for b2, b3 being set holds
   [b2,b3] in graph b1
iff
   b2 is finite & b2 in proj1 b1 & b3 in b1 . b2;

:: COHSP_1:th 26
theorem
for b1 being Relation-like Function-like c=-monotone set
for b2, b3 being set
   st b3 in proj1 b1 & b2 c= b3 & b3 is finite
for b4 being set
      st [b2,b4] in graph b1
   holds [b3,b4] in graph b1;

:: COHSP_1:th 27
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Function-like quasi_total Relation of b1,b2
for b4 being Element of b1
for b5, b6 being set
      st [b4,b5] in graph b3 & [b4,b6] in graph b3
   holds {b5,b6} in b2;

:: COHSP_1:th 28
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Function-like quasi_total c=-monotone Relation of b1,b2
for b4, b5 being Element of b1
   st b4 \/ b5 in b1
for b6, b7 being set
      st [b4,b6] in graph b3 & [b5,b7] in graph b3
   holds {b6,b7} in b2;

:: COHSP_1:th 29
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4 being Function-like quasi_total U-continuous Relation of b1,b2
      st graph b3 = graph b4
   holds b3 = b4;

:: COHSP_1:th 30
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Element of bool [:b1,union b2:]
      st (for b4 being set
               st b4 in b3
            holds b4 `1 is finite) &
         (for b4, b5 being finite Element of b1
            st b4 c= b5
         for b6 being set
               st [b4,b6] in b3
            holds [b5,b6] in b3) &
         (for b4 being finite Element of b1
         for b5, b6 being set
               st [b4,b5] in b3 & [b4,b6] in b3
            holds {b5,b6} in b2)
   holds ex b4 being Function-like quasi_total U-continuous Relation of b1,b2 st
      b3 = graph b4;

:: COHSP_1:th 31
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Function-like quasi_total U-continuous Relation of b1,b2
for b4 being Element of b1 holds
   b3 . b4 = (graph b3) .: Fin b4;

:: COHSP_1:funcnot 7 => COHSP_1:func 7
definition
  let a1 be Relation-like Function-like set;
  func Trace A1 -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2, b3 being set st
             b1 = [b2,b3] &
              b2 in proj1 a1 &
              b3 in a1 . b2 &
              (for b4 being set
                    st b4 in proj1 a1 & b4 c= b2 & b3 in a1 . b4
                 holds b2 = b4);
end;

:: COHSP_1:def 18
theorem
for b1 being Relation-like Function-like set
for b2 being set holds
      b2 = Trace b1
   iff
      for b3 being set holds
            b3 in b2
         iff
            ex b4, b5 being set st
               b3 = [b4,b5] &
                b4 in proj1 b1 &
                b5 in b1 . b4 &
                (for b6 being set
                      st b6 in proj1 b1 & b6 c= b4 & b5 in b1 . b6
                   holds b4 = b6);

:: COHSP_1:th 32
theorem
for b1 being Relation-like Function-like set
for b2, b3 being set holds
   [b2,b3] in Trace b1
iff
   b2 in proj1 b1 &
    b3 in b1 . b2 &
    (for b4 being set
          st b4 in proj1 b1 & b4 c= b2 & b3 in b1 . b4
       holds b2 = b4);

:: COHSP_1:funcnot 8 => COHSP_1:func 8
definition
  let a1, a2 be non empty set;
  let a3 be Function-like quasi_total Relation of a1,a2;
  redefine func Trace a3 -> Element of bool [:a1,union a2:];
end;

:: COHSP_1:funcreg 9
registration
  let a1 be Relation-like Function-like set;
  cluster Trace a1 -> Relation-like;
end;

:: COHSP_1:th 33
theorem
for b1 being Relation-like Function-like U-continuous set
      st proj1 b1 is subset-closed
   holds Trace b1 c= graph b1;

:: COHSP_1:th 34
theorem
for b1 being Relation-like Function-like U-continuous set
   st proj1 b1 is subset-closed
for b2, b3 being set
      st [b2,b3] in Trace b1
   holds b2 is finite;

:: COHSP_1:th 35
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Function-like quasi_total c=-monotone Relation of b1,b2
for b4, b5 being set
   st b4 \/ b5 in b1
for b6, b7 being set
      st [b4,b6] in Trace b3 & [b5,b7] in Trace b3
   holds {b6,b7} in b2;

:: COHSP_1:th 36
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Function-like quasi_total cap-distributive Relation of b1,b2
for b4, b5 being set
   st b4 \/ b5 in b1
for b6 being set
      st [b4,b6] in Trace b3 & [b5,b6] in Trace b3
   holds b4 = b5;

:: COHSP_1:th 37
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4 being Function-like quasi_total U-stable Relation of b1,b2
   st Trace b3 c= Trace b4
for b5 being Element of b1 holds
   b3 . b5 c= b4 . b5;

:: COHSP_1:th 38
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4 being Function-like quasi_total U-stable Relation of b1,b2
      st Trace b3 = Trace b4
   holds b3 = b4;

:: COHSP_1:th 39
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Element of bool [:b1,union b2:]
      st (for b4 being set
               st b4 in b3
            holds b4 `1 is finite) &
         (for b4, b5 being Element of b1
            st b4 \/ b5 in b1
         for b6, b7 being set
               st [b4,b6] in b3 & [b5,b7] in b3
            holds {b6,b7} in b2) &
         (for b4, b5 being Element of b1
            st b4 \/ b5 in b1
         for b6 being set
               st [b4,b6] in b3 & [b5,b6] in b3
            holds b4 = b5)
   holds ex b4 being Function-like quasi_total U-stable Relation of b1,b2 st
      b3 = Trace b4;

:: COHSP_1:th 40
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Function-like quasi_total U-stable Relation of b1,b2
for b4 being Element of b1 holds
   b3 . b4 = (Trace b3) .: Fin b4;

:: COHSP_1:th 41
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Function-like quasi_total U-stable Relation of b1,b2
for b4 being Element of b1
for b5 being set holds
      b5 in b3 . b4
   iff
      ex b6 being Element of b1 st
         [b6,b5] in Trace b3 & b6 c= b4;

:: COHSP_1:th 42
theorem
for b1, b2 being non empty subset-closed binary_complete set holds
ex b3 being Function-like quasi_total U-stable Relation of b1,b2 st
   Trace b3 = {};

:: COHSP_1:th 43
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being finite Element of b1
for b4 being set
      st b4 in union b2
   holds ex b5 being Function-like quasi_total U-stable Relation of b1,b2 st
      Trace b5 = {[b3,b4]};

:: COHSP_1:th 44
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Element of b1
for b4 being set
for b5 being Function-like quasi_total U-stable Relation of b1,b2
   st Trace b5 = {[b3,b4]}
for b6 being Element of b1 holds
   (b3 c= b6 implies b5 . b6 = {b4}) & (b3 c= b6 or b5 . b6 = {});

:: COHSP_1:th 45
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Function-like quasi_total U-stable Relation of b1,b2
for b4 being Element of bool Trace b3 holds
   ex b5 being Function-like quasi_total U-stable Relation of b1,b2 st
      Trace b5 = b4;

:: COHSP_1:th 46
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being set
      st for b4, b5 being set
              st b4 in b3 & b5 in b3
           holds ex b6 being Function-like quasi_total U-stable Relation of b1,b2 st
              b4 \/ b5 = Trace b6
   holds ex b4 being Function-like quasi_total U-stable Relation of b1,b2 st
      union b3 = Trace b4;

:: COHSP_1:funcnot 9 => COHSP_1:func 9
definition
  let a1, a2 be non empty subset-closed binary_complete set;
  func StabCoh(A1,A2) -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2 being Function-like quasi_total U-stable Relation of a1,a2 st
             b1 = Trace b2;
end;

:: COHSP_1:def 19
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being set holds
      b3 = StabCoh(b1,b2)
   iff
      for b4 being set holds
            b4 in b3
         iff
            ex b5 being Function-like quasi_total U-stable Relation of b1,b2 st
               b4 = Trace b5;

:: COHSP_1:funcreg 10
registration
  let a1, a2 be non empty subset-closed binary_complete set;
  cluster StabCoh(a1,a2) -> non empty subset-closed binary_complete;
end;

:: COHSP_1:th 47
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Function-like quasi_total U-stable Relation of b1,b2 holds
   Trace b3 c= [:Sub_of_Fin b1,union b2:];

:: COHSP_1:th 48
theorem
for b1, b2 being non empty subset-closed binary_complete set holds
union StabCoh(b1,b2) = [:Sub_of_Fin b1,union b2:];

:: COHSP_1:th 49
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4 being finite Element of b1
for b5, b6 being set holds
   [[b3,b5],[b4,b6]] in Web StabCoh(b1,b2)
iff
   (not b3 \/ b4 in b1 & b5 in union b2 & b6 in union b2 or [b5,b6] in Web b2 & (b5 = b6 implies b3 = b4));

:: COHSP_1:th 50
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Function-like quasi_total U-stable Relation of b1,b2 holds
      b3 is U-linear
   iff
      for b4, b5 being set
            st [b4,b5] in Trace b3
         holds ex b6 being set st
            b4 = {b6};

:: COHSP_1:funcnot 10 => COHSP_1:func 10
definition
  let a1 be Relation-like Function-like set;
  func LinTrace A1 -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2, b3 being set st
             b1 = [b2,b3] & [{b2},b3] in Trace a1;
end;

:: COHSP_1:def 20
theorem
for b1 being Relation-like Function-like set
for b2 being set holds
      b2 = LinTrace b1
   iff
      for b3 being set holds
            b3 in b2
         iff
            ex b4, b5 being set st
               b3 = [b4,b5] & [{b4},b5] in Trace b1;

:: COHSP_1:th 51
theorem
for b1 being Relation-like Function-like set
for b2, b3 being set holds
   [b2,b3] in LinTrace b1
iff
   [{b2},b3] in Trace b1;

:: COHSP_1:th 52
theorem
for b1 being Relation-like Function-like set
   st b1 . {} = {}
for b2, b3 being set
      st {b2} in proj1 b1 & b3 in b1 . {b2}
   holds [b2,b3] in LinTrace b1;

:: COHSP_1:th 53
theorem
for b1 being Relation-like Function-like set
for b2, b3 being set
      st [b2,b3] in LinTrace b1
   holds {b2} in proj1 b1 & b3 in b1 . {b2};

:: COHSP_1:funcnot 11 => COHSP_1:func 11
definition
  let a1, a2 be non empty set;
  let a3 be Function-like quasi_total Relation of a1,a2;
  redefine func LinTrace a3 -> Element of bool [:union a1,union a2:];
end;

:: COHSP_1:funcreg 11
registration
  let a1 be Relation-like Function-like set;
  cluster LinTrace a1 -> Relation-like;
end;

:: COHSP_1:funcnot 12 => COHSP_1:func 12
definition
  let a1, a2 be non empty subset-closed binary_complete set;
  func LinCoh(A1,A2) -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2 being Function-like quasi_total U-linear Relation of a1,a2 st
             b1 = LinTrace b2;
end;

:: COHSP_1:def 21
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being set holds
      b3 = LinCoh(b1,b2)
   iff
      for b4 being set holds
            b4 in b3
         iff
            ex b5 being Function-like quasi_total U-linear Relation of b1,b2 st
               b4 = LinTrace b5;

:: COHSP_1:th 54
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Function-like quasi_total c=-monotone Relation of b1,b2
for b4, b5 being set
   st {b4,b5} in b1
for b6, b7 being set
      st [b4,b6] in LinTrace b3 & [b5,b7] in LinTrace b3
   holds {b6,b7} in b2;

:: COHSP_1:th 55
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Function-like quasi_total cap-distributive Relation of b1,b2
for b4, b5 being set
   st {b4,b5} in b1
for b6 being set
      st [b4,b6] in LinTrace b3 & [b5,b6] in LinTrace b3
   holds b4 = b5;

:: COHSP_1:th 56
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4 being Function-like quasi_total U-linear Relation of b1,b2
      st LinTrace b3 = LinTrace b4
   holds b3 = b4;

:: COHSP_1:th 57
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Element of bool [:union b1,union b2:]
      st (for b4, b5 being set
            st {b4,b5} in b1
         for b6, b7 being set
               st [b4,b6] in b3 & [b5,b7] in b3
            holds {b6,b7} in b2) &
         (for b4, b5 being set
            st {b4,b5} in b1
         for b6 being set
               st [b4,b6] in b3 & [b5,b6] in b3
            holds b4 = b5)
   holds ex b4 being Function-like quasi_total U-linear Relation of b1,b2 st
      b3 = LinTrace b4;

:: COHSP_1:th 58
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Function-like quasi_total U-linear Relation of b1,b2
for b4 being Element of b1 holds
   b3 . b4 = (LinTrace b3) .: b4;

:: COHSP_1:th 59
theorem
for b1, b2 being non empty subset-closed binary_complete set holds
ex b3 being Function-like quasi_total U-linear Relation of b1,b2 st
   LinTrace b3 = {};

:: COHSP_1:th 60
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4 being set
      st b3 in union b1 & b4 in union b2
   holds ex b5 being Function-like quasi_total U-linear Relation of b1,b2 st
      LinTrace b5 = {[b3,b4]};

:: COHSP_1:th 61
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4 being set
   st b3 in union b1 & b4 in union b2
for b5 being Function-like quasi_total U-linear Relation of b1,b2
   st LinTrace b5 = {[b3,b4]}
for b6 being Element of b1 holds
   (b3 in b6 implies b5 . b6 = {b4}) & (b3 in b6 or b5 . b6 = {});

:: COHSP_1:th 62
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Function-like quasi_total U-linear Relation of b1,b2
for b4 being Element of bool LinTrace b3 holds
   ex b5 being Function-like quasi_total U-linear Relation of b1,b2 st
      LinTrace b5 = b4;

:: COHSP_1:th 63
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being set
      st for b4, b5 being set
              st b4 in b3 & b5 in b3
           holds ex b6 being Function-like quasi_total U-linear Relation of b1,b2 st
              b4 \/ b5 = LinTrace b6
   holds ex b4 being Function-like quasi_total U-linear Relation of b1,b2 st
      union b3 = LinTrace b4;

:: COHSP_1:funcreg 12
registration
  let a1, a2 be non empty subset-closed binary_complete set;
  cluster LinCoh(a1,a2) -> non empty subset-closed binary_complete;
end;

:: COHSP_1:th 64
theorem
for b1, b2 being non empty subset-closed binary_complete set holds
union LinCoh(b1,b2) = [:union b1,union b2:];

:: COHSP_1:th 65
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4, b5, b6 being set holds
   [[b3,b5],[b4,b6]] in Web LinCoh(b1,b2)
iff
   b3 in union b1 &
    b4 in union b1 &
    (not [b3,b4] in Web b1 & b5 in union b2 & b6 in union b2 or [b5,b6] in Web b2 & (b5 = b6 implies b3 = b4));

:: COHSP_1:funcnot 13 => COHSP_1:func 13
definition
  let a1 be non empty subset-closed binary_complete set;
  func 'not' A1 -> set equals
    {b1 where b1 is Element of bool union a1: for b2 being Element of a1 holds
       ex b3 being set st
          b1 /\ b2 c= {b3}};
end;

:: COHSP_1:def 22
theorem
for b1 being non empty subset-closed binary_complete set holds
   'not' b1 = {b2 where b2 is Element of bool union b1: for b3 being Element of b1 holds
      ex b4 being set st
         b2 /\ b3 c= {b4}};

:: COHSP_1:th 66
theorem
for b1 being non empty subset-closed binary_complete set
for b2 being set holds
      b2 in 'not' b1
   iff
      b2 c= union b1 &
       (for b3 being Element of b1 holds
          ex b4 being set st
             b2 /\ b3 c= {b4});

:: COHSP_1:funcreg 13
registration
  let a1 be non empty subset-closed binary_complete set;
  cluster 'not' a1 -> non empty subset-closed binary_complete;
end;

:: COHSP_1:th 67
theorem
for b1 being non empty subset-closed binary_complete set holds
   union 'not' b1 = union b1;

:: COHSP_1:th 68
theorem
for b1 being non empty subset-closed binary_complete set
for b2, b3 being set
      st b2 <> b3 & {b2,b3} in b1
   holds not {b2,b3} in 'not' b1;

:: COHSP_1:th 69
theorem
for b1 being non empty subset-closed binary_complete set
for b2, b3 being set
      st {b2,b3} c= union b1 & not {b2,b3} in b1
   holds {b2,b3} in 'not' b1;

:: COHSP_1:th 70
theorem
for b1 being non empty subset-closed binary_complete set
for b2, b3 being set holds
   [b2,b3] in Web 'not' b1
iff
   b2 in union b1 &
    b3 in union b1 &
    (b2 <> b3 implies not [b2,b3] in Web b1);

:: COHSP_1:th 71
theorem
for b1 being non empty subset-closed binary_complete set holds
   'not' 'not' b1 = b1;

:: COHSP_1:th 72
theorem
'not' {{}} = {{}};

:: COHSP_1:th 73
theorem
for b1 being set holds
   'not' FlatCoh b1 = bool b1 & 'not' bool b1 = FlatCoh b1;

:: COHSP_1:funcnot 14 => COHSP_1:func 14
definition
  let a1, a2 be set;
  func A1 U+ A2 -> set equals
    Union disjoin <*a1,a2*>;
end;

:: COHSP_1:def 23
theorem
for b1, b2 being set holds
b1 U+ b2 = Union disjoin <*b1,b2*>;

:: COHSP_1:th 74
theorem
for b1, b2 being set holds
b1 U+ b2 = [:b1,{1}:] \/ [:b2,{2}:];

:: COHSP_1:th 75
theorem
for b1 being set holds
   b1 U+ {} = [:b1,{1}:] &
    {} U+ b1 = [:b1,{2}:];

:: COHSP_1:th 76
theorem
for b1, b2, b3 being set
      st b3 in b1 U+ b2
   holds b3 = [b3 `1,b3 `2] &
    (b3 `2 = 1 & b3 `1 in b1 or b3 `2 = 2 & b3 `1 in b2);

:: COHSP_1:th 77
theorem
for b1, b2, b3 being set holds
   [b3,1] in b1 U+ b2
iff
   b3 in b1;

:: COHSP_1:th 78
theorem
for b1, b2, b3 being set holds
   [b3,2] in b1 U+ b2
iff
   b3 in b2;

:: COHSP_1:th 79
theorem
for b1, b2, b3, b4 being set holds
   b1 U+ b2 c= b3 U+ b4
iff
   b1 c= b3 & b2 c= b4;

:: COHSP_1:th 80
theorem
for b1, b2, b3 being set
      st b3 c= b1 U+ b2
   holds ex b4, b5 being set st
      b3 = b4 U+ b5 & b4 c= b1 & b5 c= b2;

:: COHSP_1:th 81
theorem
for b1, b2, b3, b4 being set holds
   b1 U+ b2 = b3 U+ b4
iff
   b1 = b3 & b2 = b4;

:: COHSP_1:th 82
theorem
for b1, b2, b3, b4 being set holds
(b1 U+ b2) \/ (b3 U+ b4) = (b1 \/ b3) U+ (b2 \/ b4);

:: COHSP_1:th 83
theorem
for b1, b2, b3, b4 being set holds
(b1 U+ b2) /\ (b3 U+ b4) = (b1 /\ b3) U+ (b2 /\ b4);

:: COHSP_1:funcnot 15 => COHSP_1:func 15
definition
  let a1, a2 be non empty subset-closed binary_complete set;
  func A1 "/\" A2 -> set equals
    {b1 U+ b2 where b1 is Element of a1, b2 is Element of a2: TRUE};
end;

:: COHSP_1:def 24
theorem
for b1, b2 being non empty subset-closed binary_complete set holds
b1 "/\" b2 = {b3 U+ b4 where b3 is Element of b1, b4 is Element of b2: TRUE};

:: COHSP_1:funcnot 16 => COHSP_1:func 16
definition
  let a1, a2 be non empty subset-closed binary_complete set;
  func A1 "\/" A2 -> set equals
    {b1 U+ {} where b1 is Element of a1: TRUE} \/ {{} U+ b1 where b1 is Element of a2: TRUE};
end;

:: COHSP_1:def 25
theorem
for b1, b2 being non empty subset-closed binary_complete set holds
b1 "\/" b2 = {b3 U+ {} where b3 is Element of b1: TRUE} \/ {{} U+ b3 where b3 is Element of b2: TRUE};

:: COHSP_1:th 84
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being set holds
      b3 in b1 "/\" b2
   iff
      ex b4 being Element of b1 st
         ex b5 being Element of b2 st
            b3 = b4 U+ b5;

:: COHSP_1:th 85
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4 being set holds
   b3 U+ b4 in b1 "/\" b2
iff
   b3 in b1 & b4 in b2;

:: COHSP_1:th 86
theorem
for b1, b2 being non empty subset-closed binary_complete set holds
union (b1 "/\" b2) = (union b1) U+ union b2;

:: COHSP_1:th 87
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4 being set holds
   b3 U+ b4 in b1 "\/" b2
iff
   (b3 in b1 & b4 = {} or b3 = {} & b4 in b2);

:: COHSP_1:th 88
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being set
      st b3 in b1 "\/" b2
   holds ex b4 being Element of b1 st
      ex b5 being Element of b2 st
         b3 = b4 U+ b5 & (b4 = {} or b5 = {});

:: COHSP_1:th 89
theorem
for b1, b2 being non empty subset-closed binary_complete set holds
union (b1 "\/" b2) = (union b1) U+ union b2;

:: COHSP_1:funcreg 14
registration
  let a1, a2 be non empty subset-closed binary_complete set;
  cluster a1 "/\" a2 -> non empty subset-closed binary_complete;
end;

:: COHSP_1:funcreg 15
registration
  let a1, a2 be non empty subset-closed binary_complete set;
  cluster a1 "\/" a2 -> non empty subset-closed binary_complete;
end;

:: COHSP_1:th 90
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4 being set holds
   [[b3,1],[b4,1]] in Web (b1 "/\" b2)
iff
   [b3,b4] in Web b1;

:: COHSP_1:th 91
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4 being set holds
   [[b3,2],[b4,2]] in Web (b1 "/\" b2)
iff
   [b3,b4] in Web b2;

:: COHSP_1:th 92
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4 being set
      st b3 in union b1 & b4 in union b2
   holds [[b3,1],[b4,2]] in Web (b1 "/\" b2) &
    [[b4,2],[b3,1]] in Web (b1 "/\" b2);

:: COHSP_1:th 93
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4 being set holds
   [[b3,1],[b4,1]] in Web (b1 "\/" b2)
iff
   [b3,b4] in Web b1;

:: COHSP_1:th 94
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4 being set holds
   [[b3,2],[b4,2]] in Web (b1 "\/" b2)
iff
   [b3,b4] in Web b2;

:: COHSP_1:th 95
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4 being set holds
not [[b3,1],[b4,2]] in Web (b1 "\/" b2) &
 not [[b4,2],[b3,1]] in Web (b1 "\/" b2);

:: COHSP_1:th 96
theorem
for b1, b2 being non empty subset-closed binary_complete set holds
'not' (b1 "/\" b2) = ('not' b1) "\/" 'not' b2;

:: COHSP_1:funcnot 17 => COHSP_1:func 17
definition
  let a1, a2 be non empty subset-closed binary_complete set;
  func A1 [*] A2 -> set equals
    union {bool [:b1,b2:] where b1 is Element of a1, b2 is Element of a2: TRUE};
end;

:: COHSP_1:def 26
theorem
for b1, b2 being non empty subset-closed binary_complete set holds
b1 [*] b2 = union {bool [:b3,b4:] where b3 is Element of b1, b4 is Element of b2: TRUE};

:: COHSP_1:th 97
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being set holds
      b3 in b1 [*] b2
   iff
      ex b4 being Element of b1 st
         ex b5 being Element of b2 st
            b3 c= [:b4,b5:];

:: COHSP_1:funcreg 16
registration
  let a1, a2 be non empty subset-closed binary_complete set;
  cluster a1 [*] a2 -> non empty;
end;

:: COHSP_1:th 98
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3 being Element of b1 [*] b2 holds
   proj1 b3 in b1 & proj2 b3 in b2 & b3 c= [:proj1 b3,proj2 b3:];

:: COHSP_1:funcreg 17
registration
  let a1, a2 be non empty subset-closed binary_complete set;
  cluster a1 [*] a2 -> subset-closed binary_complete;
end;

:: COHSP_1:th 99
theorem
for b1, b2 being non empty subset-closed binary_complete set holds
union (b1 [*] b2) = [:union b1,union b2:];

:: COHSP_1:th 100
theorem
for b1, b2 being non empty subset-closed binary_complete set
for b3, b4, b5, b6 being set holds
   [[b3,b5],[b4,b6]] in Web (b1 [*] b2)
iff
   [b3,b4] in Web b1 & [b5,b6] in Web b2;