equal
deleted
inserted
replaced
80 val head_of_def = |
80 val head_of_def = |
81 Term.dest_Free o Term.head_of o #1 o Logic.dest_equals o Term.strip_all_body; |
81 Term.dest_Free o Term.head_of o #1 o Logic.dest_equals o Term.strip_all_body; |
82 |
82 |
83 |
83 |
84 (* |
84 (* |
85 [x, x == a] |
85 [x, x \<equiv> a] |
86 : |
86 : |
87 B x |
87 B x |
88 ----------- |
88 ----------- |
89 B a |
89 B a |
90 *) |
90 *) |
131 |
131 |
132 |
132 |
133 (* specific export -- result based on educated guessing *) |
133 (* specific export -- result based on educated guessing *) |
134 |
134 |
135 (* |
135 (* |
136 [xs, xs == as] |
136 [xs, xs \<equiv> as] |
137 : |
137 : |
138 B xs |
138 B xs |
139 -------------- |
139 -------------- |
140 B as |
140 B as |
141 *) |
141 *) |
156 else (Drule.abs_def (Variable.gen_all outer asm), true)) |
156 else (Drule.abs_def (Variable.gen_all outer asm), true)) |
157 end))); |
157 end))); |
158 in (apply2 (map #1) (List.partition #2 defs_asms), Assumption.export false inner outer th) end; |
158 in (apply2 (map #1) (List.partition #2 defs_asms), Assumption.export false inner outer th) end; |
159 |
159 |
160 (* |
160 (* |
161 [xs, xs == as] |
161 [xs, xs \<equiv> as] |
162 : |
162 : |
163 TERM b xs |
163 TERM b xs |
164 -------------- and -------------- |
164 -------------- and -------------- |
165 TERM b as b xs == b as |
165 TERM b as b xs \<equiv> b as |
166 *) |
166 *) |
167 fun export_cterm inner outer ct = |
167 fun export_cterm inner outer ct = |
168 export inner outer (Drule.mk_term ct) ||> Drule.dest_term; |
168 export inner outer (Drule.mk_term ct) ||> Drule.dest_term; |
169 |
169 |
170 fun contract ctxt defs ct th = |
170 fun contract ctxt defs ct th = |