equal
deleted
inserted
replaced
347 THEN' etac @{thm conjE} |
347 THEN' etac @{thm conjE} |
348 THEN' REPEAT_DETERM o etac @{thm Pair_inject} |
348 THEN' REPEAT_DETERM o etac @{thm Pair_inject} |
349 THEN' Subgoal.FOCUS (fn {prems, ...} => |
349 THEN' Subgoal.FOCUS (fn {prems, ...} => |
350 Simplifier.simp_tac |
350 Simplifier.simp_tac |
351 (Simplifier.inherit_context ss (HOL_basic_ss addsimps (filter is_eq prems))) 1) ctxt |
351 (Simplifier.inherit_context ss (HOL_basic_ss addsimps (filter is_eq prems))) 1) ctxt |
352 THEN' atac |
352 THEN' TRY o atac |
353 in |
353 in |
354 case try mk_term (term_of ct) of |
354 case try mk_term (term_of ct) of |
355 NONE => Thm.reflexive ct |
355 NONE => Thm.reflexive ct |
356 | SOME t' => |
356 | SOME t' => |
357 Goal.prove ctxt [] [] (HOLogic.mk_Trueprop (HOLogic.mk_eq (term_of ct, t'))) |
357 Goal.prove ctxt [] [] (HOLogic.mk_Trueprop (HOLogic.mk_eq (term_of ct, t'))) |