equal
deleted
inserted
replaced
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 |