| auto_iso | Def A1  A2
==  f:(S1   S2). 
 Bij(S1; S2; f)
  &  (  s:S1, a:Alph. f(  A1(s,a)) =  A2(f(s),a))
  &  f(InitialState(A1)) = InitialState(A2)
  &  (  s:S1. FinalState(A1)(s) = FinalState(A2)(f(s))    ) Thm*  | 
| auto_lang | Def LangOf(DA)(l) ==  DA(l)   Thm*  | 
| automata | Def Automata(Alph;States) == (States   Alph   States)  States  (States    ) Thm*  | 
| connected | Def Con(A) ==  s:St.  l:Alph*. (Result(A)l) = s Thm*  | 
| refine | Def A1  A2 
==  x,y:Alph*. (Result(A1)x) = (Result(A1)y)  S1   (Result(A2)x) = (Result(A2)y)  S2 Thm*  | 
| accept_list | Def DA(l)  == FinalState(DA)(Result(DA)l) Thm*  | 
| compute_list | Def Result(DA)l
 == if null(l)  InitialState(DA) else  DA((Result(DA)tl(l)),hd(l)) fi
 (recursive) 
 Thm*  | 
| lang_eq | Def L = M ==  l:Alph*. L(l)   M(l) Thm*  | 
| so_lambda2 | Def (   1,2. b(1;2))(1,2) == b(1;2) | 
| DA_fin | Def FinalState(a) == 2of(2of(a)) 
 Thm*  | 
| DA_init | Def InitialState(a) == 1of(2of(a)) 
 Thm*  | 
| DA_act | Def  a == 1of(a) 
 Thm*  | 
| biject | Def Bij(A; B; f) == Inj(A; B; f)  &  Surj(A; B; f) Thm*  | 
| assert | Def  b == if b  True else False fi Thm*  | 
| hd | Def hd(l) == Case of l; nil  "?" ; h.t  h 
 Thm*  | 
| tl | Def tl(l) == Case of l; nil  nil ; h.t  t 
 Thm*  | 
| null | Def null(as) == Case of as; nil  true  ; a.as'  false   
 Thm*  
 Thm* null(nil)  | 
| iff | Def P   Q == (P   Q)  &  (P   Q) Thm*  | 
| pi2 | Def 2of(t) == t.2 
 Thm*  | 
| pi1 | Def 1of(t) == t.1 Thm*  | 
| surject | Def Surj(A; B; f) ==  b:B.  a:A. f(a) = b Thm*  | 
| inject | Def Inj(A; B; f) ==  a1,a2:A. f(a1) = f(a2)  B   a1 = a2 Thm*  | 
| rev_implies | Def P   Q == Q   P Thm*  | 
About:
|  |  |  |  |  |  |  | 
|  |  |  |  |  |  |  | 
|  |  |  |  |  |  |  | 
|  |  |  |  |  |