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;

theorem Th30:
  for A1,A2,B1 being MSAlgebra over S, B2 being non-empty MSAlgebra over S
  st the MSAlgebra of A1 = the MSAlgebra of A2 &
  the MSAlgebra of B1 = the MSAlgebra of B2
  for h1 being ManySortedFunction of A1,B1
  for h2 being ManySortedFunction of A2,B2 st h1 = h2 &
  h1 is_homomorphism A1,B1 holds h2 is_homomorphism A2,B2
  proof
    let A1,A2,B1 be MSAlgebra over S,B2 be non-empty MSAlgebra over S such that
A1: the MSAlgebra of A1 = the MSAlgebra of A2 &
    the MSAlgebra of B1 = the MSAlgebra of B2;
    let h1 be ManySortedFunction of A1,B1;
    let h2 be ManySortedFunction of A2,B2 such that
A2: h1 = h2 & h1 is_homomorphism A1,B1;
    let o be OperSymbol of S such that
A3: Args(o,A2) <> {};
    let x be Element of Args(o,A2);
    reconsider x1 = x as Element of Args(o,A1) by A1;
    thus (h2.(the_result_sort_of o)).(Den(o,A2).x)
    = (h1.(the_result_sort_of o)).(Den(o,A1).x1) by A1,A2
    .= Den(o,B1).(h1#x1) by A2,A1,A3
    .= Den(o,B2).(h2#x) by A1,A2,A3,INSTALG1:5;
  end;
