diff options
author | Stephane Glondu <steph@glondu.net> | 2010-07-21 09:46:51 +0200 |
---|---|---|
committer | Stephane Glondu <steph@glondu.net> | 2010-07-21 09:46:51 +0200 |
commit | 5b7eafd0f00a16d78f99a27f5c7d5a0de77dc7e6 (patch) | |
tree | 631ad791a7685edafeb1fb2e8faeedc8379318ae /plugins/subtac/test/take.v | |
parent | da178a880e3ace820b41d38b191d3785b82991f5 (diff) |
Imported Upstream snapshot 8.3~beta0+13298
Diffstat (limited to 'plugins/subtac/test/take.v')
-rw-r--r-- | plugins/subtac/test/take.v | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/plugins/subtac/test/take.v b/plugins/subtac/test/take.v new file mode 100644 index 00000000..90ae8bae --- /dev/null +++ b/plugins/subtac/test/take.v @@ -0,0 +1,34 @@ +(* -*- coq-prog-args: ("-emacs-U" "-debug") -*- *) +Require Import JMeq. +Require Import List. +Require Import Program. + +Set Implicit Arguments. +Obligations Tactic := idtac. + +Print cons. + +Program Fixpoint take (A : Set) (l : list A) (n : nat | n <= length l) { struct l } : { l' : list A | length l' = n } := + match n with + | 0 => nil + | S p => + match l with + | cons hd tl => let rest := take tl p in cons hd rest + | nil => ! + end + end. + +Require Import Omega. +Solve All Obligations. +Next Obligation. + destruct_call take ; program_simpl. +Defined. + +Next Obligation. + intros. + inversion H. +Defined. + + + + |