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 Th68:
  for h being ManySortedFunction of Free(S,X), A
  st h is_homomorphism Free(S,X), A
  for o being OperSymbol of S
  for x being Element of Args(o,A) holds
  h.(the_result_sort_of o).(Den(o,A).x)
  = h.(the_result_sort_of o).(Den(o,Free(S,X)).x)
  proof set X0 = X;
    let h be ManySortedFunction of Free(S,X0), A;
    assume h is_homomorphism Free(S,X0), A; then
    consider g being ManySortedFunction of A,A such that
A1: g is_homomorphism A,A & h = g**canonical_homomorphism A by Th65;
    let o be OperSymbol of S;
    let x be Element of Args(o,A);
A2: dom h = the carrier of S & dom canonical_homomorphism A = the carrier of S
    by PARTFUN1:def 2;
A3: dom (h**canonical_homomorphism A) = (dom h)/\dom canonical_homomorphism A
    by PBOOLE:def 19;
A4: x in Args(o,A) & Args(o,A) c= Args(o,Free(S,X0)) by Th41;
    thus h.(the_result_sort_of o).(Den(o,A).x)
    = h.(the_result_sort_of o).((canonical_homomorphism A).
    (the_result_sort_of o).(Den(o,Free(S,X0)).x)) by Th67
    .= ((h.the_result_sort_of o)*((canonical_homomorphism A).
    (the_result_sort_of o))).(Den(o,Free(S,X0)).x) by A4,MSUALG_9:18,FUNCT_2:15
    .= (h**canonical_homomorphism A).
    (the_result_sort_of o).(Den(o,Free(S,X0)).x) by A2,A3,PBOOLE:def 19
    .= (g**((canonical_homomorphism A)**(canonical_homomorphism A))).
    (the_result_sort_of o).(Den(o,Free(S,X0)).x) by A1,PBOOLE:140
    .= h.(the_result_sort_of o).(Den(o,Free(S,X0)).x) by A1,Th48;
  end;
