src/HOL/Tools/TFL/casesplit.ML
changeset 36945 9bec62c10714
parent 32952 aeb1e44fbc19
child 39159 0dec18004e75
equal deleted inserted replaced
36944:dbf831a50e4a 36945:9bec62c10714
    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)));