aboutsummaryrefslogtreecommitdiffhomepage
path: root/test-suite/success/goal_selector.v
diff options
context:
space:
mode:
authorGravatar Cyprien Mangin <cyprien.mangin@m4x.org>2015-06-24 11:12:19 +0200
committerGravatar Cyprien Mangin <cyprien.mangin@m4x.org>2016-06-14 06:21:30 +0200
commit0f2b25d8b89a5ef3f3824b1840d97dd79a287d0e (patch)
tree1e26624ef4ebcc2b300828f18aa522d87f46c91b /test-suite/success/goal_selector.v
parent5822bdc9689620db3f9b7e5ea159d024cf213ba9 (diff)
Add test-suite file for goal selectors.
Diffstat (limited to 'test-suite/success/goal_selector.v')
-rw-r--r--test-suite/success/goal_selector.v33
1 files changed, 33 insertions, 0 deletions
diff --git a/test-suite/success/goal_selector.v b/test-suite/success/goal_selector.v
new file mode 100644
index 000000000..fc3c8a92d
--- /dev/null
+++ b/test-suite/success/goal_selector.v
@@ -0,0 +1,33 @@
+Inductive two : bool -> Prop :=
+| Zero : two false
+| One : two true.
+
+Ltac dup :=
+ let H := fresh in assert (forall (P : Prop), P -> P -> P) as H by (intros; trivial);
+ apply H; clear H.
+
+Lemma transform : two false <-> two true.
+Proof. split; intros _; constructor. Qed.
+
+Goal two false /\ two true /\ two false /\ two true /\ two true /\ two true.
+Proof.
+ do 2 dup.
+ - repeat split.
+ [2, 4-99, 100-3]:idtac.
+ [2-5]:exact One.
+ par:exact Zero.
+ - repeat split.
+ [3-6]:swap 1 4.
+ [1-5]:swap 1 5.
+ [0-4]:exact One.
+ all:exact Zero.
+ - repeat split.
+ [1, 3]:exact Zero.
+ [1, 2, 3, 4]: exact One.
+ - repeat split.
+ all:apply transform.
+ [2, 4, 6]:apply transform.
+ all:apply transform.
+ [1-5]:apply transform.
+ [1-6]:exact One.
+Qed. \ No newline at end of file