Article MSSUBFAM, MML version 4.99.1005

:: MSSUBFAM:funcnot 1 => MSSUBFAM:func 1
definition
  let a1 be set;
  let a2 be Function-yielding ManySortedSet of a1;
  redefine func doms a2 -> ManySortedSet of a1;
end;

:: MSSUBFAM:funcnot 2 => MSSUBFAM:func 2
definition
  let a1 be set;
  let a2 be Function-yielding ManySortedSet of a1;
  redefine func rngs a2 -> ManySortedSet of a1;
end;

:: MSSUBFAM:sch 1
scheme MSSUBFAM:sch 1
{F1 -> set,
  F2 -> ManySortedSet of F1(),
  F3 -> ManySortedSet of F1()}:
ex b1 being ManySortedFunction of F2(),F3() st
   for b2 being set
         st b2 in F1()
      holds ex b3 being Function-like quasi_total Relation of F2() . b2,F3() . b2 st
         b3 = b1 . b2 &
          (for b4 being set
                st b4 in F2() . b2
             holds P1[b3 . b4, b4, b2])
provided
   for b1 being set
      st b1 in F1()
   for b2 being set
         st b2 in F2() . b1
      holds ex b3 being set st
         b3 in F3() . b1 & P1[b3, b2, b1];


:: MSSUBFAM:th 1
theorem
for b1 being set
for b2 being Element of bool bool b1
      st b2 <> {}
   holds Intersect b2 c= union b2;

:: MSSUBFAM:th 2
theorem
for b1, b2 being set
for b3 being Element of bool bool b1
      st b2 in b3
   holds Intersect b3 c= b2;

:: MSSUBFAM:th 3
theorem
for b1 being set
for b2 being Element of bool bool b1
      st {} in b2
   holds Intersect b2 = {};

:: MSSUBFAM:th 4
theorem
for b1 being set
for b2 being Element of bool bool b1
for b3 being Element of bool b1
      st for b4 being set
              st b4 in b2
           holds b3 c= b4
   holds b3 c= Intersect b2;

:: MSSUBFAM:th 5
theorem
for b1, b2 being set
for b3 being Element of bool bool b1
      st b3 <> {} &
         (for b4 being set
               st b4 in b3
            holds b2 c= b4)
   holds b2 c= Intersect b3;

:: MSSUBFAM:th 6
theorem
for b1, b2, b3 being set
for b4 being Element of bool bool b1
      st b2 in b4 & b2 c= b3
   holds Intersect b4 c= b3;

:: MSSUBFAM:th 7
theorem
for b1, b2, b3 being set
for b4 being Element of bool bool b1
      st b2 in b4 & b2 misses b3
   holds Intersect b4 misses b3;

:: MSSUBFAM:th 8
theorem
for b1 being set
for b2, b3, b4 being Element of bool bool b1
      st b2 = b3 \/ b4
   holds Intersect b2 = (Intersect b3) /\ Intersect b4;

:: MSSUBFAM:th 9
theorem
for b1 being set
for b2 being Element of bool bool b1
for b3 being Element of bool b1
      st b2 = {b3}
   holds Intersect b2 = b3;

:: MSSUBFAM:th 10
theorem
for b1 being set
for b2 being Element of bool bool b1
for b3, b4 being Element of bool b1
      st b2 = {b3,b4}
   holds Intersect b2 = b3 /\ b4;

:: MSSUBFAM:th 11
theorem
for b1 being set
for b2, b3 being ManySortedSet of b1
      st b2 in b3
   holds b2 is Element of b3;

:: MSSUBFAM:th 12
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being non-empty ManySortedSet of b1
      st b2 is Element of b3
   holds b2 in b3;

:: MSSUBFAM:th 13
theorem
for b1, b2 being set
for b3 being Function-yielding ManySortedSet of b2
for b4 being Relation-like Function-like set
      st b1 in b2 & b4 = b3 . b1
   holds (rngs b3) . b1 = proj2 b4;

:: MSSUBFAM:th 14
theorem
for b1, b2 being set
for b3 being Function-yielding ManySortedSet of b2
for b4 being Relation-like Function-like set
      st b1 in b2 & b4 = b3 . b1
   holds (doms b3) . b1 = proj1 b4;

:: MSSUBFAM:th 15
theorem
for b1 being set
for b2, b3 being Function-yielding ManySortedSet of b1 holds
b3 ** b2 is Function-yielding ManySortedSet of b1;

:: MSSUBFAM:th 16
theorem
for b1 being set
for b2 being non-empty ManySortedSet of b1
for b3 being ManySortedFunction of b2,[0] b1 holds
   b3 = [0] b1;

:: MSSUBFAM:th 17
theorem
for b1 being set
for b2, b3 being ManySortedSet of b1
for b4 being Function-yielding ManySortedSet of b1
      st b2 is_transformable_to b3 & b4 is ManySortedFunction of b2,b3
   holds doms b4 = b2 & rngs b4 c= b3;

:: MSSUBFAM:condreg 1
registration
  let a1 be set;
  cluster empty-yielding -> finite-yielding (ManySortedSet of a1);
end;

:: MSSUBFAM:funcreg 1
registration
  let a1 be set;
  cluster [0] a1 -> empty-yielding finite-yielding;
end;

:: MSSUBFAM:exreg 1
registration
  let a1 be set;
  let a2 be ManySortedSet of a1;
  cluster Relation-like empty-yielding Function-like finite-yielding ManySortedSubset of a2;
end;

:: MSSUBFAM:th 18
theorem
for b1 being set
for b2, b3 being ManySortedSet of b1
      st b2 c= b3 & b3 is finite-yielding
   holds b2 is finite-yielding;

:: MSSUBFAM:condreg 2
registration
  let a1 be set;
  let a2 be finite-yielding ManySortedSet of a1;
  cluster -> finite-yielding (ManySortedSubset of a2);
end;

:: MSSUBFAM:funcreg 2
registration
  let a1 be set;
  let a2, a3 be finite-yielding ManySortedSet of a1;
  cluster a2 \/ a3 -> finite-yielding;
end;

:: MSSUBFAM:funcreg 3
registration
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be finite-yielding ManySortedSet of a1;
  cluster a2 /\ a3 -> finite-yielding;
end;

:: MSSUBFAM:funcreg 4
registration
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be finite-yielding ManySortedSet of a1;
  cluster a3 /\ a2 -> finite-yielding;
end;

:: MSSUBFAM:funcreg 5
registration
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be finite-yielding ManySortedSet of a1;
  cluster a3 \ a2 -> finite-yielding;
end;

:: MSSUBFAM:funcreg 6
registration
  let a1 be set;
  let a2 be Function-yielding ManySortedSet of a1;
  let a3 be finite-yielding ManySortedSet of a1;
  cluster a2 .:.: a3 -> finite-yielding;
end;

:: MSSUBFAM:funcreg 7
registration
  let a1 be set;
  let a2, a3 be finite-yielding ManySortedSet of a1;
  cluster [|a2,a3|] -> finite-yielding;
end;

:: MSSUBFAM:th 19
theorem
for b1 being set
for b2, b3 being ManySortedSet of b1
      st b2 is non-empty & [|b3,b2|] is finite-yielding
   holds b3 is finite-yielding;

:: MSSUBFAM:th 20
theorem
for b1 being set
for b2, b3 being ManySortedSet of b1
      st b2 is non-empty & [|b2,b3|] is finite-yielding
   holds b3 is finite-yielding;

:: MSSUBFAM:th 21
theorem
for b1 being set
for b2 being ManySortedSet of b1 holds
      b2 is finite-yielding
   iff
      bool b2 is finite-yielding;

:: MSSUBFAM:funcreg 8
registration
  let a1 be set;
  let a2 be finite-yielding ManySortedSet of a1;
  cluster bool a2 -> finite-yielding;
end;

:: MSSUBFAM:th 22
theorem
for b1 being set
for b2 being non-empty ManySortedSet of b1
      st b2 is finite-yielding &
         (for b3 being ManySortedSet of b1
               st b3 in b2
            holds b3 is finite-yielding)
   holds union b2 is finite-yielding;

:: MSSUBFAM:th 23
theorem
for b1 being set
for b2 being ManySortedSet of b1
      st union b2 is finite-yielding
   holds b2 is finite-yielding &
    (for b3 being ManySortedSet of b1
          st b3 in b2
       holds b3 is finite-yielding);

:: MSSUBFAM:th 24
theorem
for b1 being set
for b2 being Function-yielding ManySortedSet of b1
      st doms b2 is finite-yielding
   holds rngs b2 is finite-yielding;

:: MSSUBFAM:th 25
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being Function-yielding ManySortedSet of b1
      st b2 c= rngs b3 &
         (for b4 being set
         for b5 being Relation-like Function-like set
               st b4 in b1 & b5 = b3 . b4
            holds b5 " (b2 . b4) is finite)
   holds b2 is finite-yielding;

:: MSSUBFAM:funcreg 9
registration
  let a1 be set;
  let a2, a3 be finite-yielding ManySortedSet of a1;
  cluster MSFuncs(a2,a3) -> finite-yielding;
end;

:: MSSUBFAM:funcreg 10
registration
  let a1 be set;
  let a2, a3 be finite-yielding ManySortedSet of a1;
  cluster a2 \+\ a3 -> finite-yielding;
end;

:: MSSUBFAM:th 26
theorem
for b1 being set
for b2, b3, b4 being ManySortedSet of b1
      st b2 is finite-yielding & b2 c= [|b3,b4|]
   holds ex b5, b6 being ManySortedSet of b1 st
      b5 is finite-yielding & b5 c= b3 & b6 is finite-yielding & b6 c= b4 & b2 c= [|b5,b6|];

:: MSSUBFAM:th 27
theorem
for b1 being set
for b2, b3, b4 being ManySortedSet of b1
      st b2 is finite-yielding & b3 is finite-yielding & b2 c= [|b4,b3|]
   holds ex b5 being ManySortedSet of b1 st
      b5 is finite-yielding & b5 c= b4 & b2 c= [|b5,b3|];

:: MSSUBFAM:th 28
theorem
for b1 being set
for b2 being non-empty finite-yielding ManySortedSet of b1
      st for b3, b4 being ManySortedSet of b1
              st b3 in b2 & b4 in b2 & not b3 c= b4
           holds b4 c= b3
   holds ex b3 being ManySortedSet of b1 st
      b3 in b2 &
       (for b4 being ManySortedSet of b1
             st b4 in b2
          holds b3 c= b4);

:: MSSUBFAM:th 29
theorem
for b1 being set
for b2 being non-empty finite-yielding ManySortedSet of b1
      st for b3, b4 being ManySortedSet of b1
              st b3 in b2 & b4 in b2 & not b3 c= b4
           holds b4 c= b3
   holds ex b3 being ManySortedSet of b1 st
      b3 in b2 &
       (for b4 being ManySortedSet of b1
             st b4 in b2
          holds b4 c= b3);

:: MSSUBFAM:th 30
theorem
for b1 being set
for b2 being Function-yielding ManySortedSet of b1
for b3 being ManySortedSet of b1
      st b3 is finite-yielding & b3 c= rngs b2
   holds ex b4 being ManySortedSet of b1 st
      b4 c= doms b2 & b4 is finite-yielding & b2 .:.: b4 = b3;

:: MSSUBFAM:modenot 1
definition
  let a1 be set;
  let a2 be ManySortedSet of a1;
  mode MSSubsetFamily of a2 is ManySortedSubset of bool a2;
end;

:: MSSUBFAM:exreg 2
registration
  let a1 be set;
  let a2 be ManySortedSet of a1;
  cluster Relation-like non-empty Function-like ManySortedSubset of bool a2;
end;

:: MSSUBFAM:funcnot 3 => MSSUBFAM:func 3
definition
  let a1 be set;
  let a2 be ManySortedSet of a1;
  redefine func bool a2 -> ManySortedSubset of bool a2;
end;

:: MSSUBFAM:exreg 3
registration
  let a1 be set;
  let a2 be ManySortedSet of a1;
  cluster Relation-like empty-yielding Function-like finite-yielding ManySortedSubset of bool a2;
end;

:: MSSUBFAM:th 31
theorem
for b1 being set
for b2 being ManySortedSet of b1 holds
   [0] b1 is empty-yielding finite-yielding ManySortedSubset of bool b2;

:: MSSUBFAM:exreg 4
registration
  let a1 be set;
  let a2 be finite-yielding ManySortedSet of a1;
  cluster Relation-like non-empty Function-like finite-yielding ManySortedSubset of bool a2;
end;

:: MSSUBFAM:funcnot 4 => MSSUBFAM:func 4
definition
  let a1 be non empty set;
  let a2 be ManySortedSet of a1;
  let a3 be ManySortedSubset of bool a2;
  let a4 be Element of a1;
  redefine func a3 . a4 -> Element of bool bool (a2 . a4);
end;

:: MSSUBFAM:th 32
theorem
for b1, b2 being set
for b3 being ManySortedSet of b2
for b4 being ManySortedSubset of bool b3
      st b1 in b2
   holds b4 . b1 is Element of bool bool (b3 . b1);

:: MSSUBFAM:th 33
theorem
for b1 being set
for b2, b3 being ManySortedSet of b1
for b4 being ManySortedSubset of bool b3
      st b2 in b4
   holds b2 is ManySortedSubset of b3;

:: MSSUBFAM:th 34
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3, b4 being ManySortedSubset of bool b2 holds
b3 \/ b4 is ManySortedSubset of bool b2;

:: MSSUBFAM:th 35
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3, b4 being ManySortedSubset of bool b2 holds
b3 /\ b4 is ManySortedSubset of bool b2;

:: MSSUBFAM:th 36
theorem
for b1 being set
for b2, b3 being ManySortedSet of b1
for b4 being ManySortedSubset of bool b3 holds
   b4 \ b2 is ManySortedSubset of bool b3;

:: MSSUBFAM:th 37
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3, b4 being ManySortedSubset of bool b2 holds
b3 \+\ b4 is ManySortedSubset of bool b2;

:: MSSUBFAM:th 38
theorem
for b1 being set
for b2, b3 being ManySortedSet of b1
      st b2 c= b3
   holds {b2} is ManySortedSubset of bool b3;

:: MSSUBFAM:th 39
theorem
for b1 being set
for b2, b3, b4 being ManySortedSet of b1
      st b2 c= b3 & b4 c= b3
   holds {b2,b4} is ManySortedSubset of bool b3;

:: MSSUBFAM:th 40
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being ManySortedSubset of bool b2 holds
   union b3 c= b2;

:: MSSUBFAM:funcnot 5 => MSSUBFAM:func 5
definition
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be ManySortedSubset of bool a2;
  func meet A3 -> ManySortedSet of a1 means
    for b1 being set
          st b1 in a1
       holds ex b2 being Element of bool bool (a2 . b1) st
          b2 = a3 . b1 & it . b1 = Intersect b2;
end;

:: MSSUBFAM:def 2
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being ManySortedSubset of bool b2
for b4 being ManySortedSet of b1 holds
      b4 = meet b3
   iff
      for b5 being set
            st b5 in b1
         holds ex b6 being Element of bool bool (b2 . b5) st
            b6 = b3 . b5 & b4 . b5 = Intersect b6;

:: MSSUBFAM:funcnot 6 => MSSUBFAM:func 6
definition
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be ManySortedSubset of bool a2;
  redefine func meet a3 -> ManySortedSubset of a2;
end;

:: MSSUBFAM:th 41
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being ManySortedSubset of bool b2
      st b3 = [0] b1
   holds meet b3 = b2;

:: MSSUBFAM:th 42
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being non-empty ManySortedSubset of bool b2 holds
   meet b3 c= union b3;

:: MSSUBFAM:th 43
theorem
for b1 being set
for b2, b3 being ManySortedSet of b1
for b4 being ManySortedSubset of bool b2
      st b3 in b4
   holds meet b4 c= b3;

:: MSSUBFAM:th 44
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being ManySortedSubset of bool b2
      st [0] b1 in b3
   holds meet b3 = [0] b1;

:: MSSUBFAM:th 45
theorem
for b1 being set
for b2, b3 being ManySortedSet of b1
for b4 being non-empty ManySortedSubset of bool b3
      st for b5 being ManySortedSet of b1
              st b5 in b4
           holds b2 c= b5
   holds b2 c= meet b4;

:: MSSUBFAM:th 46
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3, b4 being ManySortedSubset of bool b2
      st b3 c= b4
   holds meet b4 c= meet b3;

:: MSSUBFAM:th 47
theorem
for b1 being set
for b2, b3, b4 being ManySortedSet of b1
for b5 being ManySortedSubset of bool b2
      st b3 in b5 & b3 c= b4
   holds meet b5 c= b4;

:: MSSUBFAM:th 48
theorem
for b1 being set
for b2, b3, b4 being ManySortedSet of b1
for b5 being ManySortedSubset of bool b2
      st b3 in b5 & b3 /\ b4 = [0] b1
   holds (meet b5) /\ b4 = [0] b1;

:: MSSUBFAM:th 49
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3, b4, b5 being ManySortedSubset of bool b2
      st b3 = b4 \/ b5
   holds meet b3 = (meet b4) /\ meet b5;

:: MSSUBFAM:th 50
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being ManySortedSubset of bool b2
for b4 being ManySortedSubset of b2
      st b3 = {b4}
   holds meet b3 = b4;

:: MSSUBFAM:th 51
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being ManySortedSubset of bool b2
for b4, b5 being ManySortedSubset of b2
      st b3 = {b4,b5}
   holds meet b3 = b4 /\ b5;

:: MSSUBFAM:th 52
theorem
for b1 being set
for b2, b3 being ManySortedSet of b1
for b4 being ManySortedSubset of bool b2
   st b3 in meet b4
for b5 being ManySortedSet of b1
      st b5 in b4
   holds b3 in b5;

:: MSSUBFAM:th 53
theorem
for b1 being set
for b2, b3 being ManySortedSet of b1
for b4 being non-empty ManySortedSubset of bool b3
      st b2 in b3 &
         (for b5 being ManySortedSet of b1
               st b5 in b4
            holds b2 in b5)
   holds b2 in meet b4;

:: MSSUBFAM:attrnot 1 => MSSUBFAM:attr 1
definition
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be ManySortedSubset of bool a2;
  attr a3 is additive means
    for b1, b2 being ManySortedSet of a1
          st b1 in a3 & b2 in a3
       holds b1 \/ b2 in a3;
end;

:: MSSUBFAM:dfs 2
definiens
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be ManySortedSubset of bool a2;
To prove
     a3 is additive
it is sufficient to prove
  thus for b1, b2 being ManySortedSet of a1
          st b1 in a3 & b2 in a3
       holds b1 \/ b2 in a3;

:: MSSUBFAM:def 3
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being ManySortedSubset of bool b2 holds
      b3 is additive(b1, b2)
   iff
      for b4, b5 being ManySortedSet of b1
            st b4 in b3 & b5 in b3
         holds b4 \/ b5 in b3;

:: MSSUBFAM:attrnot 2 => MSSUBFAM:attr 2
definition
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be ManySortedSubset of bool a2;
  attr a3 is absolutely-additive means
    for b1 being ManySortedSubset of bool a2
          st b1 c= a3
       holds union b1 in a3;
end;

:: MSSUBFAM:dfs 3
definiens
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be ManySortedSubset of bool a2;
To prove
     a3 is absolutely-additive
it is sufficient to prove
  thus for b1 being ManySortedSubset of bool a2
          st b1 c= a3
       holds union b1 in a3;

:: MSSUBFAM:def 4
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being ManySortedSubset of bool b2 holds
      b3 is absolutely-additive(b1, b2)
   iff
      for b4 being ManySortedSubset of bool b2
            st b4 c= b3
         holds union b4 in b3;

:: MSSUBFAM:attrnot 3 => MSSUBFAM:attr 3
definition
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be ManySortedSubset of bool a2;
  attr a3 is multiplicative means
    for b1, b2 being ManySortedSet of a1
          st b1 in a3 & b2 in a3
       holds b1 /\ b2 in a3;
end;

:: MSSUBFAM:dfs 4
definiens
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be ManySortedSubset of bool a2;
To prove
     a3 is multiplicative
it is sufficient to prove
  thus for b1, b2 being ManySortedSet of a1
          st b1 in a3 & b2 in a3
       holds b1 /\ b2 in a3;

:: MSSUBFAM:def 5
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being ManySortedSubset of bool b2 holds
      b3 is multiplicative(b1, b2)
   iff
      for b4, b5 being ManySortedSet of b1
            st b4 in b3 & b5 in b3
         holds b4 /\ b5 in b3;

:: MSSUBFAM:attrnot 4 => MSSUBFAM:attr 4
definition
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be ManySortedSubset of bool a2;
  attr a3 is absolutely-multiplicative means
    for b1 being ManySortedSubset of bool a2
          st b1 c= a3
       holds meet b1 in a3;
end;

:: MSSUBFAM:dfs 5
definiens
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be ManySortedSubset of bool a2;
To prove
     a3 is absolutely-multiplicative
it is sufficient to prove
  thus for b1 being ManySortedSubset of bool a2
          st b1 c= a3
       holds meet b1 in a3;

:: MSSUBFAM:def 6
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being ManySortedSubset of bool b2 holds
      b3 is absolutely-multiplicative(b1, b2)
   iff
      for b4 being ManySortedSubset of bool b2
            st b4 c= b3
         holds meet b4 in b3;

:: MSSUBFAM:attrnot 5 => MSSUBFAM:attr 5
definition
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be ManySortedSubset of bool a2;
  attr a3 is properly-upper-bound means
    a2 in a3;
end;

:: MSSUBFAM:dfs 6
definiens
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be ManySortedSubset of bool a2;
To prove
     a3 is properly-upper-bound
it is sufficient to prove
  thus a2 in a3;

:: MSSUBFAM:def 7
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being ManySortedSubset of bool b2 holds
      b3 is properly-upper-bound(b1, b2)
   iff
      b2 in b3;

:: MSSUBFAM:attrnot 6 => MSSUBFAM:attr 6
definition
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be ManySortedSubset of bool a2;
  attr a3 is properly-lower-bound means
    [0] a1 in a3;
end;

:: MSSUBFAM:dfs 7
definiens
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3 be ManySortedSubset of bool a2;
To prove
     a3 is properly-lower-bound
it is sufficient to prove
  thus [0] a1 in a3;

:: MSSUBFAM:def 8
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being ManySortedSubset of bool b2 holds
      b3 is properly-lower-bound(b1, b2)
   iff
      [0] b1 in b3;

:: MSSUBFAM:exreg 5
registration
  let a1 be set;
  let a2 be ManySortedSet of a1;
  cluster Relation-like non-empty Function-like additive absolutely-additive multiplicative absolutely-multiplicative properly-upper-bound properly-lower-bound ManySortedSubset of bool a2;
end;

:: MSSUBFAM:funcnot 7 => MSSUBFAM:func 7
definition
  let a1 be set;
  let a2 be ManySortedSet of a1;
  redefine func bool a2 -> additive absolutely-additive multiplicative absolutely-multiplicative properly-upper-bound properly-lower-bound ManySortedSubset of bool a2;
end;

:: MSSUBFAM:condreg 3
registration
  let a1 be set;
  let a2 be ManySortedSet of a1;
  cluster absolutely-additive -> additive (ManySortedSubset of bool a2);
end;

:: MSSUBFAM:condreg 4
registration
  let a1 be set;
  let a2 be ManySortedSet of a1;
  cluster absolutely-multiplicative -> multiplicative (ManySortedSubset of bool a2);
end;

:: MSSUBFAM:condreg 5
registration
  let a1 be set;
  let a2 be ManySortedSet of a1;
  cluster absolutely-multiplicative -> properly-upper-bound (ManySortedSubset of bool a2);
end;

:: MSSUBFAM:condreg 6
registration
  let a1 be set;
  let a2 be ManySortedSet of a1;
  cluster properly-upper-bound -> non-empty (ManySortedSubset of bool a2);
end;

:: MSSUBFAM:condreg 7
registration
  let a1 be set;
  let a2 be ManySortedSet of a1;
  cluster absolutely-additive -> properly-lower-bound (ManySortedSubset of bool a2);
end;

:: MSSUBFAM:condreg 8
registration
  let a1 be set;
  let a2 be ManySortedSet of a1;
  cluster properly-lower-bound -> non-empty (ManySortedSubset of bool a2);
end;