el_counter |
Def ||e:L|| == if null(L) 0 ;e= hd(L) 1+||e:tl(L)|| else ||e:tl(L)|| fi
(recursive)
Thm* n: , L: *. ||n:L|| 
|
lpower |
Def (L n) == if n= 0 nil else (L n-1) @ L fi (recursive)
Thm* Alph:Type, L:Alph*, n: . (L n) Alph*
|
nat |
Def == {i: | 0 i }
Thm* Type
|
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
|
eq_int |
Def i= j == if i=j true ; false fi
Thm* i,j: . i= j 
|
null |
Def null(as) == Case of as; nil true ; a.as' false
Thm* T:Type, as:T*. null(as)
Thm* null(nil) 
|
append |
Def as @ bs == Case of as; nil bs ; a.as' a.(as' @ bs) (recursive)
Thm* T:Type, as,bs:T*. (as @ bs) T*
|
le |
Def A B == B < A
Thm* i,j: . i j Prop
|
not |
Def A == A  False
Thm* A:Prop. ( A) Prop
|