enum |
Def enum(l) == (q ||l|| )+en(l)
Thm* q: , l: q*. enum(l) 
|
en |
Def en(l) == if null(l) 0 else hd(l)+en(tl(l)) n fi (recursive)
Thm* n: , l: n*. en(l) 
|
length |
Def ||as|| == Case of as; nil 0 ; a.as' ||as'||+1 (recursive)
Thm* A:Type, l:A*. ||l||
Thm* ||nil|| 
|
geom_series |
Def (q n ) == if n= 0 0 else (q n-1 )+(q n-1) fi (recursive)
Thm* q,n: . (q n ) 
|
tl |
Def tl(l) == Case of l; nil nil ; h.t t
Thm* A:Type, l:A*. tl(l) A*
|
hd |
Def hd(l) == Case of l; nil "?" ; h.t h
Thm* A:Type, l:A*. ||l|| 1  hd(l) A
|
null |
Def null(as) == Case of as; nil true ; a.as' false
Thm* T:Type, as:T*. null(as)
Thm* null(nil) 
|
exp |
Def (base power) == if power= 0 1 else base (base power-1) fi (recursive)
Thm* n,k: . (n k)
Thm* n,k: . (n k) 
|
eq_int |
Def i= j == if i=j true ; false fi
Thm* i,j: . i= j 
|