Module Proof
type ttype data={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 : bool;polymorphism
}
val data : t -> dataval start : name:Names.Id.t -> poly:bool -> ?typing_flags:Declarations.typing_flags -> Evd.evar_map -> (Environ.env * EConstr.types) list -> tval dependent_start : name:Names.Id.t -> poly:bool -> ?typing_flags:Declarations.typing_flags -> Proofview.telescope -> tval is_done : t -> boolval is_complete : t -> boolval partial_proof : t -> EConstr.constr listval compact : t -> tval update_sigma_univs : UGraph.t -> t -> tupdate_sigma_univsliftsUState.update_sigma_univsto the proof
exceptionOpenProof of Names.Id.t option * open_error_reason
val return : ?pid:Names.Id.t -> t -> Evd.evar_map
val new_focus_kind : unit -> 'a focus_kind
val 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 : 'aa focus_condition -> 'a -> Names.Id.t -> t -> t
exceptionFullyUnfocusedexceptionCannotUnfocusThisWayexceptionNoSuchGoals of int * intexceptionNoSuchGoal of Names.Id.t option
val unfocus : 'a focus_kind -> t -> unit -> tval unfocused : t -> bool
val 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 * (bool * Proofview_monad.Info.tree) * 'aval maximal_unfocus : 'a focus_kind -> t -> tval unshelve : t -> tval goal_uid : Evar.t -> stringval pr_proof : t -> Pp.tval background_subgoals : t -> Evar.t listval all_goals : t -> Evar.Set.t
val solve : ?with_end_tac:unit Proofview.tactic -> Goal_select.t -> int option -> unit Proofview.tactic -> t -> t * boolval use_unification_heuristics : unit -> boolOption telling if unification heuristics should be used.
val refine_by_tactic : name:Names.Id.t -> poly:bool -> Environ.env -> Evd.evar_map -> EConstr.types -> unit Proofview.tactic -> Constr.constr * Evd.evar_mapA variant of the above function that handles open terms as well. Caveat: all effects are purged in the returned term at the end, but other evars solved by side-effects are NOT purged, so that unexpected failures may occur. Ideally all code using this function should be rewritten in the monad.
exceptionSuggestNoSuchGoals of int * t
val 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