Origin Definitions Sections StandardLIB Doc
IF YOU CAN SEE THIS go to /sfa/Nuprl/Shared/Xindentation_hack_doc.html
list_1
Nuprl Section: list_1

Selected Objects
THMcons_neq_nil h:Tt:T List. h.t = nil
COMLIST_DEFS BASIC LIST FUNCTIONS ...
defnull null(as) == Case of as; nil  true ; a.as'  false
THMassert_of_null as:T List. null(as as = nil
defappend as @ bs == Case of as; nil  bs ; a.as'  a.(as' @ bs)  (recursive)
THMappend_assoc as,bs,cs:T List. ((as @ bs) @ cs) = (as @ (bs @ cs))
THMappend_back_nil as:T List. (as @ nil) = as
deflength ||as|| == Case of as; nil  0 ; a.as'  ||as'||+1  (recursive)
THMlength_cons a:Aas:A List. ||a.as|| = ||as||+1
THMlength_nil ||nil|| = 0
THMnon_neg_length l:A List. ||l||0
THMpos_length l:A List. l = nil  ||l||1
THMlength_append as,bs:T List. ||as @ bs|| = ||as||+||bs||
THMlength_of_not_nil as:A List. as = nil  ||as||1
THMlength_of_null_list as:A List. as = nil  ||as|| = 0
defmap map(f;as) == Case of as; nil  nil ; a.as'  f(a).map(f;as')  (recursive)
THMmap_length f:(AB), as:A List. ||map(f;as)|| = ||as||
THMmap_map f:(AB), g:(BC), as:A List. map(g;map(f;as)) = map(g o f;as)
THMmap_append f:(AB), as,as':A List. map(f;as @ as') = (map(f;as) @ map(f;as'))
THMmap_id as:A List. map(Id;as) = as
defhd hd(l) == Case of l; nil  "?" ; h.t  h
deftl tl(l) == Case of l; nil  nil ; h.t  t
THMlength_tl l:A List. ||l|| ||tl(l)|| = ||l||-1
defnth_tl nth_tl(n;as) == if n0 as else nth_tl(n-1;tl(as)) fi  (recursive)
THMlength_nth_tl as:A List, n:{0...||as||}. ||nth_tl(n;as)|| = ||as||-n
defreverse rev(as) == Case of as; nil  nil ; a.as'  rev(as') @ [a]  (recursive)
THMreverse_append as,bs:T List. rev(as @ bs) = (rev(bs) @ rev(as))
deffirstn firstn(n;as)
== Case of as; nil  nil ; a.as'  if 0<n a.firstn(n-1;as') else nil fi
(recursive)
THMlength_firstn as:A List, n:{0...||as||}. ||firstn(n;as)|| = n
defsegment as[m..n] == firstn(n-m;nth_tl(m;as))
THMlength_segment as:T List, i:{0...||as||}, j:{i...||as||}. ||as[i..j]|| = j-i
THMeq_cons_imp_eq_tls a,b:Aas,bs:A List. a.as = b.bs  as = bs
THMeq_cons_imp_eq_hds a,b:Aas,bs:A List. a.as = b.bs  a = b
defselect l[i] == hd(nth_tl(i;l))
THMselect_cons_hd a:Tas:T List, i:i (a.as)[i] = a
THMselect_cons_tl a:Tas:T List, i:. 0<i  i||as||  (a.as)[i] = as[(i-1)]
THMselect_append_back as,bs:T List, i:{||as||..(||as||+||bs||)}. (as @ bs)[i] = bs[(i-||as||)]
THMselect_append_front as,bs:T List, i:||as||. (as @ bs)[i] = as[i]
THMselect_tl as:A List, n:(||as||-1). tl(as)[n] = as[(n+1)]
THMselect_nth_tl as:T List, n:{0...||as||}, i:(||as||-n). nth_tl(n;as)[i] = as[(i+n)]
THMselect_firstn as:T List, n:{0...||as||}, i:n. firstn(n;as)[i] = as[i]
defreject as\[i] == if i0 tl(as) else Case of as; nil  nil ; a'.as'  a'.as'\[i-1] fi
(recursive)
THMreject_cons_hd a:Tas:T List, i:i (a.as)\[i] = as
THMreject_cons_tl a:Tas:T List, i:. 0<i  i||as||  (a.as)\[i] = a.as\[i-1]
THMmap_select f:(AB), as:A List, n:||as||. map(f;as)[n] = f(as[n])
COMreduce_com ============LIST FOLDING============
defreduce reduce(f;k;as) == Case of as; nil  k ; a.as'  f(a,reduce(f;k;as'))
(recursive)
deffor For{T,op,idx  asf(x) == reduce(op;id;map(x:Tf(x);as))
defmapcons mapcons(f;as) == Case of as; nil  nil ; a.as'  f(a,as').mapcons(f;as')
(recursive)
deffor_hdtl ForHdTl{A,f,kh::t  asg(h;t) == reduce(f;k;mapcons(h,tg(h;t);as))
deflistify f{m..n} == if nm nil else f(m).f{(m+1)..n} fi  (recursive)
THMlistify_length m,n:f:({m..n}T). n<m  ||f{m..n}|| = n-m
THMlistify_select_id as:T List. (i:||as||. as[i]){||as||} = as
THMselect_listify_id n:f:(nT), i:n. (f{n})[i] = f(i)
COMlist_subtypes ============LIST SUBTYPE============
deflist_n A List(n) == {x:(A List)| ||x|| = n }
THMlist_n_properties n:as:A List(n). ||as|| = n
COMmapc_com ====================CURRIED MAP FUNCTION====================Illustration of use of add_rec_def for a curried function
defmapc mapc(f)(as) == Case of as; nil  nil ; a.as1  f(a).mapc(f)(as1)  (recursive)
COMlist_append_ind_com Alternative Induction Principle for ListsUsed for multiset induction.
THMlist_append_ind Q:((T List)Prop). 
Q(nil)

(x:TQ([x]))

(ys,ys':T List. Q(ys Q(ys' Q(ys @ ys'))  (zs:T List. Q(zs))
IF YOU CAN SEE THIS go to /sfa/Nuprl/Shared/Xindentation_hack_doc.html

Origin Definitions Sections StandardLIB Doc