reserve i for Nat,
  j for Element of NAT,
  X,Y,x,y,z for set;
reserve C for initialized ConstructorSignature,
  s for SortSymbol of C,
  o for OperSymbol of C,
  c for constructor OperSymbol of C;
reserve a,b for expression of C, an_Adj C;
reserve t, t1,t2 for expression of C, a_Type C;
reserve p for FinSequence of QuasiTerms C;
reserve e for expression of C;
reserve a,a9 for expression of C, an_Adj C;
reserve q for pure expression of C, a_Type C,
  A for finite Subset of QuasiAdjs C;
reserve T for quasi-type of C;
reserve f for valuation of C;
reserve x for variable;

theorem Th137:
  for X being Subset of Vars holds e at (C idval X) = e
proof
  set t = e;
  let X be Subset of Vars;
  set f = C idval X;
  defpred P[expression of C] means $1 at f = $1;
A1: for x being variable holds P[x-term C]
  proof
    let x be variable;
A2: x in X or x nin X;
A3: dom f = X by Th131;
    x in X implies f.x = x-term C by Th131;
    hence thesis by A2,A3,Def60;
  end;
A4: for c being constructor OperSymbol of C
  for p being FinSequence of QuasiTerms C
  st len p = len the_arity_of c &
  for t being quasi-term of C st t in rng p holds P[t]
  holds P[c-trm p]
  proof
    let c be constructor OperSymbol of C;
    let p be FinSequence of QuasiTerms C such that
A5: len p = len the_arity_of c and
A6: for t being quasi-term of C st t in rng p holds P[t];
    len (p at f) = len p by Th130;
    then
A7: dom (p at f) = dom p by FINSEQ_3:29;
    now
      let i be Nat;
      assume
A8:   i in dom p;
      then
A9:   p.i in rng p by FUNCT_1:def 3;
      rng p c= QuasiTerms C by FINSEQ_1:def 4;
      then reconsider pi1 = p.i as quasi-term of C by A9,Th41;
      (p at f).i = pi1 at f by A8,FUNCT_1:13;
      hence (p at f).i = p.i by A6,A9;
    end;
    then p at f = p by A7;
    hence thesis by A5,Def60;
  end;
A10: for a being expression of C, an_Adj C st P[a]
  holds P[(non_op C)term a] by Def60;
A11: for a being expression of C, an_Adj C st P[a]
  for t being expression of C, a_Type C st P[t]
  holds P[(ast C)term(a,t)] by Def60;
  thus P[t] from StructInd(A1,A4,A10,A11);
end;
