equal
deleted
inserted
replaced
77 val atomize_goals = MetaSimplifier.rewrite_goals_rule Data.atomize; |
77 val atomize_goals = MetaSimplifier.rewrite_goals_rule Data.atomize; |
78 |
78 |
79 (* beta-eta contract the theorem *) |
79 (* beta-eta contract the theorem *) |
80 fun beta_eta_contract thm = |
80 fun beta_eta_contract thm = |
81 let |
81 let |
82 val thm2 = equal_elim (Thm.beta_conversion true (Thm.cprop_of thm)) thm |
82 val thm2 = Thm.equal_elim (Thm.beta_conversion true (Thm.cprop_of thm)) thm |
83 val thm3 = equal_elim (Thm.eta_conversion (Thm.cprop_of thm2)) thm2 |
83 val thm3 = Thm.equal_elim (Thm.eta_conversion (Thm.cprop_of thm2)) thm2 |
84 in thm3 end; |
84 in thm3 end; |
85 |
85 |
86 (* make a casethm from an induction thm *) |
86 (* make a casethm from an induction thm *) |
87 val cases_thm_of_induct_thm = |
87 val cases_thm_of_induct_thm = |
88 Seq.hd o (ALLGOALS (fn i => REPEAT (etac Drule.thin_rl i))); |
88 Seq.hd o (ALLGOALS (fn i => REPEAT (etac Drule.thin_rl i))); |