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

Selected Objects
defmt mt(l) == Case of l; nil  True ; a.as'  False
THMmt_append l,ll:'a List. mt(l @ ll mt(l) & mt(ll)
defhead head(l) == hd(l)
THMassert_of_null_is_mt l:'a List. null(l mt(l)
defrep_list rep_list('a;l) == <n:. if n<||l|| then l[n] else arb('a) fi ,||l||>
THMmt_def mt(nil) = True  Prop{1}
& ('a:Type{i}, x:'al:'a List. mt(cons(xl)) = False  Prop{1})
defit_sum it_sum(l) == if null(l) then 0 else head(l)+it_sum(tl(l)) fi   (recursive)
THMit_sum_def it_sum(nil) = 0
& (l: List. mt(l it_sum(l) = head(l)+it_sum(tl(l)))
& (x:l: List. it_sum(cons(xl)) = x+it_sum(l))
defflatten flatten(l) == if null(l) then nil else head(l) @ flatten(tl(l)) fi   (recursive)
defmap2 map2(f;l1;l2)
== if null(l1)
== then nil
== else if null(l2)
== else then nil
== else else cons((f(head(l1),head(l2))); map2(f;tl(l1);tl(l2)))
== else fi 
== fi 
(recursive)
defevery every(p;l) == if null(l) then true else (p(head(l)))every(p;tl(l)) fi 
(recursive)
THMdecidable__mt l:'a List. Dec(mt(l))
defhlist hlist('a) == 'a List
defhis_list_rep is_list_rep
== r:('a)f:'a
== r:('a)n:
== r:('a)(r = <m:. if m<n then f(m) else @x:'a. true fi ,n>)
defhrep_list rep_list == l:'a List. rep_list('a;l)
defhabs_list abs_list == r:('a). @a:'a List. (r = rep_list('a;a))
defhnil nil == nil
defhcons cons == x:'al:'a List. cons(xl)
defhnull null == l:'a List. null(l)
defhhd hd == l:'a List. if null(l) then arb('a) else head(l) fi 
THMhhd_nuprl 'a:S, l:'a List. mt(l hd(l) = head(l)
defhtl tl == l:'a List. tl(l)
defhit_sum it_sum == l: List. it_sum(l)
defhappend append == l1:'a List. l2:'a List. l1 @ l2
defhflat flat == l:('a List) List. flatten(l)
defhlength length == l:'a List. ||l||
defhmap map == f:'a'bl:'a List. map(f;l)
defhmap2 map2 == f:'a'bl1:'al2:'b. map2(f;l1;l2)
defhel el == n:l:'a List. if n=0 then hd(l) else el(n-1,tl(l)) fi   (recursive)
THMhel_nuprl 'a:S, n:l:'a List. n<||l||  el(n,l) = l[n]
defhevery every == p:'al:'a List. every(p;l)
THMhis_list_rep_wd 'a:S. 
all
(r:hprod((hnum  'a); hnum
(r:hprod(). equal
(r:hprod(). (is_list_rep(r)
(r:hprod(). ,exists
(r:hprod(). ,(f:hnum  'a. exists
(r:hprod(). ,(f:hnum  'a(n:hnum. equal
(r:hprod(). ,(f:hnum  'a. (n:hnum. (r
(r:hprod(). ,(f:hnum  'a. (n:hnum. ,pair
(r:hprod(). ,(f:hnum  'a. (n:hnum. ,((m:hnum. cond
(r:hprod(). ,(f:hnum  'a. (n:hnum. ,((m:hnum. (lt(m,n)
(r:hprod(). ,(f:hnum  'a. (n:hnum. ,((m:hnum. ,f(m)
(r:hprod(). ,(f:hnum  'a. (n:hnum. ,((m:hnum. ,select(x:'a. t)))
(r:hprod(). ,(f:hnum  'a. (n:hnum. ,,n))))))
THMlist_iso 'a:S. iso_pair('a List;('a);is_list_rep;rep_list;abs_list)
THMhlist_ty_def 'a:S. 
exists
(rep:hlist('a hprod((hnum  'a); hnum). type_definition(is_list_rep,rep))
THMhlist_iso_def 'a:S. 
and
(all(a:hlist('a). equal(abs_list(rep_list(a)),a))
,all
,(r:hprod((hnum  'a); hnum). equal
,(r:hprod((hnum  'a); hnum). (is_list_rep(r)
,(r:hprod((hnum  'a); hnum). ,equal(rep_list(abs_list(r)),r))))
THMhnil_def 'a:S. equal(nil,abs_list(pair((n:hnum. select(e:'a. t)),0)))
IF YOU CAN SEE THIS go to /sfa/Nuprl/Shared/Xindentation_hack_doc.html

Origin Definitions Sections HOLlib Doc