summaryrefslogtreecommitdiff
path: root/test-suite/success/ImplicitArguments.v
diff options
context:
space:
mode:
authorGravatar Samuel Mimram <smimram@debian.org>2008-07-25 15:12:53 +0200
committerGravatar Samuel Mimram <smimram@debian.org>2008-07-25 15:12:53 +0200
commita0cfa4f118023d35b767a999d5a2ac4b082857b4 (patch)
treedabcac548e299fee1da464c93b3dba98484f45b1 /test-suite/success/ImplicitArguments.v
parent2281410e38ef99d025ea77194585a9bc019fdaa9 (diff)
Imported Upstream version 8.2~beta3+dfsgupstream/8.2.beta3+dfsg
Diffstat (limited to 'test-suite/success/ImplicitArguments.v')
-rw-r--r--test-suite/success/ImplicitArguments.v17
1 files changed, 17 insertions, 0 deletions
diff --git a/test-suite/success/ImplicitArguments.v b/test-suite/success/ImplicitArguments.v
new file mode 100644
index 00000000..e7795733
--- /dev/null
+++ b/test-suite/success/ImplicitArguments.v
@@ -0,0 +1,17 @@
+Inductive vector {A : Type} : nat -> Type :=
+| vnil : vector 0
+| vcons : A -> forall {n'}, vector n' -> vector (S n').
+
+Require Import Coq.Program.Program.
+
+Program Definition head {A : Type} {n : nat} (v : vector A (S n)) : vector A n :=
+ match v with
+ | vnil => !
+ | vcons a n' v' => v'
+ end.
+
+Fixpoint app {A : Type} {n m : nat} (v : vector A n) (w : vector A m) : vector A (n + m) :=
+ match v in vector _ n return vector A (n + m) with
+ | vnil => w
+ | vcons a n' v' => vcons a (app v' w)
+ end.