equal
deleted
inserted
replaced
9 sig |
9 sig |
10 type export |
10 type export |
11 val assume_export: export |
11 val assume_export: export |
12 val presume_export: export |
12 val presume_export: export |
13 val assume: cterm -> thm |
13 val assume: cterm -> thm |
14 val assms_of: Proof.context -> term list |
14 val assms_of: Proof.context -> cterm list |
15 val prems_of: Proof.context -> thm list |
15 val prems_of: Proof.context -> thm list |
16 val extra_hyps: Proof.context -> thm -> term list |
16 val extra_hyps: Proof.context -> thm -> term list |
17 val add_assms: export -> cterm list -> Proof.context -> thm list * Proof.context |
17 val add_assms: export -> cterm list -> Proof.context -> thm list * Proof.context |
18 val add_assumes: cterm list -> Proof.context -> thm list * Proof.context |
18 val add_assumes: cterm list -> Proof.context -> thm list * Proof.context |
19 val add_view: Proof.context -> cterm list -> Proof.context -> Proof.context |
19 val add_view: Proof.context -> cterm list -> Proof.context -> Proof.context |
71 |
71 |
72 fun map_data f = Data.map (fn Data {assms, prems} => make_data (f (assms, prems))); |
72 fun map_data f = Data.map (fn Data {assms, prems} => make_data (f (assms, prems))); |
73 fun rep_data ctxt = Data.get ctxt |> (fn Data args => args); |
73 fun rep_data ctxt = Data.get ctxt |> (fn Data args => args); |
74 |
74 |
75 val assumptions_of = #assms o rep_data; |
75 val assumptions_of = #assms o rep_data; |
76 val assms_of = map Thm.term_of o maps #2 o assumptions_of; |
76 val assms_of = maps #2 o assumptions_of; |
77 val prems_of = #prems o rep_data; |
77 val prems_of = #prems o rep_data; |
78 |
78 |
79 fun extra_hyps ctxt th = subtract (op aconv) (assms_of ctxt) (Thm.hyps_of th); |
79 fun extra_hyps ctxt th = subtract (op aconv) (map Thm.term_of (assms_of ctxt)) (Thm.hyps_of th); |
80 |
80 |
81 |
81 |
82 (* add assumptions *) |
82 (* add assumptions *) |
83 |
83 |
84 fun add_assms export new_asms = |
84 fun add_assms export new_asms = |