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 Th80:
  for R being terminating with_UN_property invariant stable
  ManySortedRelation of Free(S,X)
  for g being ManySortedFunction of Free(S,X),Free(S,X)
  st g is_homomorphism Free(S,X),Free(S,X)
  for s being SortSymbol of S
  for a being Element of Free(S,X),s holds
  nf(g.s.nf(a,R.s), R.s) = nf(g.s.a, R.s)
  proof
    let R be terminating with_UN_property invariant stable
    ManySortedRelation of Free(S,X);
    let g be ManySortedFunction of Free(S,X),Free(S,X);
    assume g is_homomorphism Free(S,X),Free(S,X);
    then
A1: g is Endomorphism of Free(S,X) by MSUALG_6:def 2;
    let s be SortSymbol of S;
    let a be Element of Free(S,X),s;
    nf(a,R.s) is_a_normal_form_of a,R.s by REWRITE1:54;
    then
A2: R.s reduces a, nf(a,R.s);
    defpred P[set] means nf(g.s.nf(a,R.s), R.s) = nf(g.s.$1, R.s);
A3: P[nf(a,R.s)];
A4: for b,c being set st [b,c] in R.s & P[c] holds P[b]
    proof
      let b,c be set;
      assume A5: [b,c] in R.s;
      then reconsider x = b, y = c as Element of Free(S,X),s by ZFMISC_1:87;
A6:   [g.s.x,g.s.y] in R.s by A1,A5,MSUALG_6:def 9;
      assume P[c];
      hence P[b] by A6,REWRITE1:29,55;
    end;
    P[a] from B(A3,A2,A4);
    hence nf(g.s.nf(a,R.s), R.s) = nf(g.s.a, R.s);
  end;
