reserve U1,U2,U3 for Universal_Algebra,
  m,n for Nat,
  a for set,
  A for non empty set,
  h for Function of U1,U2;

theorem Th21:
  for U1,U2,h st U1,U2 are_similar holds MSAlg h is_homomorphism
  MSAlg U1,(MSAlg U2 Over MSSign U1) implies h is_homomorphism
proof
  let U1,U2,h such that
A1: U1,U2 are_similar;
A2: MSSign U1 = MSSign U2 by A1,Th10;
  set A = MSAlg U2 Over MSSign U1;
  set f = MSAlg h;
  assume
A3: f is_homomorphism MSAlg U1,A;
  thus U1,U2 are_similar by A1;
  let n be Nat;
  assume n in dom the charact of U1;
  then reconsider o = n as OperSymbol of MSSign U1 by Lm3;
  let O1 be operation of U1, O2 be operation of U2 such that
A4: O1 = (the charact of U1).n and
A5: O2 = (the charact of U2).n;
A6: O1 = Den(o,MSAlg U1) by A4,Th12;
  let x be FinSequence of U1;
  assume x in dom O1;
  then reconsider y = x as Element of Args(o,MSAlg U1) by A6,FUNCT_2:def 1;
A7: (f.(the_result_sort_of o)).(Den(o,MSAlg U1).y) = h.(O1.y) by A1,A6,Th11;
A8: (f.(the_result_sort_of o)).(Den(o,MSAlg U1).y) = Den(o,A).(f#y) by A3;
A9: MSAlg U2 = MSAlgebra(#MSSorts U2,MSCharact U2#) by MSUALG_1:def 11;
  Den(o,A) = ((the Charact of A).o) by MSUALG_1:def 6
    .= ((MSCharact U2).o) by A2,A9,Th9
    .= O2 by A5,MSUALG_1:def 10;
  hence thesis by A1,A7,A8,Th15;
end;
