reserve S for non empty non void ManySortedSign;
reserve X for non-empty ManySortedSet of S;
reserve x,y,z for set, i,j for Nat;
reserve
  A0 for (X,S)-terms non-empty MSAlgebra over S,
  A1 for all_vars_including (X,S)-terms MSAlgebra over S,
  A2 for all_vars_including inheriting_operations (X,S)-terms MSAlgebra over S,
  A for all_vars_including inheriting_operations free_in_itself
  (X,S)-terms MSAlgebra over S;
reserve X0 for non-empty countable ManySortedSet of S;
reserve A0 for all_vars_including inheriting_operations free_in_itself
  (X0,S)-terms MSAlgebra over S;

theorem
  for w being ManySortedFunction of X0, (the carrier of S)-->NAT
  for o being OperSymbol of S
  for p being Element of Args(o,Free(S,X0))
  for q being Element of Args(o,A0) st (canonical_homomorphism A0)#p = q
  for t1,t2 being Term of S,X0 st t1 = Den(o,Free(S,X0)).p & t2 = Den(o,A0).q
  for t3,t4 being Element of TermAlg S, the_result_sort_of o
  st t3 = #(t1,w) & t4 = #(t2,w) holds
  A0 |= t3 '=' t4
  proof set A = A0;
    let w be ManySortedFunction of X0, (the carrier of S)-->NAT;
    set Y = (the carrier of S)-->NAT;
    let o be OperSymbol of S;
    let p be Element of Args(o,Free(S,X0));
    let q be Element of Args(o,A) such that
A1: (canonical_homomorphism A)#p = q;
    Free(S,X0) = FreeMSA X0 by MSAFREE3:31;
    then reconsider p0 = p as ArgumentSeq of Sym(o,X0) by INSTALG1:1;
    let t1,t2 be Term of S,X0 such that
A2: t1 = Den(o,Free(S,X0)).p & t2 = Den(o,A).q;
    let t3,t4 be Element of TermAlg S, the_result_sort_of o;
    assume
A3: t3 = #(t1,w) & t4 = #(t2,w);
    reconsider t1 as Element of Free(S,X0),the_result_sort_of o
    by A2,MSUALG_9:18;
    t2 = (canonical_homomorphism A).(the_result_sort_of o).t1
    by A1,A2,Def10,MSUALG_3:def 7;
    hence A |= t3 '=' t4 by A3,Th71;
  end;
