389 (EVERY [rtac eq_reflection 1, rtac iffI 1, rtac notE 1, |
389 (EVERY [rtac eq_reflection 1, rtac iffI 1, rtac notE 1, |
390 atac 2, resolve_tac thms 1, etac FalseE 1])) |
390 atac 2, resolve_tac thms 1, etac FalseE 1])) |
391 | ManyConstrs (thm, simpset) => |
391 | ManyConstrs (thm, simpset) => |
392 let |
392 let |
393 val [In0_inject, In1_inject, In0_not_In1, In1_not_In0] = |
393 val [In0_inject, In1_inject, In0_not_In1, In1_not_In0] = |
394 map (fn a => get_thm (ThyInfo.the_theory "Datatype" thy) (Facts.Named (a, NONE))) |
394 map (PureThy.get_thm (ThyInfo.the_theory "Datatype" thy)) |
395 ["In0_inject", "In1_inject", "In0_not_In1", "In1_not_In0"]; |
395 ["In0_inject", "In1_inject", "In0_not_In1", "In1_not_In0"]; |
396 in |
396 in |
397 Goal.prove (Simplifier.the_context ss) [] [] eq_t (K |
397 Goal.prove (Simplifier.the_context ss) [] [] eq_t (K |
398 (EVERY [rtac eq_reflection 1, rtac iffI 1, dtac thm 1, |
398 (EVERY [rtac eq_reflection 1, rtac iffI 1, dtac thm 1, |
399 full_simp_tac (Simplifier.inherit_context ss simpset) 1, |
399 full_simp_tac (Simplifier.inherit_context ss simpset) 1, |