File: Case7.v

package info (click to toggle)
coq 8.4pl4dfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 19,744 kB
  • ctags: 23,914
  • sloc: ml: 140,953; ansic: 1,982; lisp: 1,406; sh: 1,358; makefile: 620; sed: 2
file content (20 lines) | stat: -rw-r--r-- 451 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Inductive listn : nat -> Set :=
  | niln : listn 0
  | consn : forall n : nat, nat -> listn n -> listn (S n).

Definition length1 (n : nat) (l : listn n) :=
  match l with
  | consn n _ (consn m _ _) => S (S m)
  | consn n _ _ => 1
  | _ => 0
  end.

Type
  (fun (n : nat) (l : listn n) =>
   match n return nat with
   | O => 0
   | S n => match l return nat with
            | niln => 1
            | l' => length1 (S n) l'
            end
   end).