src/Pure/Isar/local_defs.ML
changeset 35717 1856c0172cf2
parent 35624 c4e29a0bb8c1
child 35739 35a3b3721ffb
equal deleted inserted replaced
35716:9dd4747d9591 35717:1856c0172cf2
    15     (term * (string * thm)) list * Proof.context
    15     (term * (string * thm)) list * Proof.context
    16   val add_def: (binding * mixfix) * term -> Proof.context -> (term * thm) * Proof.context
    16   val add_def: (binding * mixfix) * term -> Proof.context -> (term * thm) * Proof.context
    17   val fixed_abbrev: (binding * mixfix) * term -> Proof.context ->
    17   val fixed_abbrev: (binding * mixfix) * term -> Proof.context ->
    18     (term * term) * Proof.context
    18     (term * term) * Proof.context
    19   val export: Proof.context -> Proof.context -> thm -> thm list * thm
    19   val export: Proof.context -> Proof.context -> thm -> thm list * thm
    20   val export_cterm: Proof.context -> Proof.context -> cterm -> cterm * thm
    20   val export_cterm: Proof.context -> Proof.context -> cterm -> thm list * cterm
    21   val trans_terms: Proof.context -> thm list -> thm
    21   val trans_terms: Proof.context -> thm list -> thm
    22   val trans_props: Proof.context -> thm list -> thm
    22   val trans_props: Proof.context -> thm list -> thm
    23   val print_rules: Proof.context -> unit
    23   val print_rules: Proof.context -> unit
    24   val defn_add: attribute
    24   val defn_add: attribute
    25   val defn_del: attribute
    25   val defn_del: attribute
   153      TERM b xs
   153      TERM b xs
   154   --------------  and  --------------
   154   --------------  and  --------------
   155      TERM b as          b xs == b as
   155      TERM b as          b xs == b as
   156 *)
   156 *)
   157 fun export_cterm inner outer ct =
   157 fun export_cterm inner outer ct =
   158   let val (defs, ct') = export inner outer (Drule.mk_term ct) ||> Drule.dest_term
   158   export inner outer (Drule.mk_term ct) ||> Drule.dest_term;
   159   in (ct', MetaSimplifier.rewrite true defs ct) end;
       
   160 
   159 
   161 
   160 
   162 (* basic transitivity reasoning -- modulo beta-eta *)
   161 (* basic transitivity reasoning -- modulo beta-eta *)
   163 
   162 
   164 local
   163 local