aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEnrico Tassi2019-01-09 11:01:53 +0100
committerEnrico Tassi2019-01-09 11:01:53 +0100
commit2c4c8357a701ddd7bc8ee73a5c457d3844948867 (patch)
treeb7f00599f459f3e75b83d17cb1b35dec132fa366
parent727d4da625f88b7ba302d5c129f9773dc1fb1e33 (diff)
parent320363315e350bf427054d837a02b4d97f015199 (diff)
Merge PR #9273: Fix #9272: `Unset Nested Proofs Allowed` does not capture nested `Ins…
-rw-r--r--stm/stm.ml9
-rw-r--r--test-suite/bugs/opened/bug_3890.v2
2 files changed, 10 insertions, 1 deletions
diff --git a/stm/stm.ml b/stm/stm.ml
index 32c6c7d959..27feac9adb 100644
--- a/stm/stm.ml
+++ b/stm/stm.ml
@@ -2993,7 +2993,14 @@ let process_transaction ~doc ?(newtip=Stateid.fresh ())
(* Unknown: we execute it, check for open goals and propagate sideeff *)
| VtUnknown, VtNow ->
let in_proof = not (VCS.Branch.equal head VCS.Branch.master) in
- let id = VCS.new_node ~id:newtip () in
+ if not (get_allow_nested_proofs ()) && in_proof then
+ "Commands which may open proofs are not allowed in a proof unless you turn option Nested Proofs Allowed on."
+ |> Pp.str
+ |> (fun s -> (UserError (None, s), Exninfo.null))
+ |> State.exn_on ~valid:Stateid.dummy Stateid.dummy
+ |> Exninfo.iraise
+ else
+ let id = VCS.new_node ~id:newtip () in
let head_id = VCS.get_branch_pos head in
let _st : unit = Reach.known_state ~doc ~cache:true head_id in (* ensure it is ok *)
let step () =
diff --git a/test-suite/bugs/opened/bug_3890.v b/test-suite/bugs/opened/bug_3890.v
index 5c74addb62..78b2aa69b9 100644
--- a/test-suite/bugs/opened/bug_3890.v
+++ b/test-suite/bugs/opened/bug_3890.v
@@ -1,3 +1,5 @@
+Set Nested Proofs Allowed.
+
Class Foo.
Class Bar := b : Type.