348 val ctxt = Proof.context_of state |
348 val ctxt = Proof.context_of state |
349 val _ = List.app check_raw_param override_params |
349 val _ = List.app check_raw_param override_params |
350 val params as {blocking, debug, ...} = |
350 val params as {blocking, debug, ...} = |
351 extract_params ctxt mode (default_raw_params thy) override_params |
351 extract_params ctxt mode (default_raw_params thy) override_params |
352 fun go () = |
352 fun go () = |
353 (unknownN, state) |
353 (unknownN, []) |
354 |> (if mode = Auto_Try then perhaps o try |
354 |> (if mode = Auto_Try then perhaps o try |
355 else if debug then fn f => fn x => f x |
355 else if debug then fn f => fn x => f x |
356 else handle_exceptions ctxt) |
356 else handle_exceptions ctxt) |
357 (fn (_, state) => pick_nits_in_subgoal state params mode i step) |
357 (fn _ => pick_nits_in_subgoal state params mode i step) |
358 in if blocking then go () else Future.fork (tap go) |> K (unknownN, state) end |
358 in if blocking then go () else Future.fork (tap go) |> K (unknownN, []) end |
359 |> `(fn (outcome_code, _) => outcome_code = genuineN) |
359 |> `(fn (outcome_code, _) => outcome_code = genuineN) |
360 |
360 |
361 fun string_for_raw_param (name, value) = |
361 fun string_for_raw_param (name, value) = |
362 name ^ " = " ^ stringify_raw_param_value value |
362 name ^ " = " ^ stringify_raw_param_value value |
363 |
363 |