(************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* Mode_tactic | Some _ -> Mode_proof let get_current_mode () = try mode_of_pftreestate (Pfedit.get_pftreestate ()) with Proof_global.NoCurrentProof -> Mode_none let check_not_proof_mode str = match get_current_mode () with | Mode_proof -> error str | _ -> () let get_info sigma gl= match Store.get (Goal.V82.extra sigma gl) info with | None -> invalid_arg "get_info" | Some pm -> pm let try_get_info sigma gl = Store.get (Goal.V82.extra sigma gl) info let get_stack pts = let { it = goals ; sigma = sigma } = Proof.V82.subgoals pts in let info = get_info sigma (List.hd goals) in info.pm_stack let proof_focus = Proof.new_focus_kind () let proof_cond = Proof.no_cond proof_focus let focus p = let inf = get_stack p in Proof_global.simple_with_current_proof (fun _ -> Proof.focus proof_cond inf 1) let unfocus () = Proof_global.simple_with_current_proof (fun _ p -> Proof.unfocus proof_focus p ()) let maximal_unfocus () = Proof_global.simple_with_current_proof (fun _ -> Proof.maximal_unfocus proof_focus) let get_top_stack pts = try Proof.get_at_focus proof_focus pts with Proof.NoSuchFocus -> let { it = gl ; sigma = sigma } = Proof.V82.top_goal pts in let info = get_info sigma gl in info.pm_stack let get_last env = match Environ.named_context env with | (id,_,_)::_ -> id | [] -> error "no previous statement to use"