reserve S for non empty non void ManySortedSign,
  A for MSAlgebra over S;
reserve A for non-empty MSAlgebra over S;

theorem Th21:
  for A1,A2 being non-empty MSAlgebra over S for h being
  ManySortedFunction of A1,A2 st h is_homomorphism A1,A2 for o being OperSymbol
of S, i being Element of NAT st i in dom the_arity_of o for a being Element of
Args(o,A1) holds (h.the_result_sort_of o)*transl(o,i,a,A1) = transl(o,i,h#a,A2)
  *(h.((the_arity_of o)/.i))
proof
  let A1,A2 be non-empty MSAlgebra over S;
  let h be ManySortedFunction of A1,A2 such that
A1: h is_homomorphism A1,A2;
  let o be OperSymbol of S, i be Element of NAT such that
A2: i in dom the_arity_of o;
  let a be Element of Args(o,A1);
  set s1 = (the_arity_of o)/.i, s2 = the_result_sort_of o;
  reconsider T = transl(o,i,h#a,A2) as Function of (the Sorts of A2).s1, (the
  Sorts of A2).s2 by Th10;
  reconsider t = transl(o,i,a,A1) as Function of (the Sorts of A1).s1, (the
  Sorts of A1).s2 by Th10;
  now
    let x be Element of A1,s1;
    reconsider b = a+*(i,x) as Element of Args(o,A1) by Th7;
A3: h#b = (h#a)+*(i,(h#b).i) by A2,Th9;
    h#a in Args(o,A2);
    then
A4: (h#b).i = h.s1.x by A2,Th9;
    thus ((h.s2)*t).x = h.s2.(t.x) by FUNCT_2:15
      .= h.s2.(Den(o,A1).b) by Def4
      .= Den(o,A2).(h#a+*(i,(h.s1.x))) by A1,A4,A3
      .= T.(h.s1.x) by Def4
      .= (T*(h.s1)).x by FUNCT_2:15;
  end;
  hence thesis by FUNCT_2:63;
end;
