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 Th69:
  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,Free(S,X)) holds
  h.(the_result_sort_of o).(Den(o,Free(S,X)).x)
  = h.(the_result_sort_of o).(Den(o,Free(S,X)).
  ((canonical_homomorphism A)#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,Free(S,X0));
    set k = canonical_homomorphism A;
A2: k#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,Free(S,X0)).x)
    = ((g.the_result_sort_of o)*((canonical_homomorphism A).
    the_result_sort_of o)).(Den(o,Free(S,X0)).x) by A1,MSUALG_3:2
    .= g.(the_result_sort_of o).((canonical_homomorphism A).
    (the_result_sort_of o).(Den(o,Free(S,X0)).x)) by MSUALG_9:18,FUNCT_2:15
    .= g.(the_result_sort_of o).
    (Den(o,A).(((canonical_homomorphism A))#x)) by Def10,MSUALG_3:def 7
    .= g.(the_result_sort_of o).((canonical_homomorphism A).
    (the_result_sort_of o).
    (Den(o,Free(S,X0)).(((canonical_homomorphism A))#x))) by Th67
    .= ((g.the_result_sort_of o)*((canonical_homomorphism A).
    the_result_sort_of o)).(Den(o,Free(S,X0)).(((canonical_homomorphism A))#x))
    by A2,MSUALG_9:18,FUNCT_2:15
    .= h.(the_result_sort_of o).(Den(o,Free(S,X0)).
    ((canonical_homomorphism A)#x)) by A1,MSUALG_3:2;
  end;
