Article MSUALG_6, MML version 4.99.1005

:: MSUALG_6:modenot 1
definition
  let a1 be non empty ManySortedSign;
  let a2 be MSAlgebra over a1;
  let a3 be Element of the carrier of a1;
  mode Element of a2,a3 is Element of (the Sorts of a2) . a3;
end;

:: MSUALG_6:funcnot 1 => MSUALG_6:func 1
definition
  let a1 be set;
  let a2 be ManySortedSet of a1;
  let a3, a4 be ManySortedFunction of a2,a2;
  redefine func a4 ** a3 -> ManySortedFunction of a2,a2;
end;

:: MSUALG_6:th 1
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1
for b3 being Element of the OperSymbols of b1
for b4 being set
      st b4 in Args(b3,b2)
   holds b4 is Relation-like Function-like set;

:: MSUALG_6:th 2
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1
for b3 being Element of the OperSymbols of b1
for b4 being Relation-like Function-like set
      st b4 in Args(b3,b2)
   holds proj1 b4 = dom the_arity_of b3 &
    (for b5 being set
          st b5 in dom the_arity_of b3
       holds b4 . b5 in (the Sorts of b2) . ((the_arity_of b3) /. b5));

:: MSUALG_6:attrnot 1 => MSUALG_6:attr 1
definition
  let a1 be non empty non void ManySortedSign;
  let a2 be MSAlgebra over a1;
  attr a2 is feasible means
    for b1 being Element of the OperSymbols of a1
          st Args(b1,a2) <> {}
       holds Result(b1,a2) <> {};
end;

:: MSUALG_6:dfs 1
definiens
  let a1 be non empty non void ManySortedSign;
  let a2 be MSAlgebra over a1;
To prove
     a2 is feasible
it is sufficient to prove
  thus for b1 being Element of the OperSymbols of a1
          st Args(b1,a2) <> {}
       holds Result(b1,a2) <> {};

:: MSUALG_6:def 1
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1 holds
      b2 is feasible(b1)
   iff
      for b3 being Element of the OperSymbols of b1
            st Args(b3,b2) <> {}
         holds Result(b3,b2) <> {};

:: MSUALG_6:th 3
theorem
for b1 being non empty non void ManySortedSign
for b2 being Element of the OperSymbols of b1
for b3 being MSAlgebra over b1 holds
      Args(b2,b3) <> {}
   iff
      for b4 being Element of NAT
            st b4 in dom the_arity_of b2
         holds (the Sorts of b3) . ((the_arity_of b2) /. b4) <> {};

:: MSUALG_6:condreg 1
registration
  let a1 be non empty non void ManySortedSign;
  cluster non-empty -> feasible (MSAlgebra over a1);
end;

:: MSUALG_6:exreg 1
registration
  let a1 be non empty non void ManySortedSign;
  cluster non-empty MSAlgebra over a1;
end;

:: MSUALG_6:modenot 2 => MSUALG_6:mode 1
definition
  let a1 be non empty non void ManySortedSign;
  let a2 be MSAlgebra over a1;
  mode Endomorphism of A2 -> ManySortedFunction of the Sorts of a2,the Sorts of a2 means
    it is_homomorphism a2,a2;
end;

:: MSUALG_6:dfs 2
definiens
  let a1 be non empty non void ManySortedSign;
  let a2 be MSAlgebra over a1;
  let a3 be ManySortedFunction of the Sorts of a2,the Sorts of a2;
To prove
     a3 is Endomorphism of a2
it is sufficient to prove
  thus a3 is_homomorphism a2,a2;

:: MSUALG_6:def 2
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1
for b3 being ManySortedFunction of the Sorts of b2,the Sorts of b2 holds
      b3 is Endomorphism of b2
   iff
      b3 is_homomorphism b2,b2;

:: MSUALG_6:th 4
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1 holds
   id the Sorts of b2 is Endomorphism of b2;

:: MSUALG_6:th 5
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1
for b3, b4 being ManySortedFunction of the Sorts of b2,the Sorts of b2
for b5 being Element of the OperSymbols of b1
for b6 being Element of Args(b5,b2)
      st b6 in Args(b5,b2)
   holds b4 # (b3 # b6) = (b4 ** b3) # b6;

:: MSUALG_6:th 6
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1
for b3, b4 being Endomorphism of b2 holds
b4 ** b3 is Endomorphism of b2;

:: MSUALG_6:funcnot 2 => MSUALG_6:func 2
definition
  let a1 be non empty non void ManySortedSign;
  let a2 be MSAlgebra over a1;
  let a3, a4 be Endomorphism of a2;
  redefine func a4 ** a3 -> Endomorphism of a2;
end;

:: MSUALG_6:funcnot 3 => MSUALG_6:func 3
definition
  let a1 be non empty non void ManySortedSign;
  func TranslationRel A1 -> Relation of the carrier of a1,the carrier of a1 means
    for b1, b2 being Element of the carrier of a1 holds
       [b1,b2] in it
    iff
       ex b3 being Element of the OperSymbols of a1 st
          the_result_sort_of b3 = b2 &
           (ex b4 being Element of NAT st
              b4 in dom the_arity_of b3 & (the_arity_of b3) /. b4 = b1);
end;

:: MSUALG_6:def 3
theorem
for b1 being non empty non void ManySortedSign
for b2 being Relation of the carrier of b1,the carrier of b1 holds
      b2 = TranslationRel b1
   iff
      for b3, b4 being Element of the carrier of b1 holds
         [b3,b4] in b2
      iff
         ex b5 being Element of the OperSymbols of b1 st
            the_result_sort_of b5 = b4 &
             (ex b6 being Element of NAT st
                b6 in dom the_arity_of b5 & (the_arity_of b5) /. b6 = b3);

:: MSUALG_6:th 7
theorem
for b1 being non empty non void ManySortedSign
for b2 being Element of the OperSymbols of b1
for b3 being MSAlgebra over b1
for b4 being Relation-like Function-like set
   st b4 in Args(b2,b3)
for b5 being Element of NAT
for b6 being Element of (the Sorts of b3) . ((the_arity_of b2) /. b5) holds
   b4 +*(b5,b6) in Args(b2,b3);

:: MSUALG_6:th 8
theorem
for b1 being non empty non void ManySortedSign
for b2, b3 being MSAlgebra over b1
for b4 being ManySortedFunction of the Sorts of b2,the Sorts of b3
for b5 being Element of the OperSymbols of b1
   st Args(b5,b2) <> {} & Args(b5,b3) <> {}
for b6 being Element of NAT
   st b6 in dom the_arity_of b5
for b7 being Element of (the Sorts of b2) . ((the_arity_of b5) /. b6) holds
   (b4 . ((the_arity_of b5) /. b6)) . b7 in (the Sorts of b3) . ((the_arity_of b5) /. b6);

:: MSUALG_6:th 9
theorem
for b1 being non empty non void ManySortedSign
for b2 being Element of the OperSymbols of b1
for b3 being Element of NAT
   st b3 in dom the_arity_of b2
for b4, b5 being MSAlgebra over b1
for b6 being ManySortedFunction of the Sorts of b4,the Sorts of b5
for b7, b8 being Element of Args(b2,b4)
   st b7 in Args(b2,b4) & b6 # b7 in Args(b2,b5)
for b9, b10, b11 being Relation-like Function-like set
   st b9 = b7 & b10 = b6 # b7 & b11 = b6 # b8
for b12 being Element of (the Sorts of b4) . ((the_arity_of b2) /. b3)
      st b8 = b9 +*(b3,b12)
   holds b11 . b3 = (b6 . ((the_arity_of b2) /. b3)) . b12 &
    b6 # b8 = b10 +*(b3,b11 . b3);

:: MSUALG_6:funcnot 4 => MSUALG_6:func 4
definition
  let a1 be non empty non void ManySortedSign;
  let a2 be Element of the OperSymbols of a1;
  let a3 be Element of NAT;
  let a4 be MSAlgebra over a1;
  let a5 be Relation-like Function-like set;
  func transl(A2,A3,A5,A4) -> Relation-like Function-like set means
    proj1 it = (the Sorts of a4) . ((the_arity_of a2) /. a3) &
     (for b1 being set
           st b1 in (the Sorts of a4) . ((the_arity_of a2) /. a3)
        holds it . b1 = (Den(a2,a4)) . (a5 +*(a3,b1)));
end;

:: MSUALG_6:def 4
theorem
for b1 being non empty non void ManySortedSign
for b2 being Element of the OperSymbols of b1
for b3 being Element of NAT
for b4 being MSAlgebra over b1
for b5, b6 being Relation-like Function-like set holds
   b6 = transl(b2,b3,b5,b4)
iff
   proj1 b6 = (the Sorts of b4) . ((the_arity_of b2) /. b3) &
    (for b7 being set
          st b7 in (the Sorts of b4) . ((the_arity_of b2) /. b3)
       holds b6 . b7 = (Den(b2,b4)) . (b5 +*(b3,b7)));

:: MSUALG_6:th 10
theorem
for b1 being non empty non void ManySortedSign
for b2 being Element of the OperSymbols of b1
for b3 being Element of NAT
   st b3 in dom the_arity_of b2
for b4 being feasible MSAlgebra over b1
for b5 being Relation-like Function-like set
      st b5 in Args(b2,b4)
   holds transl(b2,b3,b5,b4) is Function-like quasi_total Relation of (the Sorts of b4) . ((the_arity_of b2) /. b3),(the Sorts of b4) . the_result_sort_of b2;

:: MSUALG_6:prednot 1 => MSUALG_6:pred 1
definition
  let a1 be non empty non void ManySortedSign;
  let a2, a3 be Element of the carrier of a1;
  let a4 be MSAlgebra over a1;
  let a5 be Relation-like Function-like set;
  pred A5 is_e.translation_of A4,A2,A3 means
    ex b1 being Element of the OperSymbols of a1 st
       the_result_sort_of b1 = a3 &
        (ex b2 being Element of NAT st
           b2 in dom the_arity_of b1 &
            (the_arity_of b1) /. b2 = a2 &
            (ex b3 being Relation-like Function-like set st
               b3 in Args(b1,a4) & a5 = transl(b1,b2,b3,a4)));
end;

:: MSUALG_6:dfs 5
definiens
  let a1 be non empty non void ManySortedSign;
  let a2, a3 be Element of the carrier of a1;
  let a4 be MSAlgebra over a1;
  let a5 be Relation-like Function-like set;
To prove
     a5 is_e.translation_of a4,a2,a3
it is sufficient to prove
  thus ex b1 being Element of the OperSymbols of a1 st
       the_result_sort_of b1 = a3 &
        (ex b2 being Element of NAT st
           b2 in dom the_arity_of b1 &
            (the_arity_of b1) /. b2 = a2 &
            (ex b3 being Relation-like Function-like set st
               b3 in Args(b1,a4) & a5 = transl(b1,b2,b3,a4)));

:: MSUALG_6:def 5
theorem
for b1 being non empty non void ManySortedSign
for b2, b3 being Element of the carrier of b1
for b4 being MSAlgebra over b1
for b5 being Relation-like Function-like set holds
      b5 is_e.translation_of b4,b2,b3
   iff
      ex b6 being Element of the OperSymbols of b1 st
         the_result_sort_of b6 = b3 &
          (ex b7 being Element of NAT st
             b7 in dom the_arity_of b6 &
              (the_arity_of b6) /. b7 = b2 &
              (ex b8 being Relation-like Function-like set st
                 b8 in Args(b6,b4) & b5 = transl(b6,b7,b8,b4)));

:: MSUALG_6:th 11
theorem
for b1 being non empty non void ManySortedSign
for b2, b3 being Element of the carrier of b1
for b4 being feasible MSAlgebra over b1
for b5 being Relation-like Function-like set
      st b5 is_e.translation_of b4,b2,b3
   holds b5 is Function-like quasi_total Relation of (the Sorts of b4) . b2,(the Sorts of b4) . b3 &
    (the Sorts of b4) . b2 <> {} &
    (the Sorts of b4) . b3 <> {};

:: MSUALG_6:th 12
theorem
for b1 being non empty non void ManySortedSign
for b2, b3 being Element of the carrier of b1
for b4 being MSAlgebra over b1
for b5 being Relation-like Function-like set
      st b5 is_e.translation_of b4,b2,b3
   holds [b2,b3] in TranslationRel b1;

:: MSUALG_6:th 13
theorem
for b1 being non empty non void ManySortedSign
for b2, b3 being Element of the carrier of b1
for b4 being non-empty MSAlgebra over b1
      st [b2,b3] in TranslationRel b1
   holds ex b5 being Relation-like Function-like set st
      b5 is_e.translation_of b4,b2,b3;

:: MSUALG_6:th 14
theorem
for b1 being non empty non void ManySortedSign
for b2 being feasible MSAlgebra over b1
for b3, b4 being Element of the carrier of b1
   st TranslationRel b1 reduces b3,b4
for b5 being RedSequence of TranslationRel b1
for b6 being Relation-like Function-like FinSequence-like Function-yielding set
      st len b5 = (len b6) + 1 &
         b3 = b5 . 1 &
         b4 = b5 . len b5 &
         (for b7 being Element of NAT
         for b8 being Relation-like Function-like set
         for b9, b10 being Element of the carrier of b1
               st b7 in dom b6 & b8 = b6 . b7 & b9 = b5 . b7 & b10 = b5 . (b7 + 1)
            holds b8 is_e.translation_of b2,b9,b10)
   holds compose(b6,(the Sorts of b2) . b3) is Function-like quasi_total Relation of (the Sorts of b2) . b3,(the Sorts of b2) . b4 &
    (b6 = {} or (the Sorts of b2) . b3 <> {} & (the Sorts of b2) . b4 <> {});

:: MSUALG_6:modenot 3 => MSUALG_6:mode 2
definition
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  let a3, a4 be Element of the carrier of a1;
  assume TranslationRel a1 reduces a3,a4;
  mode Translation of A2,A3,A4 -> Function-like quasi_total Relation of (the Sorts of a2) . a3,(the Sorts of a2) . a4 means
    ex b1 being RedSequence of TranslationRel a1 st
       ex b2 being Relation-like Function-like FinSequence-like Function-yielding set st
          it = compose(b2,(the Sorts of a2) . a3) &
           len b1 = (len b2) + 1 &
           a3 = b1 . 1 &
           a4 = b1 . len b1 &
           (for b3 being Element of NAT
           for b4 being Relation-like Function-like set
           for b5, b6 being Element of the carrier of a1
                 st b3 in dom b2 & b4 = b2 . b3 & b5 = b1 . b3 & b6 = b1 . (b3 + 1)
              holds b4 is_e.translation_of a2,b5,b6);
end;

:: MSUALG_6:dfs 6
definiens
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  let a3, a4 be Element of the carrier of a1;
  let a5 be Function-like quasi_total Relation of (the Sorts of a2) . a3,(the Sorts of a2) . a4;
To prove
     a5 is Translation of a2,a3,a4
it is sufficient to prove
thus TranslationRel a1 reduces a3,a4;
  thus ex b1 being RedSequence of TranslationRel a1 st
       ex b2 being Relation-like Function-like FinSequence-like Function-yielding set st
          a5 = compose(b2,(the Sorts of a2) . a3) &
           len b1 = (len b2) + 1 &
           a3 = b1 . 1 &
           a4 = b1 . len b1 &
           (for b3 being Element of NAT
           for b4 being Relation-like Function-like set
           for b5, b6 being Element of the carrier of a1
                 st b3 in dom b2 & b4 = b2 . b3 & b5 = b1 . b3 & b6 = b1 . (b3 + 1)
              holds b4 is_e.translation_of a2,b5,b6);

:: MSUALG_6:def 6
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3, b4 being Element of the carrier of b1
   st TranslationRel b1 reduces b3,b4
for b5 being Function-like quasi_total Relation of (the Sorts of b2) . b3,(the Sorts of b2) . b4 holds
      b5 is Translation of b2,b3,b4
   iff
      ex b6 being RedSequence of TranslationRel b1 st
         ex b7 being Relation-like Function-like FinSequence-like Function-yielding set st
            b5 = compose(b7,(the Sorts of b2) . b3) &
             len b6 = (len b7) + 1 &
             b3 = b6 . 1 &
             b4 = b6 . len b6 &
             (for b8 being Element of NAT
             for b9 being Relation-like Function-like set
             for b10, b11 being Element of the carrier of b1
                   st b8 in dom b7 & b9 = b7 . b8 & b10 = b6 . b8 & b11 = b6 . (b8 + 1)
                holds b9 is_e.translation_of b2,b10,b11);

:: MSUALG_6:th 15
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3, b4 being Element of the carrier of b1
   st TranslationRel b1 reduces b3,b4
for b5 being RedSequence of TranslationRel b1
for b6 being Relation-like Function-like FinSequence-like Function-yielding set
      st len b5 = (len b6) + 1 &
         b3 = b5 . 1 &
         b4 = b5 . len b5 &
         (for b7 being Element of NAT
         for b8 being Relation-like Function-like set
         for b9, b10 being Element of the carrier of b1
               st b7 in dom b6 & b8 = b6 . b7 & b9 = b5 . b7 & b10 = b5 . (b7 + 1)
            holds b8 is_e.translation_of b2,b9,b10)
   holds compose(b6,(the Sorts of b2) . b3) is Translation of b2,b3,b4;

:: MSUALG_6:th 16
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Element of the carrier of b1 holds
   id ((the Sorts of b2) . b3) is Translation of b2,b3,b3;

:: MSUALG_6:th 17
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3, b4 being Element of the carrier of b1
for b5 being Relation-like Function-like set
      st b5 is_e.translation_of b2,b3,b4
   holds TranslationRel b1 reduces b3,b4 & b5 is Translation of b2,b3,b4;

:: MSUALG_6:th 18
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3, b4, b5 being Element of the carrier of b1
   st TranslationRel b1 reduces b3,b4 & TranslationRel b1 reduces b4,b5
for b6 being Translation of b2,b3,b4
for b7 being Translation of b2,b4,b5 holds
   b7 * b6 is Translation of b2,b3,b5;

:: MSUALG_6:th 19
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3, b4, b5 being Element of the carrier of b1
   st TranslationRel b1 reduces b3,b4
for b6 being Translation of b2,b3,b4
for b7 being Relation-like Function-like set
      st b7 is_e.translation_of b2,b4,b5
   holds b6 * b7 is Translation of b2,b3,b5;

:: MSUALG_6:th 20
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3, b4, b5 being Element of the carrier of b1
   st TranslationRel b1 reduces b4,b5
for b6 being Relation-like Function-like set
   st b6 is_e.translation_of b2,b3,b4
for b7 being Translation of b2,b4,b5 holds
   b6 * b7 is Translation of b2,b3,b5;

:: MSUALG_6:sch 1
scheme MSUALG_6:sch 1
{F1 -> non empty non void ManySortedSign,
  F2 -> non-empty MSAlgebra over F1()}:
for b1, b2 being Element of the carrier of F1()
   st TranslationRel F1() reduces b1,b2
for b3 being Translation of F2(),b1,b2 holds
   P1[b3, b1, b2]
provided
   for b1 being Element of the carrier of F1() holds
      P1[id ((the Sorts of F2()) . b1), b1, b1]
and
   for b1, b2, b3 being Element of the carrier of F1()
      st TranslationRel F1() reduces b1,b2
   for b4 being Translation of F2(),b1,b2
      st P1[b4, b1, b2]
   for b5 being Relation-like Function-like set
         st b5 is_e.translation_of F2(),b2,b3
      holds P1[b4 * b5, b1, b3];


:: MSUALG_6:th 21
theorem
for b1 being non empty non void ManySortedSign
for b2, b3 being non-empty MSAlgebra over b1
for b4 being ManySortedFunction of the Sorts of b2,the Sorts of b3
   st b4 is_homomorphism b2,b3
for b5 being Element of the OperSymbols of b1
for b6 being Element of NAT
   st b6 in dom the_arity_of b5
for b7 being Element of Args(b5,b2) holds
   (transl(b5,b6,b7,b2)) * (b4 . the_result_sort_of b5) = (b4 . ((the_arity_of b5) /. b6)) * transl(b5,b6,b4 # b7,b3);

:: MSUALG_6:th 22
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Endomorphism of b2
for b4 being Element of the OperSymbols of b1
for b5 being Element of NAT
   st b5 in dom the_arity_of b4
for b6 being Element of Args(b4,b2) holds
   (transl(b4,b5,b6,b2)) * (b3 . the_result_sort_of b4) = (b3 . ((the_arity_of b4) /. b5)) * transl(b4,b5,b3 # b6,b2);

:: MSUALG_6:th 23
theorem
for b1 being non empty non void ManySortedSign
for b2, b3 being non-empty MSAlgebra over b1
for b4 being ManySortedFunction of the Sorts of b2,the Sorts of b3
   st b4 is_homomorphism b2,b3
for b5, b6 being Element of the carrier of b1
for b7 being Relation-like Function-like set
      st b7 is_e.translation_of b2,b5,b6
   holds ex b8 being Function-like quasi_total Relation of (the Sorts of b3) . b5,(the Sorts of b3) . b6 st
      b8 is_e.translation_of b3,b5,b6 &
       b8 * (b4 . b5) = b7 * (b4 . b6);

:: MSUALG_6:th 24
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Endomorphism of b2
for b4, b5 being Element of the carrier of b1
for b6 being Relation-like Function-like set
      st b6 is_e.translation_of b2,b4,b5
   holds ex b7 being Function-like quasi_total Relation of (the Sorts of b2) . b4,(the Sorts of b2) . b5 st
      b7 is_e.translation_of b2,b4,b5 &
       b7 * (b3 . b4) = b6 * (b3 . b5);

:: MSUALG_6:th 25
theorem
for b1 being non empty non void ManySortedSign
for b2, b3 being non-empty MSAlgebra over b1
for b4 being ManySortedFunction of the Sorts of b2,the Sorts of b3
   st b4 is_homomorphism b2,b3
for b5, b6 being Element of the carrier of b1
   st TranslationRel b1 reduces b5,b6
for b7 being Translation of b2,b5,b6 holds
   ex b8 being Translation of b3,b5,b6 st
      b8 * (b4 . b5) = (b4 . b6) * b7;

:: MSUALG_6:th 26
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Endomorphism of b2
for b4, b5 being Element of the carrier of b1
   st TranslationRel b1 reduces b4,b5
for b6 being Translation of b2,b4,b5 holds
   ex b7 being Translation of b2,b4,b5 st
      b7 * (b3 . b4) = (b3 . b5) * b6;

:: MSUALG_6:attrnot 2 => MSUALG_6:attr 2
definition
  let a1 be non empty non void ManySortedSign;
  let a2 be MSAlgebra over a1;
  let a3 be ManySortedRelation of the Sorts of a2,the Sorts of a2;
  attr a3 is compatible means
    for b1 being Element of the OperSymbols of a1
    for b2, b3 being Relation-like Function-like set
          st b2 in Args(b1,a2) &
             b3 in Args(b1,a2) &
             (for b4 being Element of NAT
                   st b4 in dom the_arity_of b1
                holds [b2 . b4,b3 . b4] in a3 . ((the_arity_of b1) /. b4))
       holds [(Den(b1,a2)) . b2,(Den(b1,a2)) . b3] in a3 . the_result_sort_of b1;
end;

:: MSUALG_6:dfs 7
definiens
  let a1 be non empty non void ManySortedSign;
  let a2 be MSAlgebra over a1;
  let a3 be ManySortedRelation of the Sorts of a2,the Sorts of a2;
To prove
     a3 is compatible
it is sufficient to prove
  thus for b1 being Element of the OperSymbols of a1
    for b2, b3 being Relation-like Function-like set
          st b2 in Args(b1,a2) &
             b3 in Args(b1,a2) &
             (for b4 being Element of NAT
                   st b4 in dom the_arity_of b1
                holds [b2 . b4,b3 . b4] in a3 . ((the_arity_of b1) /. b4))
       holds [(Den(b1,a2)) . b2,(Den(b1,a2)) . b3] in a3 . the_result_sort_of b1;

:: MSUALG_6:def 7
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
      b3 is compatible(b1, b2)
   iff
      for b4 being Element of the OperSymbols of b1
      for b5, b6 being Relation-like Function-like set
            st b5 in Args(b4,b2) &
               b6 in Args(b4,b2) &
               (for b7 being Element of NAT
                     st b7 in dom the_arity_of b4
                  holds [b5 . b7,b6 . b7] in b3 . ((the_arity_of b4) /. b7))
         holds [(Den(b4,b2)) . b5,(Den(b4,b2)) . b6] in b3 . the_result_sort_of b4;

:: MSUALG_6:attrnot 3 => MSUALG_6:attr 3
definition
  let a1 be non empty non void ManySortedSign;
  let a2 be MSAlgebra over a1;
  let a3 be ManySortedRelation of the Sorts of a2,the Sorts of a2;
  attr a3 is invariant means
    for b1, b2 being Element of the carrier of a1
    for b3 being Relation-like Function-like set
       st b3 is_e.translation_of a2,b1,b2
    for b4, b5 being set
          st [b4,b5] in a3 . b1
       holds [b3 . b4,b3 . b5] in a3 . b2;
end;

:: MSUALG_6:dfs 8
definiens
  let a1 be non empty non void ManySortedSign;
  let a2 be MSAlgebra over a1;
  let a3 be ManySortedRelation of the Sorts of a2,the Sorts of a2;
To prove
     a3 is invariant
it is sufficient to prove
  thus for b1, b2 being Element of the carrier of a1
    for b3 being Relation-like Function-like set
       st b3 is_e.translation_of a2,b1,b2
    for b4, b5 being set
          st [b4,b5] in a3 . b1
       holds [b3 . b4,b3 . b5] in a3 . b2;

:: MSUALG_6:def 8
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
      b3 is invariant(b1, b2)
   iff
      for b4, b5 being Element of the carrier of b1
      for b6 being Relation-like Function-like set
         st b6 is_e.translation_of b2,b4,b5
      for b7, b8 being set
            st [b7,b8] in b3 . b4
         holds [b6 . b7,b6 . b8] in b3 . b5;

:: MSUALG_6:attrnot 4 => MSUALG_6:attr 4
definition
  let a1 be non empty non void ManySortedSign;
  let a2 be MSAlgebra over a1;
  let a3 be ManySortedRelation of the Sorts of a2,the Sorts of a2;
  attr a3 is stable means
    for b1 being Endomorphism of a2
    for b2 being Element of the carrier of a1
    for b3, b4 being set
          st [b3,b4] in a3 . b2
       holds [(b1 . b2) . b3,(b1 . b2) . b4] in a3 . b2;
end;

:: MSUALG_6:dfs 9
definiens
  let a1 be non empty non void ManySortedSign;
  let a2 be MSAlgebra over a1;
  let a3 be ManySortedRelation of the Sorts of a2,the Sorts of a2;
To prove
     a3 is stable
it is sufficient to prove
  thus for b1 being Endomorphism of a2
    for b2 being Element of the carrier of a1
    for b3, b4 being set
          st [b3,b4] in a3 . b2
       holds [(b1 . b2) . b3,(b1 . b2) . b4] in a3 . b2;

:: MSUALG_6:def 9
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
      b3 is stable(b1, b2)
   iff
      for b4 being Endomorphism of b2
      for b5 being Element of the carrier of b1
      for b6, b7 being set
            st [b6,b7] in b3 . b5
         holds [(b4 . b5) . b6,(b4 . b5) . b7] in b3 . b5;

:: MSUALG_6:th 27
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being MSEquivalence-like ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
      b3 is compatible(b1, b2)
   iff
      b3 is MSEquivalence-like MSCongruence-like ManySortedRelation of the Sorts of b2,the Sorts of b2;

:: MSUALG_6:th 28
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
      b3 is invariant(b1, b2)
   iff
      for b4, b5 being Element of the carrier of b1
         st TranslationRel b1 reduces b4,b5
      for b6 being Translation of b2,b4,b5
      for b7, b8 being set
            st [b7,b8] in b3 . b4
         holds [b6 . b7,b6 . b8] in b3 . b5;

:: MSUALG_6:condreg 2
registration
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  cluster MSEquivalence-like invariant -> compatible (ManySortedRelation of the Sorts of a2,the Sorts of a2);
end;

:: MSUALG_6:condreg 3
registration
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  cluster MSEquivalence-like compatible -> invariant (ManySortedRelation of the Sorts of a2,the Sorts of a2);
end;

:: MSUALG_6:funcreg 1
registration
  let a1 be non empty set;
  cluster id a1 -> Relation-like non empty;
end;

:: MSUALG_6:sch 2
scheme MSUALG_6:sch 2
{F1 -> non empty set,
  F2 -> non-empty ManySortedSet of F1()}:
ex b1 being ManySortedRelation of F2(),F2() st
   for b2 being Element of F1()
   for b3, b4 being Element of F2() . b2 holds
      [b3,b4] in b1 . b2
   iff
      P1[b2, b3, b4]


:: MSUALG_6:sch 3
scheme MSUALG_6:sch 3
{F1 -> set,
  F2 -> ManySortedSet of F1(),
  F3 -> set}:
(ex b1 being ManySortedRelation of F2(),F2() st
    for b2 being set
          st b2 in F1()
       holds b1 . b2 = F3(b2)) &
 (for b1, b2 being ManySortedRelation of F2(),F2()
       st (for b3 being set
                st b3 in F1()
             holds b1 . b3 = F3(b3)) &
          (for b3 being set
                st b3 in F1()
             holds b2 . b3 = F3(b3))
    holds b1 = b2)
provided
   for b1 being set
         st b1 in F1()
      holds F3(b1) is Relation of F2() . b1,F2() . b1;


:: MSUALG_6:funcnot 5 => MSUALG_6:func 5
definition
  let a1 be set;
  let a2 be ManySortedSet of a1;
  func id(A1,A2) -> ManySortedRelation of a2,a2 means
    for b1 being set
          st b1 in a1
       holds it . b1 = id (a2 . b1);
end;

:: MSUALG_6:def 10
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being ManySortedRelation of b2,b2 holds
      b3 = id(b1,b2)
   iff
      for b4 being set
            st b4 in b1
         holds b3 . b4 = id (b2 . b4);

:: MSUALG_6:condreg 4
registration
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  cluster MSEquivalence-like -> non-empty (ManySortedRelation of the Sorts of a2,the Sorts of a2);
end;

:: MSUALG_6:exreg 2
registration
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  cluster Relation-like Function-like Relation-yielding MSEquivalence-like invariant stable ManySortedRelation of the Sorts of a2,the Sorts of a2;
end;

:: MSUALG_6:sch 4
scheme MSUALG_6:sch 4
{F1 -> non empty non void ManySortedSign,
  F2 -> non-empty MSAlgebra over F1(),
  F3 -> ManySortedRelation of the Sorts of F2(),the Sorts of F2(),
  F4 -> ManySortedRelation of the Sorts of F2(),the Sorts of F2()}:
P2[F4()] &
 F3() c= F4() &
 (for b1 being ManySortedRelation of the Sorts of F2(),the Sorts of F2()
       st P2[b1] & F3() c= b1
    holds F4() c= b1)
provided
   for b1 being ManySortedRelation of the Sorts of F2(),the Sorts of F2() holds
         P2[b1]
      iff
         for b2, b3 being Element of the carrier of F1()
         for b4 being Function-like quasi_total Relation of (the Sorts of F2()) . b2,(the Sorts of F2()) . b3
            st P1[b4, b2, b3]
         for b5, b6 being set
               st [b5,b6] in b1 . b2
            holds [b4 . b5,b4 . b6] in b1 . b3
and
   for b1, b2, b3 being Element of the carrier of F1()
   for b4 being Function-like quasi_total Relation of (the Sorts of F2()) . b1,(the Sorts of F2()) . b2
   for b5 being Function-like quasi_total Relation of (the Sorts of F2()) . b2,(the Sorts of F2()) . b3
         st P1[b4, b1, b2] & P1[b5, b2, b3]
      holds P1[b5 * b4, b1, b3]
and
   for b1 being Element of the carrier of F1() holds
      P1[id ((the Sorts of F2()) . b1), b1, b1]
and
   for b1 being Element of the carrier of F1()
   for b2, b3 being Element of (the Sorts of F2()) . b1 holds
      [b2,b3] in F4() . b1
   iff
      ex b4 being Element of the carrier of F1() st
         ex b5 being Function-like quasi_total Relation of (the Sorts of F2()) . b4,(the Sorts of F2()) . b1 st
            ex b6, b7 being Element of (the Sorts of F2()) . b4 st
               P1[b5, b4, b1] & [b6,b7] in F3() . b4 & b2 = b5 . b6 & b3 = b5 . b7;


:: MSUALG_6:funcnot 6 => MSUALG_6:func 6
definition
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  let a3 be ManySortedRelation of the Sorts of a2,the Sorts of a2;
  func InvCl A3 -> invariant ManySortedRelation of the Sorts of a2,the Sorts of a2 means
    a3 c= it &
     (for b1 being invariant ManySortedRelation of the Sorts of a2,the Sorts of a2
           st a3 c= b1
        holds it c= b1);
end;

:: MSUALG_6:def 11
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2
for b4 being invariant ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
      b4 = InvCl b3
   iff
      b3 c= b4 &
       (for b5 being invariant ManySortedRelation of the Sorts of b2,the Sorts of b2
             st b3 c= b5
          holds b4 c= b5);

:: MSUALG_6:th 29
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2
for b4 being Element of the carrier of b1
for b5, b6 being Element of (the Sorts of b2) . b4 holds
   [b5,b6] in (InvCl b3) . b4
iff
   ex b7 being Element of the carrier of b1 st
      ex b8, b9 being Element of (the Sorts of b2) . b7 st
         ex b10 being Translation of b2,b7,b4 st
            TranslationRel b1 reduces b7,b4 & [b8,b9] in b3 . b7 & b5 = b10 . b8 & b6 = b10 . b9;

:: MSUALG_6:th 30
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being stable ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
   InvCl b3 is stable(b1, b2);

:: MSUALG_6:funcnot 7 => MSUALG_6:func 7
definition
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  let a3 be ManySortedRelation of the Sorts of a2,the Sorts of a2;
  func StabCl A3 -> stable ManySortedRelation of the Sorts of a2,the Sorts of a2 means
    a3 c= it &
     (for b1 being stable ManySortedRelation of the Sorts of a2,the Sorts of a2
           st a3 c= b1
        holds it c= b1);
end;

:: MSUALG_6:def 12
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2
for b4 being stable ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
      b4 = StabCl b3
   iff
      b3 c= b4 &
       (for b5 being stable ManySortedRelation of the Sorts of b2,the Sorts of b2
             st b3 c= b5
          holds b4 c= b5);

:: MSUALG_6:th 31
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2
for b4 being Element of the carrier of b1
for b5, b6 being Element of (the Sorts of b2) . b4 holds
   [b5,b6] in (StabCl b3) . b4
iff
   ex b7, b8 being Element of (the Sorts of b2) . b4 st
      ex b9 being Endomorphism of b2 st
         [b7,b8] in b3 . b4 & b5 = (b9 . b4) . b7 & b6 = (b9 . b4) . b8;

:: MSUALG_6:th 32
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
   InvCl StabCl b3 is stable(b1, b2);

:: MSUALG_6:funcnot 8 => MSUALG_6:func 8
definition
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  let a3 be ManySortedRelation of the Sorts of a2,the Sorts of a2;
  func TRS A3 -> invariant stable ManySortedRelation of the Sorts of a2,the Sorts of a2 means
    a3 c= it &
     (for b1 being invariant stable ManySortedRelation of the Sorts of a2,the Sorts of a2
           st a3 c= b1
        holds it c= b1);
end;

:: MSUALG_6:def 13
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2
for b4 being invariant stable ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
      b4 = TRS b3
   iff
      b3 c= b4 &
       (for b5 being invariant stable ManySortedRelation of the Sorts of b2,the Sorts of b2
             st b3 c= b5
          holds b4 c= b5);

:: MSUALG_6:funcreg 2
registration
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  let a3 be non-empty ManySortedRelation of the Sorts of a2,the Sorts of a2;
  cluster InvCl a3 -> non-empty invariant;
end;

:: MSUALG_6:funcreg 3
registration
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  let a3 be non-empty ManySortedRelation of the Sorts of a2,the Sorts of a2;
  cluster StabCl a3 -> non-empty stable;
end;

:: MSUALG_6:funcreg 4
registration
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  let a3 be non-empty ManySortedRelation of the Sorts of a2,the Sorts of a2;
  cluster TRS a3 -> non-empty invariant stable;
end;

:: MSUALG_6:th 33
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being invariant ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
   InvCl b3 = b3;

:: MSUALG_6:th 34
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being stable ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
   StabCl b3 = b3;

:: MSUALG_6:th 35
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being invariant stable ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
   TRS b3 = b3;

:: MSUALG_6:th 36
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
   StabCl b3 c= TRS b3 & InvCl b3 c= TRS b3 & StabCl InvCl b3 c= TRS b3;

:: MSUALG_6:th 37
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
   InvCl StabCl b3 = TRS b3;

:: MSUALG_6:th 38
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2
for b4 being Element of the carrier of b1
for b5, b6 being Element of (the Sorts of b2) . b4 holds
   [b5,b6] in (TRS b3) . b4
iff
   ex b7 being Element of the carrier of b1 st
      TranslationRel b1 reduces b7,b4 &
       (ex b8, b9 being Element of (the Sorts of b2) . b7 st
          ex b10 being Endomorphism of b2 st
             ex b11 being Translation of b2,b7,b4 st
                [b8,b9] in b3 . b7 & b5 = b11 . ((b10 . b7) . b8) & b6 = b11 . ((b10 . b7) . b9));

:: MSUALG_6:th 39
theorem
for b1 being set
for b2, b3 being Relation of b1,b1
      st for b4, b5 being set
              st b4 in b1 & b5 in b1
           holds    [b4,b5] in b3
           iff
              b4,b5 are_convertible_wrt b2
   holds b3 is total(b1, b1) & b3 is symmetric & b3 is transitive;

:: MSUALG_6:th 40
theorem
for b1 being set
for b2 being Relation of b1,b1
for b3 being total symmetric transitive Relation of b1,b1
   st b2 c= b3
for b4, b5 being set
      st b4 in b1 & b5 in b1 & b4,b5 are_convertible_wrt b2
   holds [b4,b5] in b3;

:: MSUALG_6:th 41
theorem
for b1 being non empty set
for b2 being Relation of b1,b1
for b3, b4 being Element of b1 holds
   [b3,b4] in EqCl b2
iff
   b3,b4 are_convertible_wrt b2;

:: MSUALG_6:th 42
theorem
for b1 being non empty set
for b2 being non-empty ManySortedSet of b1
for b3 being ManySortedRelation of b2,b2
for b4 being Element of b1
for b5, b6 being Element of b2 . b4 holds
   [b5,b6] in (EqCl b3) . b4
iff
   b5,b6 are_convertible_wrt b3 . b4;

:: MSUALG_6:modenot 4
definition
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  mode EquationalTheory of a2 is MSEquivalence-like invariant stable ManySortedRelation of the Sorts of a2,the Sorts of a2;
end;

:: MSUALG_6:funcnot 9 => MSUALG_6:func 9
definition
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  let a3 be ManySortedRelation of the Sorts of a2,the Sorts of a2;
  func EqCl(A3,A2) -> MSEquivalence-like ManySortedRelation of the Sorts of a2,the Sorts of a2 equals
    EqCl a3;
end;

:: MSUALG_6:def 14
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
   EqCl(b3,b2) = EqCl b3;

:: MSUALG_6:th 43
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
   b3 c= EqCl(b3,b2);

:: MSUALG_6:th 44
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2
for b4 being MSEquivalence-like ManySortedRelation of the Sorts of b2,the Sorts of b2
      st b3 c= b4
   holds EqCl(b3,b2) c= b4;

:: MSUALG_6:th 45
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being stable ManySortedRelation of the Sorts of b2,the Sorts of b2
for b4 being Element of the carrier of b1
for b5, b6 being Element of (the Sorts of b2) . b4
   st b5,b6 are_convertible_wrt b3 . b4
for b7 being Endomorphism of b2 holds
   (b7 . b4) . b5,(b7 . b4) . b6 are_convertible_wrt b3 . b4;

:: MSUALG_6:th 46
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being stable ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
   EqCl(b3,b2) is stable(b1, b2);

:: MSUALG_6:funcreg 5
registration
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  let a3 be stable ManySortedRelation of the Sorts of a2,the Sorts of a2;
  cluster EqCl(a3,a2) -> MSEquivalence-like stable;
end;

:: MSUALG_6:th 47
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being invariant ManySortedRelation of the Sorts of b2,the Sorts of b2
for b4, b5 being Element of the carrier of b1
for b6, b7 being Element of (the Sorts of b2) . b4
   st b6,b7 are_convertible_wrt b3 . b4
for b8 being Relation-like Function-like set
      st b8 is_e.translation_of b2,b4,b5
   holds b8 . b6,b8 . b7 are_convertible_wrt b3 . b5;

:: MSUALG_6:th 48
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being invariant ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
   EqCl(b3,b2) is invariant(b1, b2);

:: MSUALG_6:funcreg 6
registration
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  let a3 be invariant ManySortedRelation of the Sorts of a2,the Sorts of a2;
  cluster EqCl(a3,a2) -> MSEquivalence-like invariant;
end;

:: MSUALG_6:th 49
theorem
for b1 being non empty set
for b2 being non-empty ManySortedSet of b1
for b3, b4 being ManySortedRelation of b2,b2
      st for b5 being Element of b1
        for b6, b7 being Element of b2 . b5 holds
           [b6,b7] in b4 . b5
        iff
           b6,b7 are_convertible_wrt b3 . b5
   holds b4 is MSEquivalence_Relation-like(b1, b2);

:: MSUALG_6:th 50
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3, b4 being ManySortedRelation of the Sorts of b2,the Sorts of b2
      st for b5 being Element of the carrier of b1
        for b6, b7 being Element of (the Sorts of b2) . b5 holds
           [b6,b7] in b4 . b5
        iff
           b6,b7 are_convertible_wrt (TRS b3) . b5
   holds b4 is MSEquivalence-like invariant stable ManySortedRelation of the Sorts of b2,the Sorts of b2;

:: MSUALG_6:th 51
theorem
for b1 being non empty set
for b2 being non-empty ManySortedSet of b1
for b3 being ManySortedRelation of b2,b2
for b4 being MSEquivalence_Relation-like ManySortedRelation of b2,b2
   st b3 c= b4
for b5 being Element of b1
for b6, b7 being Element of b2 . b5
      st b6,b7 are_convertible_wrt b3 . b5
   holds [b6,b7] in b4 . b5;

:: MSUALG_6:funcnot 10 => MSUALG_6:func 10
definition
  let a1 be non empty non void ManySortedSign;
  let a2 be non-empty MSAlgebra over a1;
  let a3 be ManySortedRelation of the Sorts of a2,the Sorts of a2;
  func EqTh A3 -> MSEquivalence-like invariant stable ManySortedRelation of the Sorts of a2,the Sorts of a2 means
    a3 c= it &
     (for b1 being MSEquivalence-like invariant stable ManySortedRelation of the Sorts of a2,the Sorts of a2
           st a3 c= b1
        holds it c= b1);
end;

:: MSUALG_6:def 15
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2
for b4 being MSEquivalence-like invariant stable ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
      b4 = EqTh b3
   iff
      b3 c= b4 &
       (for b5 being MSEquivalence-like invariant stable ManySortedRelation of the Sorts of b2,the Sorts of b2
             st b3 c= b5
          holds b4 c= b5);

:: MSUALG_6:th 52
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
   EqCl(b3,b2) c= EqTh b3 & InvCl b3 c= EqTh b3 & StabCl b3 c= EqTh b3 & TRS b3 c= EqTh b3;

:: MSUALG_6:th 53
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2
for b4 being Element of the carrier of b1
for b5, b6 being Element of (the Sorts of b2) . b4 holds
   [b5,b6] in (EqTh b3) . b4
iff
   b5,b6 are_convertible_wrt (TRS b3) . b4;

:: MSUALG_6:th 54
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being ManySortedRelation of the Sorts of b2,the Sorts of b2 holds
   EqTh b3 = EqCl(TRS b3,b2);