aboutsummaryrefslogtreecommitdiff
path: root/vernac/declare.mli
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2020-06-23 22:47:53 +0200
committerEmilio Jesus Gallego Arias2020-06-26 14:38:13 +0200
commitd9dca86f798ce11861f1a4715763cad1aae28e5a (patch)
treeccf36789d7aa883fb227c90e957d2ceb2fb7098c /vernac/declare.mli
parent4a2c8653c0b2f5e73db769a8ea6bf79b76086524 (diff)
[declare] Remove Proof_ending from the public API
This completes the refactoring [for now] of the core `Declare` interface, and will allow much internal refactoring in the future. In particular, we remove the low-level Proof_ending type, and instead introduce higher-level constructors for the several declare users. Future PRs will change the internal representation of proof handling to better enforce some invariants that should hold for specific proofs.
Diffstat (limited to 'vernac/declare.mli')
-rw-r--r--vernac/declare.mli38
1 files changed, 15 insertions, 23 deletions
diff --git a/vernac/declare.mli b/vernac/declare.mli
index b6efa333b7..55bbcb9e1e 100644
--- a/vernac/declare.mli
+++ b/vernac/declare.mli
@@ -162,22 +162,6 @@ type obligation_resolver =
type obligation_qed_info = {name : Id.t; num : int; auto : obligation_resolver}
-(** Creating high-level proofs with an associated constant *)
-module Proof_ending : sig
-
- type t =
- | Regular
- | End_obligation of obligation_qed_info
- | End_derive of { f : Id.t; name : Id.t }
- | End_equations of
- { hook : Constant.t list -> Evd.evar_map -> unit
- ; i : Id.t
- ; types : (Environ.env * Evar.t * Evd.evar_info * EConstr.named_context * Evd.econstr) list
- ; sigma : Evd.evar_map
- }
-
-end
-
(** [Declare.Proof.t] Construction of constants using interactive proofs. *)
module Proof : sig
@@ -189,19 +173,27 @@ module Proof : sig
val start
: info:Info.t
-> cinfo:EConstr.t CInfo.t
- -> ?proof_ending:Proof_ending.t
-> Evd.evar_map
-> t
- (** Like [start] except that there may be dependencies between initial goals. *)
- val start_dependent
- : info:Info.t
- -> name:Id.t
+ (** [start_{derive,equations}] are functions meant to handle
+ interactive proofs with multiple goals, they should be considered
+ experimental until we provide a more general API encompassing
+ both of them. Please, get in touch with the developers if you
+ would like to experiment with multi-goal dependent proofs so we
+ can use your input on the design of the new API. *)
+ val start_derive : f:Id.t -> name:Id.t -> info:Info.t -> Proofview.telescope -> t
+
+ val start_equations :
+ name:Id.t
+ -> info:Info.t
+ -> hook:(Constant.t list -> Evd.evar_map -> unit)
+ -> types:(Environ.env * Evar.t * Evd.evar_info * EConstr.named_context * Evd.econstr) list
+ -> Evd.evar_map
-> Proofview.telescope
- -> proof_ending:Proof_ending.t
-> t
- (** Pretty much internal, used by the Lemmavernaculars *)
+ (** Pretty much internal, used by the Lemma vernaculars *)
val start_with_initialization
: info:Info.t
-> cinfo:Constr.t CInfo.t