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 Th107:
  e is ground iff variables_in e = {}
proof
  thus e is ground implies variables_in e = {}
  by Th1,XBOOLE_1:3;
  assume that
A1: variables_in e = {} and
A2: Union (C variables_in e) <> {};
  set x = the Element of Union (C variables_in e);
A3: ex y being object st ( y in dom (C variables_in e))&( x in (C
  variables_in e).y) by A2,CARD_5:2;
A4: dom (C variables_in e) = the carrier of C by PARTFUN1:def 2
    .= {a_Type, an_Adj, a_Term} by Def9;
A5: C variables_in e c= MSVars C by MSAFREE3:27;
A6: (MSVars C).an_Adj = {} by Def25;
A7: (MSVars C).a_Type = {} by Def25;
A8: (C variables_in e).an_Adj C c= {} by A5,A6;
  (C variables_in e).a_Type C c= {} by A5,A7;
  hence thesis by A1,A3,A4,A8,ENUMSET1:def 1;
end;
