Prooftype data = private {sigma : Evd.evar_map;A representation of the evar_map EJGA wouldn't it better to just return the proofview?
goals : Evar.t list;Focused goals
*)entry : Proofview.entry;Entry for the proofview
*)stack : (Evar.t list * Evar.t list) list;A representation of the focus stack
*)name : Names.Id.t;The name of the theorem whose proof is being constructed
*)poly : PolyFlags.t;Universe polymorphism
*)}val start :
name:Names.Id.t ->
poly:PolyFlags.t ->
?typing_flags:Declarations.typing_flags ->
Evd.evar_map ->
(Environ.env * EConstr.types) list ->
tval dependent_start :
name:Names.Id.t ->
poly:PolyFlags.t ->
?typing_flags:Declarations.typing_flags ->
Proofview.telescope ->
tval is_done : t -> boolval partial_proof : t -> EConstr.constr listupdate_sigma_univs lifts UState.update_sigma_univs to the proof
val new_focus_kind : string -> 'a focus_kindval no_cond : ?loose_end:bool -> 'a focus_kind -> 'a focus_conditionval done_cond : ?loose_end:bool -> 'a focus_kind -> 'a focus_conditionval focus : 'a focus_condition -> 'a -> int -> t -> tval focus_id : 'a focus_condition -> 'a -> Libnames.qualid -> t -> texception NoSuchGoal of Libnames.qualid optionval unfocus : 'a focus_kind -> t -> unit -> tval unfocused : t -> boolval get_at_focus : 'a focus_kind -> t -> 'aval is_last_focus : 'a focus_kind -> t -> boolval no_focused_goal : t -> boolval run_tactic :
Environ.env ->
'a Proofview.tactic ->
t ->
t * (Environ.env * bool * Proofview_monad.Info.tree) * 'aval maximal_unfocus : 'a focus_kind -> t -> tval goal_uid : Evar.t -> stringval all_goals : t -> Evar.Set.tsolve (select_nth n) tac applies tactic tac to the nth subgoal of the current focused proof. solve SelectAll tac applies tac to all subgoals.
val solve :
?with_end_tac:unit Proofview.tactic ->
Environ.env ->
Goal_select.t ->
int option ->
unit Proofview.tactic ->
t ->
t * boolOption telling if unification heuristics should be used.
exception SuggestNoSuchGoals of int * tval get_goal_context_gen : t -> int -> Evd.evar_map * Environ.envHelpers to obtain proof state when in an interactive proof
val get_proof_context : t -> Evd.evar_map * Environ.envget_proof_context () gets the goal context for the first subgoal of the proof
val purge_side_effects : t -> t * Evd.side_effects