src/ZF/ex/ListN.thy
changeset 1478 2b8c2a7547ab
parent 1401 0c439768f45c
child 3840 e0baea4d485a
equal deleted inserted replaced
1477:4c51ab632cda 1478:2b8c2a7547ab
     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)"