enum |
Def enum(l) == (q ||l|| )+en(l)
Thm* q: , l: q*. enum(l) 
|
int_seg |
Def {i..j } == {k: | i k < j }
Thm* m,n: . {m..n } Type
|
nat |
Def == {i: | 0 i }
Thm* Type
|
nat_plus |
Def  == {i: | 0 < i }
Thm*  Type
|
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 ) 
|
lelt |
Def i j < k == i j & j < k
|
le |
Def A B == B < A
Thm* i,j: . i j Prop
|
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 
|
not |
Def A == A  False
Thm* A:Prop. ( A) Prop
|