equal
deleted
inserted
replaced
1 (* Title: ZF/ex/ListN |
1 (* Title: ZF/ex/ListN |
2 ID: $Id$ |
2 ID: $Id$ |
3 Author: Lawrence C Paulson, Cambridge University Computer Laboratory |
3 Author: Lawrence C Paulson, Cambridge University Computer Laboratory |
4 Copyright 1994 University of Cambridge |
4 Copyright 1994 University of Cambridge |
5 |
5 |
6 Inductive definition of lists of n elements |
6 Inductive definition of lists of n elements |
7 |
7 |
8 See Ch. Paulin-Mohring, Inductive Definitions in the System Coq. |
8 See Ch. Paulin-Mohring, Inductive Definitions in the System Coq. |
9 Research Report 92-49, LIP, ENS Lyon. Dec 1992. |
9 Research Report 92-49, LIP, ENS Lyon. Dec 1992. |
10 *) |
10 *) |
11 |
11 |
12 ListN = List + |
12 ListN = List + |
13 consts listn ::i=>i |
13 consts listn ::i=>i |
14 inductive |
14 inductive |
15 domains "listn(A)" <= "nat*list(A)" |
15 domains "listn(A)" <= "nat*list(A)" |
16 intrs |
16 intrs |
17 NilI "<0,Nil> : listn(A)" |
17 NilI "<0,Nil> : listn(A)" |
18 ConsI "[| a: A; <n,l> : listn(A) |] ==> <succ(n), Cons(a,l)> : listn(A)" |
18 ConsI "[| a: A; <n,l> : listn(A) |] ==> <succ(n), Cons(a,l)> : listn(A)" |