src/HOL/Tools/Nitpick/nitpick.ML
changeset 59582 0fbed69ff081
parent 59432 42b7b76b37b8
child 59970 e9f73d87d904
equal deleted inserted replaced
59580:cbc38731d42f 59582:0fbed69ff081
  1063   in (subst, other_assms, subst_atomic subst t) end
  1063   in (subst, other_assms, subst_atomic subst t) end
  1064 
  1064 
  1065 fun pick_nits_in_subgoal state params mode i step =
  1065 fun pick_nits_in_subgoal state params mode i step =
  1066   let
  1066   let
  1067     val ctxt = Proof.context_of state
  1067     val ctxt = Proof.context_of state
  1068     val t = state |> Proof.raw_goal |> #goal |> prop_of
  1068     val t = state |> Proof.raw_goal |> #goal |> Thm.prop_of
  1069   in
  1069   in
  1070     case Logic.count_prems t of
  1070     case Logic.count_prems t of
  1071       0 => (writeln "No subgoal!"; (noneN, []))
  1071       0 => (writeln "No subgoal!"; (noneN, []))
  1072     | n =>
  1072     | n =>
  1073       let
  1073       let
  1074         val t = Logic.goal_params t i |> fst
  1074         val t = Logic.goal_params t i |> fst
  1075         val assms = map term_of (Assumption.all_assms_of ctxt)
  1075         val assms = map Thm.term_of (Assumption.all_assms_of ctxt)
  1076         val (subst, assms, t) = extract_fixed_frees ctxt (assms, t)
  1076         val (subst, assms, t) = extract_fixed_frees ctxt (assms, t)
  1077       in pick_nits_in_term state params mode i n step subst [] assms t end
  1077       in pick_nits_in_term state params mode i n step subst [] assms t end
  1078   end
  1078   end
  1079 
  1079 
  1080 end;
  1080 end;