src/HOL/Statespace/distinct_tree_prover.ML
changeset 60754 02924903a6fd
parent 60642 48dd1cefb4ae
child 61144 5e94dfead1c2
equal deleted inserted replaced
60753:80ca4a065a48 60754:02924903a6fd
   343 fun distinctTree_tac names ctxt = SUBGOAL (fn (goal, i) =>
   343 fun distinctTree_tac names ctxt = SUBGOAL (fn (goal, i) =>
   344     (case goal of
   344     (case goal of
   345       Const (@{const_name Trueprop}, _) $
   345       Const (@{const_name Trueprop}, _) $
   346           (Const (@{const_name Not}, _) $ (Const (@{const_name HOL.eq}, _) $ x $ y)) =>
   346           (Const (@{const_name Not}, _) $ (Const (@{const_name HOL.eq}, _) $ x $ y)) =>
   347         (case get_fst_success (neq_x_y ctxt x y) names of
   347         (case get_fst_success (neq_x_y ctxt x y) names of
   348           SOME neq => rtac neq i
   348           SOME neq => resolve_tac ctxt [neq] i
   349         | NONE => no_tac)
   349         | NONE => no_tac)
   350     | _ => no_tac))
   350     | _ => no_tac))
   351 
   351 
   352 fun distinctFieldSolver names =
   352 fun distinctFieldSolver names =
   353   mk_solver "distinctFieldSolver" (distinctTree_tac names);
   353   mk_solver "distinctFieldSolver" (distinctTree_tac names);