aboutsummaryrefslogtreecommitdiff
path: root/test-suite
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2020-03-18 18:34:19 +0100
committerPierre-Marie Pédrot2020-03-18 18:34:19 +0100
commitde9f75fcca7247abadbc02176a1fe06033cd6e38 (patch)
tree5103c662905cb78e1e3bdc75179eba1366bb4cb8 /test-suite
parent70bc1e9c5122ad5a8a3dc78aae764afc65b4dead (diff)
Adding a round-trip test for binders.
Diffstat (limited to 'test-suite')
-rw-r--r--test-suite/ltac2/binder.v37
1 files changed, 37 insertions, 0 deletions
diff --git a/test-suite/ltac2/binder.v b/test-suite/ltac2/binder.v
new file mode 100644
index 0000000000..eac74688b2
--- /dev/null
+++ b/test-suite/ltac2/binder.v
@@ -0,0 +1,37 @@
+Require Import Ltac2.Ltac2.
+
+Ltac2 check () :=
+let t := Control.goal () in
+match Constr.Unsafe.kind t with
+| Constr.Unsafe.Prod b t =>
+ let na := Constr.Binder.name b in
+ let u := Constr.Binder.type b in
+ let b := Constr.Binder.make na u in
+ let c := Constr.Unsafe.make (Constr.Unsafe.Prod b t) in
+ pose (v := $c);
+ refine '(_ : &v);
+ unfold &v
+| _ => fail
+end.
+
+Goal forall x : nat, x = x.
+Proof.
+check (); intros; reflexivity.
+Qed.
+
+Goal forall x : Type, x = x.
+Proof.
+check (); intros; reflexivity.
+Qed.
+
+Goal forall x : Set, x = x.
+Proof.
+check (); intros; reflexivity.
+Qed.
+
+Inductive True : SProp := I.
+
+Goal forall x : True, True.
+Proof.
+check (); intros; constructor.
+Qed.