src/HOL/Tools/Predicate_Compile/predicate_compile_proof.ML
changeset 52230 1105b3b5aa77
parent 51717 9e7d1c139569
child 52732 b4da1f2ec73f
equal deleted inserted replaced
52228:ee8e3eaad24c 52230:1105b3b5aa77
   125           val (param, _) = strip_comb (HOLogic.dest_Trueprop (prop_of param_prem))
   125           val (param, _) = strip_comb (HOLogic.dest_Trueprop (prop_of param_prem))
   126           val prems' = maps dest_conjunct_prem (take nargs prems)
   126           val prems' = maps dest_conjunct_prem (take nargs prems)
   127           fun param_rewrite prem =
   127           fun param_rewrite prem =
   128             param = snd (HOLogic.dest_eq (HOLogic.dest_Trueprop (prop_of prem)))
   128             param = snd (HOLogic.dest_eq (HOLogic.dest_Trueprop (prop_of prem)))
   129           val SOME rew_eq = find_first param_rewrite prems'
   129           val SOME rew_eq = find_first param_rewrite prems'
   130           val param_prem' = Raw_Simplifier.rewrite_rule
   130           val param_prem' = rewrite_rule
   131             (map (fn th => th RS @{thm eq_reflection})
   131             (map (fn th => th RS @{thm eq_reflection})
   132               [rew_eq RS @{thm sym}, @{thm split_beta}, @{thm fst_conv}, @{thm snd_conv}])
   132               [rew_eq RS @{thm sym}, @{thm split_beta}, @{thm fst_conv}, @{thm snd_conv}])
   133             param_prem
   133             param_prem
   134         in
   134         in
   135           rtac param_prem' 1
   135           rtac param_prem' 1