maction |
Def (S:L s) == if null(L) s else S.act(hd(L),(S:tl(L) s)) fi (recursive)
Thm* Alph:Type, S:ActionSet(Alph), L:Alph*, s:S.car. (S:L s) S.car
|
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
|
aset_act |
Def a.act == 2of(a)
Thm* T:Type, a:ActionSet(T). a.act T a.car a.car
|
null |
Def null(as) == Case of as; nil true ; a.as' false
Thm* T:Type, as:T*. null(as)
Thm* null(nil) 
|
pi2 |
Def 2of(t) == t.2
Thm* A:Type, B:(A Type), p:a:A B(a). 2of(p) B(1of(p))
|