src/HOL/Tools/Predicate_Compile/predicate_compile_proof.ML
changeset 62121 c8a93680b80d
parent 61424 c3658c18b7bc
child 62391 1658fc9b2618
equal deleted inserted replaced
62114:a7cf464933f7 62121:c8a93680b80d
   193         THEN trace_tac ctxt options "before single intro rule"
   193         THEN trace_tac ctxt options "before single intro rule"
   194         THEN Subgoal.FOCUS_PREMS
   194         THEN Subgoal.FOCUS_PREMS
   195            (fn {context = ctxt', prems, ...} =>
   195            (fn {context = ctxt', prems, ...} =>
   196             let
   196             let
   197               val prems' = maps dest_conjunct_prem (take nargs prems)
   197               val prems' = maps dest_conjunct_prem (take nargs prems)
       
   198                 |> filter is_equationlike
   198             in
   199             in
   199               rewrite_goal_tac ctxt' (map (fn th => th RS @{thm sym} RS @{thm eq_reflection}) prems') 1
   200               rewrite_goal_tac ctxt' (map (fn th => th RS @{thm sym} RS @{thm eq_reflection}) prems') 1
   200             end) ctxt 1
   201             end) ctxt 1
   201         THEN (resolve_tac ctxt [if null clause_out_ts then @{thm singleI_unit} else @{thm singleI}] 1)
   202         THEN (resolve_tac ctxt [if null clause_out_ts then @{thm singleI_unit} else @{thm singleI}] 1)
   202     | prove_prems out_ts ((p, deriv) :: ps) =
   203     | prove_prems out_ts ((p, deriv) :: ps) =