src/Pure/thm.ML
changeset 31945 d5f186aa0bed
parent 31944 c8a35979a5bc
child 31947 7daee3bed3af
equal deleted inserted replaced
31944:c8a35979a5bc 31945:d5f186aa0bed
    95   val of_class: ctyp * class -> thm
    95   val of_class: ctyp * class -> thm
    96   val unconstrainT: ctyp -> thm -> thm
    96   val unconstrainT: ctyp -> thm -> thm
    97   val dest_state: thm * int -> (term * term) list * term list * term * term
    97   val dest_state: thm * int -> (term * term) list * term list * term * term
    98   val lift_rule: cterm -> thm -> thm
    98   val lift_rule: cterm -> thm -> thm
    99   val incr_indexes: int -> thm -> thm
    99   val incr_indexes: int -> thm -> thm
   100   val assumption: int -> thm -> thm Seq.seq
       
   101   val eq_assumption: int -> thm -> thm
       
   102   val rotate_rule: int -> int -> thm -> thm
       
   103   val permute_prems: int -> int -> thm -> thm
       
   104   val rename_params_rule: string list * int -> thm -> thm
       
   105   val compose_no_flatten: bool -> thm * int -> int -> thm -> thm Seq.seq
       
   106   val bicompose: bool -> bool * thm * int -> int -> thm -> thm Seq.seq
       
   107   val biresolution: bool -> (bool * thm) list -> int -> thm -> thm Seq.seq
       
   108 end;
   100 end;
   109 
   101 
   110 signature THM =
   102 signature THM =
   111 sig
   103 sig
   112   include BASIC_THM
   104   include BASIC_THM
   115   val dest_fun: cterm -> cterm
   107   val dest_fun: cterm -> cterm
   116   val dest_arg: cterm -> cterm
   108   val dest_arg: cterm -> cterm
   117   val dest_fun2: cterm -> cterm
   109   val dest_fun2: cterm -> cterm
   118   val dest_arg1: cterm -> cterm
   110   val dest_arg1: cterm -> cterm
   119   val dest_abs: string option -> cterm -> cterm * cterm
   111   val dest_abs: string option -> cterm -> cterm * cterm
   120   val adjust_maxidx_cterm: int -> cterm -> cterm
       
   121   val capply: cterm -> cterm -> cterm
   112   val capply: cterm -> cterm -> cterm
   122   val cabs: cterm -> cterm -> cterm
   113   val cabs: cterm -> cterm -> cterm
   123   val major_prem_of: thm -> term
   114   val adjust_maxidx_cterm: int -> cterm -> cterm
   124   val no_prems: thm -> bool
   115   val incr_indexes_cterm: int -> cterm -> cterm
       
   116   val match: cterm * cterm -> (ctyp * ctyp) list * (cterm * cterm) list
       
   117   val first_order_match: cterm * cterm -> (ctyp * ctyp) list * (cterm * cterm) list
   125   val terms_of_tpairs: (term * term) list -> term list
   118   val terms_of_tpairs: (term * term) list -> term list
       
   119   val full_prop_of: thm -> term
   126   val maxidx_of: thm -> int
   120   val maxidx_of: thm -> int
   127   val maxidx_thm: thm -> int -> int
   121   val maxidx_thm: thm -> int -> int
   128   val hyps_of: thm -> term list
   122   val hyps_of: thm -> term list
   129   val full_prop_of: thm -> term
   123   val no_prems: thm -> bool
       
   124   val major_prem_of: thm -> term
   130   val axiom: theory -> string -> thm
   125   val axiom: theory -> string -> thm
   131   val axioms_of: theory -> (string * thm) list
   126   val axioms_of: theory -> (string * thm) list
   132   val get_name: thm -> string
       
   133   val put_name: string -> thm -> thm
       
   134   val get_tags: thm -> Properties.T
   127   val get_tags: thm -> Properties.T
   135   val map_tags: (Properties.T -> Properties.T) -> thm -> thm
   128   val map_tags: (Properties.T -> Properties.T) -> thm -> thm
   136   val norm_proof: thm -> thm
   129   val norm_proof: thm -> thm
   137   val adjust_maxidx_thm: int -> thm -> thm
   130   val adjust_maxidx_thm: int -> thm -> thm
   138   val rename_boundvars: term -> term -> thm -> thm
       
   139   val match: cterm * cterm -> (ctyp * ctyp) list * (cterm * cterm) list
       
   140   val first_order_match: cterm * cterm -> (ctyp * ctyp) list * (cterm * cterm) list
       
   141   val incr_indexes_cterm: int -> cterm -> cterm
       
   142   val varifyT: thm -> thm
   131   val varifyT: thm -> thm
   143   val varifyT': (string * sort) list -> thm -> ((string * sort) * indexname) list * thm
   132   val varifyT': (string * sort) list -> thm -> ((string * sort) * indexname) list * thm
   144   val freezeT: thm -> thm
   133   val freezeT: thm -> thm
       
   134   val assumption: int -> thm -> thm Seq.seq
       
   135   val eq_assumption: int -> thm -> thm
       
   136   val rotate_rule: int -> int -> thm -> thm
       
   137   val permute_prems: int -> int -> thm -> thm
       
   138   val rename_params_rule: string list * int -> thm -> thm
       
   139   val compose_no_flatten: bool -> thm * int -> int -> thm -> thm Seq.seq
       
   140   val bicompose: bool -> bool * thm * int -> int -> thm -> thm Seq.seq
       
   141   val biresolution: bool -> (bool * thm) list -> int -> thm -> thm Seq.seq
       
   142   val rename_boundvars: term -> term -> thm -> thm
   145   val future: thm future -> cterm -> thm
   143   val future: thm future -> cterm -> thm
   146   val pending_groups: thm -> Task_Queue.group list -> Task_Queue.group list
   144   val pending_groups: thm -> Task_Queue.group list -> Task_Queue.group list
   147   val status_of: thm -> {oracle: bool, unfinished: bool, failed: bool}
   145   val status_of: thm -> {oracle: bool, unfinished: bool, failed: bool}
   148   val proof_body_of: thm -> proof_body
   146   val proof_body_of: thm -> proof_body
   149   val proof_of: thm -> proof
   147   val proof_of: thm -> proof
   150   val join_proof: thm -> unit
   148   val join_proof: thm -> unit
       
   149   val get_name: thm -> string
       
   150   val put_name: string -> thm -> thm
   151   val extern_oracles: theory -> xstring list
   151   val extern_oracles: theory -> xstring list
   152   val add_oracle: binding * ('a -> cterm) -> theory -> (string * ('a -> thm)) * theory
   152   val add_oracle: binding * ('a -> cterm) -> theory -> (string * ('a -> thm)) * theory
   153 end;
   153 end;
   154 
   154 
   155 structure Thm:> THM =
   155 structure Thm:> THM =