reserve S for non void non empty ManySortedSign,
  V for non-empty ManySortedSet of the carrier of S;
reserve A for MSAlgebra over S,
  t for Term of S,V;
reserve S for non void non empty ManySortedSign,
  A for non-empty MSAlgebra over S,
  V for Variables of A,
  t for c-Term of A,V,
  f for ManySortedFunction of V, the Sorts of A;

theorem Th32:
  for s being SortSymbol of S, v being Element of V.s st t =
  root-tree [v,s] holds root-tree (f.s.v) is_an_evaluation_of t,f
proof
  let s be SortSymbol of S, x be Element of V.s such that
A1: t = root-tree [x,s];
  set vt = root-tree (f.s.x);
A2: dom vt = elementary_tree 0 by TREES_4:3;
  hence dom vt = dom t by A1,TREES_4:3;
  let p be Node of vt;
  reconsider e = p as empty FinSequence of NAT by A2,TARSKI:def 1,TREES_1:29;
A3: t.{} = [x,s] by A1,TREES_4:3;
  hereby
    let s1 be SortSymbol of S, x1 be Element of V.s1;
A4: e = p;
    assume t.p = [x1,s1];
    then
A5: [x1,s1] = t.e;
    then
A6: s = s1 by A3,XTUPLE_0:1;
    x = x1 by A3,A5,XTUPLE_0:1;
    hence vt.p = f.s1.x1 by A6,A4,TREES_4:3;
  end;
  hereby
    let s1 be SortSymbol of S, v be Element of (the Sorts of A).s1;
    assume t.p = [v,s1];
    then
A7: [v,s1] = t.e .= [x,s] by A1,TREES_4:3;
    then
A8: x = v by XTUPLE_0:1;
    s = s1 by A7,XTUPLE_0:1;
    hence vt.p = v by A8,Th30;
  end;
  let o be OperSymbol of S;
  assume t.p = [o,the carrier of S];
  then the carrier of S = (t.e)`2
    .= s by A3;
  hence vt.p = Den(o, A).succ(vt,p) by Lm7;
end;
