aboutsummaryrefslogtreecommitdiffhomepage
path: root/test-suite/success/shrink_obligations.v
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2015-09-08 11:27:17 +0200
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2015-09-08 12:02:50 +0200
commit9510a3994210f545119ea35cdad43facededb6a2 (patch)
tree08dd8bb0dd3f16894ec96b5df332d1bf7bd35a60 /test-suite/success/shrink_obligations.v
parent99e3bdda7572725f929b77f7349d0a1e06294e94 (diff)
Documenting the new behaviour of the Shrink Obligations flag.
Diffstat (limited to 'test-suite/success/shrink_obligations.v')
-rw-r--r--test-suite/success/shrink_obligations.v28
1 files changed, 28 insertions, 0 deletions
diff --git a/test-suite/success/shrink_obligations.v b/test-suite/success/shrink_obligations.v
new file mode 100644
index 000000000..676b97878
--- /dev/null
+++ b/test-suite/success/shrink_obligations.v
@@ -0,0 +1,28 @@
+Require Program.
+
+Obligation Tactic := idtac.
+
+Set Shrink Obligations.
+
+Program Definition foo (m : nat) (p := S m) (n : nat) (q := S n) : unit :=
+let bar : {r | n < r} := _ in
+let qux : {r | p < r} := _ in
+let quz : m = n -> True := _ in
+tt.
+Next Obligation.
+intros m p n q.
+exists (S n); constructor.
+Qed.
+Next Obligation.
+intros m p n q.
+exists (S (S m)); constructor.
+Qed.
+Next Obligation.
+intros m p n q ? ? H.
+destruct H.
+constructor.
+Qed.
+
+Check (foo_obligation_1 : forall n, {r | n < r}).
+Check (foo_obligation_2 : forall m, {r | (S m) < r}).
+Check (foo_obligation_3 : forall m n, m = n -> True).