Article MSALIMIT, MML version 4.99.1005

:: MSALIMIT:funcreg 1
registration
  let a1 be non empty set;
  let a2 be non empty non void ManySortedSign;
  let a3 be MSAlgebra-Family of a1,a2;
  let a4 be Element of a1;
  let a5 be Element of the OperSymbols of a2;
  cluster ((OPER a3) . a4) . a5 -> Relation-like Function-like;
end;

:: MSALIMIT:funcreg 2
registration
  let a1 be non empty set;
  let a2 be non empty non void ManySortedSign;
  let a3 be MSAlgebra-Family of a1,a2;
  let a4 be Element of the carrier of a2;
  cluster (SORTS a3) . a4 -> functional;
end;

:: MSALIMIT:modenot 1 => MSALIMIT:mode 1
definition
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be non empty non void ManySortedSign;
  mode OrderedAlgFam of A1,A2 -> MSAlgebra-Family of the carrier of a1,a2 means
    ex b1 being Function-yielding ManySortedSet of the InternalRel of a1 st
       for b2, b3, b4 being Element of the carrier of a1
             st b3 <= b2 & b4 <= b3
          holds ex b5 being ManySortedFunction of the Sorts of it . b2,the Sorts of it . b3 st
             ex b6 being ManySortedFunction of the Sorts of it . b3,the Sorts of it . b4 st
                b5 = b1 .(b3,b2) & b6 = b1 .(b4,b3) & b1 .(b4,b2) = b6 ** b5 & b5 is_homomorphism it . b2,it . b3;
end;

:: MSALIMIT:dfs 1
definiens
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be non empty non void ManySortedSign;
  let a3 be MSAlgebra-Family of the carrier of a1,a2;
To prove
     a3 is OrderedAlgFam of a1,a2
it is sufficient to prove
  thus ex b1 being Function-yielding ManySortedSet of the InternalRel of a1 st
       for b2, b3, b4 being Element of the carrier of a1
             st b3 <= b2 & b4 <= b3
          holds ex b5 being ManySortedFunction of the Sorts of a3 . b2,the Sorts of a3 . b3 st
             ex b6 being ManySortedFunction of the Sorts of a3 . b3,the Sorts of a3 . b4 st
                b5 = b1 .(b3,b2) & b6 = b1 .(b4,b3) & b1 .(b4,b2) = b6 ** b5 & b5 is_homomorphism a3 . b2,a3 . b3;

:: MSALIMIT:def 1
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being non empty non void ManySortedSign
for b3 being MSAlgebra-Family of the carrier of b1,b2 holds
      b3 is OrderedAlgFam of b1,b2
   iff
      ex b4 being Function-yielding ManySortedSet of the InternalRel of b1 st
         for b5, b6, b7 being Element of the carrier of b1
               st b6 <= b5 & b7 <= b6
            holds ex b8 being ManySortedFunction of the Sorts of b3 . b5,the Sorts of b3 . b6 st
               ex b9 being ManySortedFunction of the Sorts of b3 . b6,the Sorts of b3 . b7 st
                  b8 = b4 .(b6,b5) & b9 = b4 .(b7,b6) & b4 .(b7,b5) = b9 ** b8 & b8 is_homomorphism b3 . b5,b3 . b6;

:: MSALIMIT:modenot 2 => MSALIMIT:mode 2
definition
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be non empty non void ManySortedSign;
  let a3 be OrderedAlgFam of a1,a2;
  mode Binding of A3 -> Function-yielding ManySortedSet of the InternalRel of a1 means
    for b1, b2, b3 being Element of the carrier of a1
          st b2 <= b1 & b3 <= b2
       holds ex b4 being ManySortedFunction of the Sorts of a3 . b1,the Sorts of a3 . b2 st
          ex b5 being ManySortedFunction of the Sorts of a3 . b2,the Sorts of a3 . b3 st
             b4 = it .(b2,b1) & b5 = it .(b3,b2) & it .(b3,b1) = b5 ** b4 & b4 is_homomorphism a3 . b1,a3 . b2;
end;

:: MSALIMIT:dfs 2
definiens
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be non empty non void ManySortedSign;
  let a3 be OrderedAlgFam of a1,a2;
  let a4 be Function-yielding ManySortedSet of the InternalRel of a1;
To prove
     a4 is Binding of a3
it is sufficient to prove
  thus for b1, b2, b3 being Element of the carrier of a1
          st b2 <= b1 & b3 <= b2
       holds ex b4 being ManySortedFunction of the Sorts of a3 . b1,the Sorts of a3 . b2 st
          ex b5 being ManySortedFunction of the Sorts of a3 . b2,the Sorts of a3 . b3 st
             b4 = a4 .(b2,b1) & b5 = a4 .(b3,b2) & a4 .(b3,b1) = b5 ** b4 & b4 is_homomorphism a3 . b1,a3 . b2;

:: MSALIMIT:def 2
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being non empty non void ManySortedSign
for b3 being OrderedAlgFam of b1,b2
for b4 being Function-yielding ManySortedSet of the InternalRel of b1 holds
      b4 is Binding of b3
   iff
      for b5, b6, b7 being Element of the carrier of b1
            st b6 <= b5 & b7 <= b6
         holds ex b8 being ManySortedFunction of the Sorts of b3 . b5,the Sorts of b3 . b6 st
            ex b9 being ManySortedFunction of the Sorts of b3 . b6,the Sorts of b3 . b7 st
               b8 = b4 .(b6,b5) & b9 = b4 .(b7,b6) & b4 .(b7,b5) = b9 ** b8 & b8 is_homomorphism b3 . b5,b3 . b6;

:: MSALIMIT:funcnot 1 => MSALIMIT:func 1
definition
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be non empty non void ManySortedSign;
  let a3 be OrderedAlgFam of a1,a2;
  let a4 be Binding of a3;
  let a5, a6 be Element of the carrier of a1;
  assume a6 <= a5;
  func bind(A4,A5,A6) -> ManySortedFunction of the Sorts of a3 . a5,the Sorts of a3 . a6 equals
    a4 .(a6,a5);
end;

:: MSALIMIT:def 3
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being non empty non void ManySortedSign
for b3 being OrderedAlgFam of b1,b2
for b4 being Binding of b3
for b5, b6 being Element of the carrier of b1
      st b6 <= b5
   holds bind(b4,b5,b6) = b4 .(b6,b5);

:: MSALIMIT:th 1
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2, b3, b4 being Element of the carrier of b1
for b5 being non empty non void ManySortedSign
for b6 being OrderedAlgFam of b1,b5
for b7 being Binding of b6
      st b3 <= b2 & b4 <= b3
   holds (bind(b7,b3,b4)) ** bind(b7,b2,b3) = bind(b7,b2,b4);

:: MSALIMIT:attrnot 1 => MSALIMIT:attr 1
definition
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be non empty non void ManySortedSign;
  let a3 be OrderedAlgFam of a1,a2;
  let a4 be Binding of a3;
  attr a4 is normalized means
    for b1 being Element of the carrier of a1 holds
       a4 .(b1,b1) = id the Sorts of a3 . b1;
end;

:: MSALIMIT:dfs 4
definiens
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be non empty non void ManySortedSign;
  let a3 be OrderedAlgFam of a1,a2;
  let a4 be Binding of a3;
To prove
     a4 is normalized
it is sufficient to prove
  thus for b1 being Element of the carrier of a1 holds
       a4 .(b1,b1) = id the Sorts of a3 . b1;

:: MSALIMIT:def 4
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being non empty non void ManySortedSign
for b3 being OrderedAlgFam of b1,b2
for b4 being Binding of b3 holds
      b4 is normalized(b1, b2, b3)
   iff
      for b5 being Element of the carrier of b1 holds
         b4 .(b5,b5) = id the Sorts of b3 . b5;

:: MSALIMIT:th 2
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being non empty non void ManySortedSign
for b3 being OrderedAlgFam of b1,b2
for b4 being Binding of b3
for b5, b6 being Element of the carrier of b1
   st b6 <= b5
for b7 being ManySortedFunction of the Sorts of b3 . b5,the Sorts of b3 . b6
      st b7 = bind(b4,b5,b6)
   holds b7 is_homomorphism b3 . b5,b3 . b6;

:: MSALIMIT:funcnot 2 => MSALIMIT:func 2
definition
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be non empty non void ManySortedSign;
  let a3 be OrderedAlgFam of a1,a2;
  let a4 be Binding of a3;
  func Normalized A4 -> Binding of a3 means
    for b1, b2 being Element of the carrier of a1
          st b2 <= b1
       holds it .(b2,b1) = IFEQ(b2,b1,id the Sorts of a3 . b1,(bind(a4,b1,b2)) ** id the Sorts of a3 . b1);
end;

:: MSALIMIT:def 5
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being non empty non void ManySortedSign
for b3 being OrderedAlgFam of b1,b2
for b4, b5 being Binding of b3 holds
   b5 = Normalized b4
iff
   for b6, b7 being Element of the carrier of b1
         st b7 <= b6
      holds b5 .(b7,b6) = IFEQ(b7,b6,id the Sorts of b3 . b6,(bind(b4,b6,b7)) ** id the Sorts of b3 . b6);

:: MSALIMIT:th 3
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being non empty non void ManySortedSign
for b3 being OrderedAlgFam of b1,b2
for b4 being Binding of b3
for b5, b6 being Element of the carrier of b1
      st b6 <= b5 & b5 <> b6
   holds b4 .(b6,b5) = (Normalized b4) .(b6,b5);

:: MSALIMIT:funcreg 3
registration
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be non empty non void ManySortedSign;
  let a3 be OrderedAlgFam of a1,a2;
  let a4 be Binding of a3;
  cluster Normalized a4 -> normalized;
end;

:: MSALIMIT:exreg 1
registration
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be non empty non void ManySortedSign;
  let a3 be OrderedAlgFam of a1,a2;
  cluster Relation-like Function-like Function-yielding normalized Binding of a3;
end;

:: MSALIMIT:th 4
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being non empty non void ManySortedSign
for b3 being OrderedAlgFam of b1,b2
for b4 being normalized Binding of b3
for b5, b6 being Element of the carrier of b1
      st b6 <= b5
   holds (Normalized b4) .(b6,b5) = b4 .(b6,b5);

:: MSALIMIT:funcnot 3 => MSALIMIT:func 3
definition
  let a1 be non empty reflexive transitive antisymmetric RelStr;
  let a2 be non empty non void ManySortedSign;
  let a3 be OrderedAlgFam of a1,a2;
  let a4 be Binding of a3;
  func InvLim A4 -> strict MSSubAlgebra of product a3 means
    for b1 being Element of the carrier of a2
    for b2 being Element of (SORTS a3) . b1 holds
          b2 in (the Sorts of it) . b1
       iff
          for b3, b4 being Element of the carrier of a1
                st b4 <= b3
             holds ((bind(a4,b3,b4)) . b1) . (b2 . b3) = b2 . b4;
end;

:: MSALIMIT:def 6
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being non empty non void ManySortedSign
for b3 being OrderedAlgFam of b1,b2
for b4 being Binding of b3
for b5 being strict MSSubAlgebra of product b3 holds
      b5 = InvLim b4
   iff
      for b6 being Element of the carrier of b2
      for b7 being Element of (SORTS b3) . b6 holds
            b7 in (the Sorts of b5) . b6
         iff
            for b8, b9 being Element of the carrier of b1
                  st b9 <= b8
               holds ((bind(b4,b8,b9)) . b6) . (b7 . b8) = b7 . b9;

:: MSALIMIT:th 5
theorem
for b1 being non empty reflexive transitive antisymmetric discrete RelStr
for b2 being non empty non void ManySortedSign
for b3 being OrderedAlgFam of b1,b2
for b4 being normalized Binding of b3 holds
   InvLim b4 = product b3;

:: MSALIMIT:attrnot 2 => MSALIMIT:attr 2
definition
  let a1 be set;
  attr a1 is MSS-membered means
    for b1 being set
          st b1 in a1
       holds b1 is non empty strict non void ManySortedSign;
end;

:: MSALIMIT:dfs 7
definiens
  let a1 be set;
To prove
     a1 is MSS-membered
it is sufficient to prove
  thus for b1 being set
          st b1 in a1
       holds b1 is non empty strict non void ManySortedSign;

:: MSALIMIT:def 7
theorem
for b1 being set holds
      b1 is MSS-membered
   iff
      for b2 being set
            st b2 in b1
         holds b2 is non empty strict non void ManySortedSign;

:: MSALIMIT:exreg 2
registration
  cluster non empty MSS-membered set;
end;

:: MSALIMIT:funcnot 4 => MSALIMIT:func 4
definition
  func TrivialMSSign -> strict ManySortedSign means
    it is empty & it is void;
end;

:: MSALIMIT:def 8
theorem
for b1 being strict ManySortedSign holds
      b1 = TrivialMSSign
   iff
      b1 is empty & b1 is void;

:: MSALIMIT:funcreg 4
registration
  cluster TrivialMSSign -> empty strict void;
end;

:: MSALIMIT:exreg 3
registration
  cluster empty strict void ManySortedSign;
end;

:: MSALIMIT:th 6
theorem
for b1 being void ManySortedSign holds
   id the carrier of b1,id the OperSymbols of b1 form_morphism_between b1,b1;

:: MSALIMIT:funcnot 5 => MSALIMIT:func 5
definition
  let a1 be non empty set;
  func MSS_set A1 -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2 being non empty strict non void ManySortedSign st
             b1 = b2 & the carrier of b2 c= a1 & the OperSymbols of b2 c= a1;
end;

:: MSALIMIT:def 9
theorem
for b1 being non empty set
for b2 being set holds
      b2 = MSS_set b1
   iff
      for b3 being set holds
            b3 in b2
         iff
            ex b4 being non empty strict non void ManySortedSign st
               b3 = b4 & the carrier of b4 c= b1 & the OperSymbols of b4 c= b1;

:: MSALIMIT:funcreg 5
registration
  let a1 be non empty set;
  cluster MSS_set a1 -> non empty MSS-membered;
end;

:: MSALIMIT:modenot 3 => MSALIMIT:mode 3
definition
  let a1 be non empty MSS-membered set;
  redefine mode Element of a1 -> non empty strict non void ManySortedSign;
end;

:: MSALIMIT:funcnot 6 => MSALIMIT:func 6
definition
  let a1, a2 be ManySortedSign;
  func MSS_morph(A1,A2) -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2, b3 being Relation-like Function-like set st
             b1 = [b2,b3] & b2,b3 form_morphism_between a1,a2;
end;

:: MSALIMIT:def 10
theorem
for b1, b2 being ManySortedSign
for b3 being set holds
      b3 = MSS_morph(b1,b2)
   iff
      for b4 being set holds
            b4 in b3
         iff
            ex b5, b6 being Relation-like Function-like set st
               b4 = [b5,b6] & b5,b6 form_morphism_between b1,b2;