| compute_list | 
 Def Result(DA)l
 == if null(l)  InitialState(DA) else  DA((Result(DA)tl(l)),hd(l)) fi
 (recursive)
 Thm*  Alph,St:Type, A:Automata(Alph;St), l:Alph*. (Result(A)l)   St 
 | 
| hd | 
 Def hd(l) == Case of l; nil   "?" ; h.t   h
 Thm*  A:Type, l:A*. ||l|| 1    hd(l)   A 
 | 
| tl | 
 Def tl(l) == Case of l; nil   nil ; h.t   t
 Thm*  A:Type, l:A*. tl(l)   A* 
 | 
| DA_act | 
 Def  a == 1of(a)
 Thm*  Alph,States:Type, a:Automata(Alph;States).  a   States  Alph  States 
 | 
| DA_init | 
 Def InitialState(a) == 1of(2of(a))
 
 Thm*  Alph,States:Type, a:Automata(Alph;States). InitialState(a)   States 
 | 
| null | 
 Def null(as) == Case of as; nil   true  ; a.as'   false 
 Thm*  T:Type, as:T*. null(as)    
 
 Thm* null(nil)     
 | 
| pi1 | 
 Def 1of(t) == t.1
 Thm*  A:Type, B:(A  Type), p:a:A B(a). 1of(p)   A 
 | 
| pi2 | 
 Def 2of(t) == t.2
 
 Thm*  A:Type, B:(A  Type), p:a:A B(a). 2of(p)   B(1of(p)) 
 |