Nuprl Definition : list
The list type was once a primitive in Nuprl. Later, it was defined using
the "Mendler" fixpoint type. Now we define lists as those "co-lists"
for which the length (a partially defined function) has a value.
Once we show that the list iterator is well formed (see list_ind_wf)
then we can use list as an abstract type. This "implementation" shows that
we only need induction on ⌜ℕ⌝ to build lists, and do not need the power
of the Mendler fixpoint or a general inductive construction.⋅
T List ==  {L:colist(T)| (colength(L))↓} 
Definitions occuring in Statement : 
colength: colength(L)
, 
colist: colist(T)
, 
has-value: (a)↓
, 
set: {x:A| B[x]} 
Definitions occuring in definition : 
set: {x:A| B[x]} 
, 
colist: colist(T)
, 
has-value: (a)↓
, 
colength: colength(L)
Rules referencing : 
barInduction
Latex:
T  List  ==    \{L:colist(T)|  (colength(L))\mdownarrow{}\} 
Date html generated:
2016_07_08-PM-04_47_57
Last ObjectModification:
2015_12_03-PM-02_04_41
Theory : list_0
Home
Index