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 Th74:
  for B being non-empty MSAlgebra over S
  for h being ManySortedFunction of Free(S,X0),B
  st h is_homomorphism Free(S,X0),B
  for w being ManySortedFunction of X0, (the carrier of S)-->NAT st w is "1-1"
  for s being SortSymbol of S
  for t1,t2 being Element of Free(S,X0),s
  for t3,t4 being Element of TermAlg S, s st t3 = #(t1,w) & t4 = #(t2,w) holds
  B |= t3 '=' t4 implies h.s.t1 = h.s.t2
  proof
    let A be non-empty MSAlgebra over S;
    let h be ManySortedFunction of Free(S,X0),A;
    assume A1: h is_homomorphism Free(S,X0),A;
    let w be ManySortedFunction of X0, (the carrier of S)-->NAT;
    assume w is "1-1"; then
    consider g being ManySortedFunction of TermAlg S, Free(S,X0) such that
A2: g is_homomorphism TermAlg S, Free(S,X0) &
    for s being SortSymbol of S
    for t being Element of Free(S,X0),s holds g.s. #(t,w) = t by Th73;
    let s be SortSymbol of S;
    let t1,t2 be Element of Free(S,X0),s;
    let t3,t4 be Element of TermAlg S, s;
    assume A3: t3 = #(t1,w);
    assume A4: t4 = #(t2,w);
    assume A |= t3 '=' t4; then
A6: (h**g).s.(t3 '=' t4)`1 = (h**g).s.(t3 '=' t4)`2
    by A2,A1,MSUALG_3:10;
    (h**g).s = (h.s)*(g.s) by MSUALG_3:2; then
    (h**g).s.t3 = h.s.(g.s.t3) & (h**g).s.t4 = h.s.(g.s.t4) by FUNCT_2:15;
    hence h.s.t1 = h.s.(g.s.t4) by A2,A6,A3 .= h.s.t2 by A2,A4;
  end;
