equal
deleted
inserted
replaced
222 fun stac th = |
222 fun stac th = |
223 let val th' = th RS Data.rev_eq_reflection handle THM _ => th |
223 let val th' = th RS Data.rev_eq_reflection handle THM _ => th |
224 in CHANGED_GOAL (rtac (th' RS ssubst)) end; |
224 in CHANGED_GOAL (rtac (th' RS ssubst)) end; |
225 |
225 |
226 |
226 |
227 (* proof methods *) |
|
228 |
|
229 val subst_meth = Method.thm_args (Method.SIMPLE_METHOD' HEADGOAL o stac); |
|
230 val hyp_subst_meth = |
|
231 Method.no_args (Method.SIMPLE_METHOD' HEADGOAL (CHANGED_PROP o hyp_subst_tac)); |
|
232 |
|
233 |
|
234 (* theory setup *) |
227 (* theory setup *) |
235 |
228 |
236 val hypsubst_setup = |
229 val hypsubst_setup = |
237 Method.add_methods |
230 Method.add_methods |
238 [("hypsubst", hyp_subst_meth, "substitution using an assumption (improper)"), |
231 [("hypsubst", Method.no_args (Method.SIMPLE_METHOD' (CHANGED_PROP o hyp_subst_tac)), |
239 ("simplesubst", subst_meth, "simple substitution")]; |
232 "substitution using an assumption (improper)"), |
240 |
233 ("simplesubst", Method.thm_args (Method.SIMPLE_METHOD' o stac), "simple substitution")]; |
241 end; |
234 |
|
235 end; |