src/HOL/Tools/Transfer/transfer_bnf.ML
changeset 60801 7664e0916eec
parent 60728 26ffdb966759
child 61348 d7215449be83
equal deleted inserted replaced
60799:57dd0b45fc21 60801:7664e0916eec
   357         val conjuncts = if is_eqn thm then thm |> get_rhs |> HOLogic.dest_conj else []
   357         val conjuncts = if is_eqn thm then thm |> get_rhs |> HOLogic.dest_conj else []
   358         val kill_top = Local_Defs.unfold lthy [kill_top2] #> Local_Defs.unfold lthy [kill_top1]
   358         val kill_top = Local_Defs.unfold lthy [kill_top2] #> Local_Defs.unfold lthy [kill_top1]
   359         val kill_True = Local_Defs.unfold lthy [@{thm HOL.simp_thms(21)}]
   359         val kill_True = Local_Defs.unfold lthy [@{thm HOL.simp_thms(21)}]
   360       in
   360       in
   361         thm
   361         thm
   362         |> Drule.instantiate' cTs cts
   362         |> Thm.instantiate' cTs cts
   363         |> Conv.fconv_rule (HOLogic.Trueprop_conv (Conv.arg_conv
   363         |> Conv.fconv_rule (HOLogic.Trueprop_conv (Conv.arg_conv
   364           (Raw_Simplifier.rewrite lthy false @{thms eq_onp_top_eq_eq[symmetric, THEN eq_reflection]})))
   364           (Raw_Simplifier.rewrite lthy false @{thms eq_onp_top_eq_eq[symmetric, THEN eq_reflection]})))
   365         |> Local_Defs.unfold lthy eq_onps
   365         |> Local_Defs.unfold lthy eq_onps
   366         |> (fn thm => if conjuncts <> [] then @{thm box_equals}
   366         |> (fn thm => if conjuncts <> [] then @{thm box_equals}
   367               OF [thm, @{thm eq_onp_same_args}, pred_eq_onp_conj conjuncts |> kill_True]
   367               OF [thm, @{thm eq_onp_same_args}, pred_eq_onp_conj conjuncts |> kill_True]