Article WAYBEL27, MML version 4.99.1005

:: WAYBEL27:attrnot 1 => WAYBEL27:attr 1
definition
  let a1 be Relation-like Function-like set;
  attr a1 is uncurrying means
    (for b1 being set
           st b1 in proj1 a1
        holds b1 is Relation-like Function-like Function-yielding set) &
     (for b1 being Relation-like Function-like set
           st b1 in proj1 a1
        holds a1 . b1 = uncurry b1);
end;

:: WAYBEL27:dfs 1
definiens
  let a1 be Relation-like Function-like set;
To prove
     a1 is uncurrying
it is sufficient to prove
  thus (for b1 being set
           st b1 in proj1 a1
        holds b1 is Relation-like Function-like Function-yielding set) &
     (for b1 being Relation-like Function-like set
           st b1 in proj1 a1
        holds a1 . b1 = uncurry b1);

:: WAYBEL27:def 1
theorem
for b1 being Relation-like Function-like set holds
      b1 is uncurrying
   iff
      (for b2 being set
             st b2 in proj1 b1
          holds b2 is Relation-like Function-like Function-yielding set) &
       (for b2 being Relation-like Function-like set
             st b2 in proj1 b1
          holds b1 . b2 = uncurry b2);

:: WAYBEL27:attrnot 2 => WAYBEL27:attr 2
definition
  let a1 be Relation-like Function-like set;
  attr a1 is currying means
    (for b1 being set
           st b1 in proj1 a1
        holds b1 is Relation-like Function-like set & proj1 b1 is Relation-like set) &
     (for b1 being Relation-like Function-like set
           st b1 in proj1 a1
        holds a1 . b1 = curry b1);
end;

:: WAYBEL27:dfs 2
definiens
  let a1 be Relation-like Function-like set;
To prove
     a1 is currying
it is sufficient to prove
  thus (for b1 being set
           st b1 in proj1 a1
        holds b1 is Relation-like Function-like set & proj1 b1 is Relation-like set) &
     (for b1 being Relation-like Function-like set
           st b1 in proj1 a1
        holds a1 . b1 = curry b1);

:: WAYBEL27:def 2
theorem
for b1 being Relation-like Function-like set holds
      b1 is currying
   iff
      (for b2 being set
             st b2 in proj1 b1
          holds b2 is Relation-like Function-like set & proj1 b2 is Relation-like set) &
       (for b2 being Relation-like Function-like set
             st b2 in proj1 b1
          holds b1 . b2 = curry b2);

:: WAYBEL27:attrnot 3 => WAYBEL27:attr 3
definition
  let a1 be Relation-like Function-like set;
  attr a1 is commuting means
    (for b1 being set
           st b1 in proj1 a1
        holds b1 is Relation-like Function-like Function-yielding set) &
     (for b1 being Relation-like Function-like set
           st b1 in proj1 a1
        holds a1 . b1 = commute b1);
end;

:: WAYBEL27:dfs 3
definiens
  let a1 be Relation-like Function-like set;
To prove
     a1 is commuting
it is sufficient to prove
  thus (for b1 being set
           st b1 in proj1 a1
        holds b1 is Relation-like Function-like Function-yielding set) &
     (for b1 being Relation-like Function-like set
           st b1 in proj1 a1
        holds a1 . b1 = commute b1);

:: WAYBEL27:def 3
theorem
for b1 being Relation-like Function-like set holds
      b1 is commuting
   iff
      (for b2 being set
             st b2 in proj1 b1
          holds b2 is Relation-like Function-like Function-yielding set) &
       (for b2 being Relation-like Function-like set
             st b2 in proj1 b1
          holds b1 . b2 = commute b2);

:: WAYBEL27:condreg 1
registration
  cluster empty Relation-like Function-like -> uncurrying currying commuting (set);
end;

:: WAYBEL27:exreg 1
registration
  cluster Relation-like Function-like uncurrying currying commuting set;
end;

:: WAYBEL27:funcreg 1
registration
  let a1 be Relation-like Function-like uncurrying set;
  let a2 be set;
  cluster a1 | a2 -> Relation-like uncurrying;
end;

:: WAYBEL27:funcreg 2
registration
  let a1 be Relation-like Function-like currying set;
  let a2 be set;
  cluster a1 | a2 -> Relation-like currying;
end;

:: WAYBEL27:th 1
theorem
for b1, b2, b3, b4 being set
      st b4 c= Funcs(b1,Funcs(b2,b3))
   holds ex b5 being ManySortedSet of b4 st
      b5 is uncurrying & proj2 b5 c= Funcs([:b1,b2:],b3);

:: WAYBEL27:th 2
theorem
for b1, b2, b3, b4 being set
      st b4 c= Funcs([:b1,b2:],b3)
   holds ex b5 being ManySortedSet of b4 st
      b5 is currying &
       (b2 = {} & b1 <> {} or proj2 b5 c= Funcs(b1,Funcs(b2,b3)));

:: WAYBEL27:exreg 2
registration
  let a1, a2, a3 be set;
  cluster Relation-like Function-like uncurrying ManySortedSet of Funcs(a1,Funcs(a2,a3));
end;

:: WAYBEL27:exreg 3
registration
  let a1, a2, a3 be set;
  cluster Relation-like Function-like currying ManySortedSet of Funcs([:a1,a2:],a3);
end;

:: WAYBEL27:th 3
theorem
for b1, b2 being non empty set
for b3 being set
for b4, b5 being Relation-like Function-like commuting set
      st proj1 b4 c= Funcs(b1,Funcs(b2,b3)) & proj2 b4 c= proj1 b5
   holds b4 * b5 = id proj1 b4;

:: WAYBEL27:th 4
theorem
for b1 being non empty set
for b2, b3 being set
for b4 being Relation-like Function-like uncurrying set
for b5 being Relation-like Function-like currying set
      st proj1 b4 c= Funcs(b2,Funcs(b1,b3)) & proj2 b4 c= proj1 b5
   holds b4 * b5 = id proj1 b4;

:: WAYBEL27:th 5
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like currying set
for b5 being Relation-like Function-like uncurrying set
      st proj1 b4 c= Funcs([:b1,b2:],b3) & proj2 b4 c= proj1 b5
   holds b4 * b5 = id proj1 b4;

:: WAYBEL27:th 6
theorem
for b1 being Relation-like Function-like Function-yielding set
for b2, b3 being set
      st b2 in proj1 commute b1
   holds ((commute b1) . b2) .: b3 c= pi(b1 .: b3,b2);

:: WAYBEL27:th 7
theorem
for b1 being Relation-like Function-like Function-yielding set
for b2, b3 being set
      st for b4 being Relation-like Function-like set
              st b4 in b1 .: b3
           holds b2 in proj1 b4
   holds pi(b1 .: b3,b2) c= ((commute b1) . b2) .: b3;

:: WAYBEL27:th 8
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set
   st proj2 b3 c= Funcs(b1,b2)
for b4, b5 being set
      st b4 in b1
   holds ((commute b3) . b4) .: b5 = pi(b3 .: b5,b4);

:: WAYBEL27:th 9
theorem
for b1 being Relation-like Function-like set
for b2, b3 being set
      st [:b3,{b2}:] c= proj1 b1
   holds pi((curry b1) .: b3,b2) = b1 .: [:b3,{b2}:];

:: WAYBEL27:condreg 2
registration
  let a1 be set;
  let a2 be non empty functional set;
  cluster Function-like quasi_total -> Function-yielding (Relation of a1,a2);
end;

:: WAYBEL27:funcreg 3
registration
  let a1 be constituted-Functions 1-sorted;
  cluster the carrier of a1 -> functional;
end;

:: WAYBEL27:funcreg 4
registration
  let a1 be set;
  let a2 be non empty RelStr;
  cluster a2 |^ a1 -> constituted-Functions strict;
end;

:: WAYBEL27:exreg 4
registration
  cluster non empty constituted-Functions strict reflexive transitive antisymmetric with_suprema with_infima complete non void RelStr;
end;

:: WAYBEL27:exreg 5
registration
  cluster non empty constituted-Functions 1-sorted;
end;

:: WAYBEL27:condreg 3
registration
  let a1 be non empty constituted-Functions RelStr;
  cluster non empty -> constituted-Functions (SubRelStr of a1);
end;

:: WAYBEL27:th 10
theorem
for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima complete RelStr
for b3 being Function-like quasi_total idempotent Relation of the carrier of b2,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of Image b3 holds
   b3 * b4 = b4;

:: WAYBEL27:th 11
theorem
for b1, b2, b3 being non empty RelStr
   st b2 is SubRelStr of 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 b1,the carrier of b3
      st b4 is monotone(b1, b2) & b4 = b5
   holds b5 is monotone(b1, b3);

:: WAYBEL27:th 12
theorem
for b1, b2, b3 being non empty RelStr
   st b2 is full SubRelStr of 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 b1,the carrier of b3
      st b5 is monotone(b1, b3) & b4 = b5
   holds b4 is monotone(b1, b2);

:: WAYBEL27:th 13
theorem
for b1 being set
for b2 being Element of bool b1 holds
   (chi(b2,b1)) " {1} = b2 &
    (chi(b2,b1)) " {0} = b1 \ b2;

:: WAYBEL27:funcnot 1 => WAYBEL27:func 1
definition
  let a1 be non empty set;
  let a2 be non empty RelStr;
  let a3 be Element of the carrier of a2 |^ a1;
  let a4 be Element of a1;
  redefine func a3 . a4 -> Element of the carrier of a2;
end;

:: WAYBEL27:th 14
theorem
for b1 being non empty set
for b2 being non empty RelStr
for b3, b4 being Element of the carrier of b2 |^ b1 holds
   b3 <= b4
iff
   for b5 being Element of b1 holds
      b3 . b5 <= b4 . b5;

:: WAYBEL27:th 15
theorem
for b1 being set
for b2, b3 being non empty RelStr
      st RelStr(#the carrier of b2,the InternalRel of b2#) = RelStr(#the carrier of b3,the InternalRel of b3#)
   holds b2 |^ b1 = b3 |^ b1;

:: WAYBEL27:th 16
theorem
for b1, b2, b3, b4 being non empty TopSpace-like TopStruct
      st TopStruct(#the carrier of b1,the topology of b1#) = TopStruct(#the carrier of b2,the topology of b2#) &
         TopStruct(#the carrier of b3,the topology of b3#) = TopStruct(#the carrier of b4,the topology of b4#)
   holds oContMaps(b1,b3) = oContMaps(b2,b4);

:: WAYBEL27:th 17
theorem
for b1 being set holds
   ex b2 being Function-like quasi_total Relation of the carrier of BoolePoset b1,the carrier of (BoolePoset 1) |^ b1 st
      b2 is isomorphic(BoolePoset b1, (BoolePoset 1) |^ b1) &
       (for b3 being Element of bool b1 holds
          b2 . b3 = chi(b3,b1));

:: WAYBEL27:th 18
theorem
for b1 being set holds
   BoolePoset b1,(BoolePoset 1) |^ b1 are_isomorphic;

:: WAYBEL27:th 19
theorem
for b1, b2 being non empty set
for b3 being non empty reflexive transitive antisymmetric RelStr
for b4 being non empty full SubRelStr of (b3 |^ b1) |^ b2
for b5 being non empty full SubRelStr of (b3 |^ b2) |^ b1
for b6 being Function-like quasi_total Relation of the carrier of b4,the carrier of b5
      st b6 is commuting
   holds b6 is monotone(b4, b5);

:: WAYBEL27:th 20
theorem
for b1, b2 being non empty set
for b3 being non empty reflexive transitive antisymmetric RelStr
for b4 being non empty full SubRelStr of (b3 |^ b2) |^ b1
for b5 being non empty full SubRelStr of b3 |^ [:b1,b2:]
for b6 being Function-like quasi_total Relation of the carrier of b4,the carrier of b5
      st b6 is uncurrying
   holds b6 is monotone(b4, b5);

:: WAYBEL27:th 21
theorem
for b1, b2 being non empty set
for b3 being non empty reflexive transitive antisymmetric RelStr
for b4 being non empty full SubRelStr of (b3 |^ b2) |^ b1
for b5 being non empty full SubRelStr of b3 |^ [:b1,b2:]
for b6 being Function-like quasi_total Relation of the carrier of b5,the carrier of b4
      st b6 is currying
   holds b6 is monotone(b5, b4);

:: WAYBEL27:funcnot 2 => WAYBEL27:func 2
definition
  let a1 be non empty RelStr;
  let a2 be non empty reflexive antisymmetric RelStr;
  func UPS(A1,A2) -> strict RelStr means
    it is full SubRelStr of a2 |^ the carrier of a1 &
     (for b1 being set holds
           b1 in the carrier of it
        iff
           b1 is Function-like quasi_total directed-sups-preserving Relation of the carrier of a1,the carrier of a2);
end;

:: WAYBEL27:def 4
theorem
for b1 being non empty RelStr
for b2 being non empty reflexive antisymmetric RelStr
for b3 being strict RelStr holds
      b3 = UPS(b1,b2)
   iff
      b3 is full SubRelStr of b2 |^ the carrier of b1 &
       (for b4 being set holds
             b4 in the carrier of b3
          iff
             b4 is Function-like quasi_total directed-sups-preserving Relation of the carrier of b1,the carrier of b2);

:: WAYBEL27:funcreg 5
registration
  let a1 be non empty RelStr;
  let a2 be non empty reflexive antisymmetric RelStr;
  cluster UPS(a1,a2) -> non empty constituted-Functions strict reflexive antisymmetric;
end;

:: WAYBEL27:funcreg 6
registration
  let a1 be non empty RelStr;
  let a2 be non empty reflexive transitive antisymmetric RelStr;
  cluster UPS(a1,a2) -> strict transitive;
end;

:: WAYBEL27:th 22
theorem
for b1 being non empty RelStr
for b2 being non empty reflexive antisymmetric RelStr holds
   the carrier of UPS(b1,b2) c= Funcs(the carrier of b1,the carrier of b2);

:: WAYBEL27:funcnot 3 => WAYBEL27:func 3
definition
  let a1 be non empty RelStr;
  let a2 be non empty reflexive antisymmetric RelStr;
  let a3 be Element of the carrier of UPS(a1,a2);
  let a4 be Element of the carrier of a1;
  redefine func a3 . a4 -> Element of the carrier of a2;
end;

:: WAYBEL27:th 23
theorem
for b1 being non empty RelStr
for b2 being non empty reflexive antisymmetric RelStr
for b3, b4 being Element of the carrier of UPS(b1,b2) holds
   b3 <= b4
iff
   for b5 being Element of the carrier of b1 holds
      b3 . b5 <= b4 . b5;

:: WAYBEL27:th 24
theorem
for b1, b2 being TopSpace-like reflexive transitive antisymmetric with_suprema with_infima complete Scott TopRelStr holds
UPS(b1,b2) = SCMaps(b1,b2);

:: WAYBEL27:th 25
theorem
for b1, b2 being non empty RelStr
for b3, b4 being non empty reflexive antisymmetric RelStr
      st RelStr(#the carrier of b1,the InternalRel of b1#) = RelStr(#the carrier of b2,the InternalRel of b2#) &
         RelStr(#the carrier of b3,the InternalRel of b3#) = RelStr(#the carrier of b4,the InternalRel of b4#)
   holds UPS(b1,b3) = UPS(b2,b4);

:: WAYBEL27:funcreg 7
registration
  let a1, a2 be reflexive transitive antisymmetric with_suprema with_infima complete RelStr;
  cluster UPS(a1,a2) -> strict complete;
end;

:: WAYBEL27:th 26
theorem
for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima complete RelStr holds
UPS(b1,b2) is sups-inheriting SubRelStr of b2 |^ the carrier of b1;

:: WAYBEL27:th 27
theorem
for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima complete RelStr
for b3 being Element of bool the carrier of UPS(b1,b2) holds
   "\/"(b3,UPS(b1,b2)) = "\/"(b3,b2 |^ the carrier of b1);

:: WAYBEL27:funcnot 4 => WAYBEL27:func 4
definition
  let a1, a2, a3, a4 be non empty reflexive antisymmetric RelStr;
  let a5 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  let a6 be Function-like quasi_total Relation of the carrier of a3,the carrier of a4;
  assume a5 is directed-sups-preserving(a1, a2) & a6 is directed-sups-preserving(a3, a4);
  func UPS(A5,A6) -> Function-like quasi_total Relation of the carrier of UPS(a2,a3),the carrier of UPS(a1,a4) means
    for b1 being Function-like quasi_total directed-sups-preserving Relation of the carrier of a2,the carrier of a3 holds
       it . b1 = (a6 * b1) * a5;
end;

:: WAYBEL27:def 5
theorem
for b1, b2, b3, b4 being non empty reflexive antisymmetric RelStr
for b5 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
   st b5 is directed-sups-preserving(b1, b2)
for b6 being Function-like quasi_total Relation of the carrier of b3,the carrier of b4
   st b6 is directed-sups-preserving(b3, b4)
for b7 being Function-like quasi_total Relation of the carrier of UPS(b2,b3),the carrier of UPS(b1,b4) holds
      b7 = UPS(b5,b6)
   iff
      for b8 being Function-like quasi_total directed-sups-preserving Relation of the carrier of b2,the carrier of b3 holds
         b7 . b8 = (b6 * b8) * b5;

:: WAYBEL27:th 28
theorem
for b1, b2, b3, b4, b5, b6 being non empty reflexive transitive antisymmetric RelStr
for b7 being Function-like quasi_total directed-sups-preserving Relation of the carrier of b2,the carrier of b3
for b8 being Function-like quasi_total directed-sups-preserving Relation of the carrier of b1,the carrier of b2
for b9 being Function-like quasi_total directed-sups-preserving Relation of the carrier of b4,the carrier of b5
for b10 being Function-like quasi_total directed-sups-preserving Relation of the carrier of b5,the carrier of b6 holds
   (UPS(b8,b10)) * UPS(b7,b9) = UPS(b7 * b8,b10 * b9);

:: WAYBEL27:th 29
theorem
for b1, b2 being non empty reflexive antisymmetric RelStr holds
UPS(id b1,id b2) = id UPS(b1,b2);

:: WAYBEL27:th 30
theorem
for b1, b2, b3, b4 being reflexive transitive antisymmetric with_suprema with_infima complete RelStr
for b5 being Function-like quasi_total directed-sups-preserving Relation of the carrier of b1,the carrier of b2
for b6 being Function-like quasi_total directed-sups-preserving Relation of the carrier of b3,the carrier of b4 holds
   UPS(b5,b6) is directed-sups-preserving(UPS(b2,b3), UPS(b1,b4));

:: WAYBEL27:th 31
theorem
Omega Sierpinski_Space is Scott;

:: WAYBEL27:th 32
theorem
for b1 being TopSpace-like reflexive transitive antisymmetric with_suprema with_infima complete Scott TopRelStr holds
   oContMaps(b1,Sierpinski_Space) = UPS(b1,BoolePoset 1);

:: WAYBEL27:th 33
theorem
for b1 being reflexive transitive antisymmetric with_suprema with_infima complete RelStr holds
   ex b2 being Function-like quasi_total Relation of the carrier of UPS(b1,BoolePoset 1),the carrier of InclPoset sigma b1 st
      b2 is isomorphic(UPS(b1,BoolePoset 1), InclPoset sigma b1) &
       (for b3 being Function-like quasi_total directed-sups-preserving Relation of the carrier of b1,the carrier of BoolePoset 1 holds
          b2 . b3 = b3 " {1});

:: WAYBEL27:th 34
theorem
for b1 being reflexive transitive antisymmetric with_suprema with_infima complete RelStr holds
   UPS(b1,BoolePoset 1),InclPoset sigma b1 are_isomorphic;

:: WAYBEL27:th 35
theorem
for b1, b2, b3, b4 being reflexive transitive antisymmetric with_suprema with_infima complete RelStr
for b5 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b6 being Function-like quasi_total Relation of the carrier of b3,the carrier of b4
      st b5 is isomorphic(b1, b2) & b6 is isomorphic(b3, b4)
   holds UPS(b5,b6) is isomorphic(UPS(b2,b3), UPS(b1,b4));

:: WAYBEL27:th 36
theorem
for b1, b2, b3, b4 being reflexive transitive antisymmetric with_suprema with_infima complete RelStr
      st b1,b2 are_isomorphic & b3,b4 are_isomorphic
   holds UPS(b2,b3),UPS(b1,b4) are_isomorphic;

:: WAYBEL27:th 37
theorem
for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima complete RelStr
for b3 being Function-like quasi_total directed-sups-preserving projection Relation of the carrier of b2,the carrier of b2 holds
   Image UPS(id b1,b3) = UPS(b1,Image b3);

:: WAYBEL27:th 38
theorem
for b1 being non empty set
for b2, b3 being non empty reflexive transitive antisymmetric RelStr
for b4 being Function-like quasi_total directed-sups-preserving Relation of the carrier of b2,the carrier of b3 |^ b1
for b5 being Element of b1 holds
   (commute b4) . b5 is Function-like quasi_total directed-sups-preserving Relation of the carrier of b2,the carrier of b3;

:: WAYBEL27:th 39
theorem
for b1 being non empty set
for b2, b3 being non empty reflexive transitive antisymmetric RelStr
for b4 being Function-like quasi_total directed-sups-preserving Relation of the carrier of b2,the carrier of b3 |^ b1 holds
   commute b4 is Function-like quasi_total Relation of b1,the carrier of UPS(b2,b3);

:: WAYBEL27:th 40
theorem
for b1 being non empty set
for b2, b3 being non empty reflexive transitive antisymmetric RelStr
for b4 being Function-like quasi_total Relation of b1,the carrier of UPS(b2,b3) holds
   commute b4 is Function-like quasi_total directed-sups-preserving Relation of the carrier of b2,the carrier of b3 |^ b1;

:: WAYBEL27:th 41
theorem
for b1 being non empty set
for b2, b3 being non empty reflexive transitive antisymmetric RelStr holds
ex b4 being Function-like quasi_total Relation of the carrier of UPS(b2,b3 |^ b1),the carrier of (UPS(b2,b3)) |^ b1 st
   b4 is commuting &
    b4 is isomorphic(UPS(b2,b3 |^ b1), (UPS(b2,b3)) |^ b1);

:: WAYBEL27:th 42
theorem
for b1 being non empty set
for b2, b3 being non empty reflexive transitive antisymmetric RelStr holds
UPS(b2,b3 |^ b1),(UPS(b2,b3)) |^ b1 are_isomorphic;

:: WAYBEL27:th 43
theorem
for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima complete continuous RelStr holds
UPS(b1,b2) is continuous;

:: WAYBEL27:th 44
theorem
for b1, b2 being reflexive transitive antisymmetric with_suprema with_infima complete algebraic RelStr holds
UPS(b1,b2) is algebraic;

:: WAYBEL27:th 45
theorem
for b1, b2, b3 being reflexive transitive antisymmetric with_suprema with_infima complete RelStr
for b4 being Function-like quasi_total directed-sups-preserving Relation of the carrier of b1,the carrier of UPS(b2,b3) holds
   uncurry b4 is Function-like quasi_total directed-sups-preserving Relation of the carrier of [:b1,b2:],the carrier of b3;

:: WAYBEL27:th 46
theorem
for b1, b2, b3 being reflexive transitive antisymmetric with_suprema with_infima complete RelStr
for b4 being Function-like quasi_total directed-sups-preserving Relation of the carrier of [:b1,b2:],the carrier of b3 holds
   curry b4 is Function-like quasi_total directed-sups-preserving Relation of the carrier of b1,the carrier of UPS(b2,b3);

:: WAYBEL27:th 47
theorem
for b1, b2, b3 being reflexive transitive antisymmetric with_suprema with_infima complete RelStr holds
ex b4 being Function-like quasi_total Relation of the carrier of UPS(b1,UPS(b2,b3)),the carrier of UPS([:b1,b2:],b3) st
   b4 is uncurrying &
    b4 is isomorphic(UPS(b1,UPS(b2,b3)), UPS([:b1,b2:],b3));