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;

theorem
  vars (A ast q) =
  (union {vars a where a is quasi-adjective of C: a in A}) \/ (vars q)
proof
  set X = {variables_in a where a is quasi-adjective of C: a in A};
  set Y = {vars a where a is quasi-adjective of C: a in A};
A1: union X c= union Y
  proof
    let x be object;
    assume x in union X;
    then consider Z being set such that
A2: x in Z and
A3: Z in X by TARSKI:def 4;
    consider a being quasi-adjective of C such that
A4: Z = variables_in a and
A5: a in A by A3;
A6: Z c= vars a by A4,Def1;
    vars a in Y by A5;
    hence thesis by A2,A6,TARSKI:def 4;
  end;
  for x,y st [x,y] in union Y holds x c= union Y
  proof
    let x,y;
    assume [x,y] in union Y;
    then consider Z being set such that
A7: [x,y] in Z and
A8: Z in Y by TARSKI:def 4;
    ex a being quasi-adjective of C st ( Z = vars a)&( a in A) by A8;
    then
A9: x c= Z by A7,Def1;
    Z c= union Y by A8,ZFMISC_1:74;
    hence thesis by A9;
  end;
  then
A10: varcl union X c= union Y by A1,Def1;
A11: union Y c= varcl union X
  proof
    let x be object;
    assume x in union Y;
    then consider Z being set such that
A12: x in Z and
A13: Z in Y by TARSKI:def 4;
    consider a being quasi-adjective of C such that
A14: Z = vars a and
A15: a in A by A13;
    variables_in a in X by A15;
    then vars a c= varcl union X by Th9,ZFMISC_1:74;
    hence thesis by A12,A14;
  end;
  thus vars (A ast q) = varcl((union X) \/ (variables_in q)) by Th104
    .= (varcl union X) \/ (vars q) by Th11
    .= (union Y) \/ (vars q) by A10,A11,XBOOLE_0:def 10;
end;
