aboutsummaryrefslogtreecommitdiff
path: root/vernac/vernacentries.ml
diff options
context:
space:
mode:
Diffstat (limited to 'vernac/vernacentries.ml')
-rw-r--r--vernac/vernacentries.ml13
1 files changed, 8 insertions, 5 deletions
diff --git a/vernac/vernacentries.ml b/vernac/vernacentries.ml
index 3ead8663ce..284df19b4c 100644
--- a/vernac/vernacentries.ml
+++ b/vernac/vernacentries.ml
@@ -616,15 +616,18 @@ let vernac_start_proof ~atts ~pstate kind l =
List.iter (fun ((id, _), _) -> Dumpglob.dump_definition id false "prf") l;
Some (start_proof_and_print ~pstate ~program_mode:atts.program (local, atts.polymorphic, Proof kind) l)
-let vernac_end_proof ~pstate ?proof = function
- | Admitted -> save_proof ~pstate ?proof Admitted
- | Proved (_,_) as e -> save_proof ~pstate ?proof e
+let vernac_end_proof ?pstate ?proof = function
+ | Admitted ->
+ vernac_require_open_proof ~pstate (save_proof_admitted ?proof);
+ pstate
+ | Proved (opaque,idopt) ->
+ save_proof_proved ?pstate ?proof ~opaque ~idopt
let vernac_exact_proof ~pstate c =
(* spiwack: for simplicity I do not enforce that "Proof proof_term" is
called only at the begining of a proof. *)
let pstate, status = Pfedit.by (Tactics.exact_proof c) pstate in
- let pstate = save_proof ~pstate (Vernacexpr.(Proved(Proof_global.Opaque,None))) in
+ let pstate = save_proof_proved ?proof:None ~pstate ~opaque:Proof_global.Opaque ~idopt:None in
if not status then Feedback.feedback Feedback.AddedAxiom;
pstate
@@ -2270,7 +2273,7 @@ let interp ?proof ~atts ~st c : Proof_global.t option =
with_def_attributes ~atts vernac_start_proof ~pstate k l
| VernacEndProof e ->
unsupported_attributes atts;
- vernac_require_open_proof ~pstate (vernac_end_proof ?proof e)
+ vernac_end_proof ?proof ?pstate e
| VernacExactProof c ->
unsupported_attributes atts;
vernac_require_open_proof ~pstate (vernac_exact_proof c)