src/Pure/term.ML
changeset 19394 9f69613362c1
parent 19065 82e2d66f995b
child 19455 d828bfab05af
equal deleted inserted replaced
19393:78d6b7a01b12 19394:9f69613362c1
    82   val aconv: term * term -> bool
    82   val aconv: term * term -> bool
    83   val aconvs: term list * term list -> bool
    83   val aconvs: term list * term list -> bool
    84   structure Vartab: TABLE
    84   structure Vartab: TABLE
    85   structure Typtab: TABLE
    85   structure Typtab: TABLE
    86   structure Termtab: TABLE
    86   structure Termtab: TABLE
    87   val itselfT: typ -> typ
       
    88   val a_itselfT: typ
       
    89   val propT: typ
    87   val propT: typ
    90   val implies: term
    88   val implies: term
    91   val all: typ -> term
    89   val all: typ -> term
    92   val equals: typ -> term
    90   val equals: typ -> term
    93   val strip_all_body: term -> term
    91   val strip_all_body: term -> term
   160 end;
   158 end;
   161 
   159 
   162 signature TERM =
   160 signature TERM =
   163 sig
   161 sig
   164   include BASIC_TERM
   162   include BASIC_TERM
       
   163   val aT: sort -> typ
       
   164   val itselfT: typ -> typ
       
   165   val a_itselfT: typ
   165   val argument_type_of: term -> typ
   166   val argument_type_of: term -> typ
   166   val add_tvarsT: typ -> (indexname * sort) list -> (indexname * sort) list
   167   val add_tvarsT: typ -> (indexname * sort) list -> (indexname * sort) list
   167   val add_tvars: term -> (indexname * sort) list -> (indexname * sort) list
   168   val add_tvars: term -> (indexname * sort) list -> (indexname * sort) list
   168   val add_vars: term -> (indexname * typ) list -> (indexname * typ) list
   169   val add_vars: term -> (indexname * typ) list -> (indexname * typ) list
   169   val add_tfreesT: typ -> (string * sort) list -> (string * sort) list
   170   val add_tfreesT: typ -> (string * sort) list -> (string * sort) list
   693 end;
   694 end;
   694 
   695 
   695 
   696 
   696 (** Connectives of higher order logic **)
   697 (** Connectives of higher order logic **)
   697 
   698 
       
   699 fun aT S = TFree ("'a", S);
       
   700 
   698 fun itselfT ty = Type ("itself", [ty]);
   701 fun itselfT ty = Type ("itself", [ty]);
   699 val a_itselfT = itselfT (TFree ("'a", []));
   702 val a_itselfT = itselfT (TFree ("'a", []));
   700 
   703 
   701 val propT : typ = Type("prop",[]);
   704 val propT : typ = Type("prop",[]);
   702 
   705