Selected Objects
def | automata | Automata(Alph;States) == (States Alph States) States (States  ) |
def | DA_act | a == 1of(a) |
def | DA_init | InitialState(a) == 1of(2of(a)) |
def | DA_fin | FinalState(a) == 2of(2of(a)) |
def | compute_list | (rec) Result(DA)l == if null(l) InitialState(DA) else DA((Result(DA)tl(l)),hd(l)) fi |
THM | compute_list_qwf | Auto:Automata(Alph;St), l:x,y:Alph*//((Result(Auto)x) = (Result(Auto)y)). (Result(Auto)l) St |
THM | compute_l_inv | Auto:Automata(Alph;St), x,y,z:Alph*.
(Result(Auto)x) = (Result(Auto)y)  (Result(Auto)z @ x) = (Result(Auto)z @ y) |
def | accept_list | DA(l) == FinalState(DA)(Result(DA)l) |
THM | accept_list_qwf | Auto:Automata(Alph;St), l:x,y:Alph*//((Result(Auto)x) = (Result(Auto)y)). Auto(l)  |
def | auto_lang | LangOf(DA)(l) == DA(l) |
THM | action_auto | Auto:Automata(Alph;St), l:Alph*. ( < St, l,s. Auto(s,l) > :l InitialState(Auto)) = (Result(Auto)l) |
THM | pos_states | Auto:Automata(Alph;St). Fin(St)  ( n: . #(St)=n ) |
THM | reach_lemma | S:ActionSet(Alph), si:S.car, nn: , f:( nn Alph), g:(Alph  nn).
Fin(S.car) 
InvFuns( nn; Alph; f; g) 
( n: .
RL:{y:{x:(S.car*)| 0 < ||x|| & ||x|| n+1 }| y[(||y||-1)] = si }.
( s:S.car. ( w:Alph*. (S:w si) = s)  mem_f(S.car;s;RL))
||RL|| = n+1
& ( i: ||RL||, j: i. RL[i] = RL[j])
& ( s:S.car. mem_f(S.car;s;RL)  ( w:Alph*. (S:w si) = s))
& ( k: .
k nn 
( RLa:S.car*.
( i:{1..||RL|| }, a:Alph. mem_f(S.car;S.act(a,RL[i]);RL) mem_f(S.car;S.act(a,RL[i]);RLa))
& ( a:Alph. g(a) < k  mem_f(S.car;S.act(a,hd(RL));RL) mem_f(S.car;S.act(a,hd(RL));RLa))
& ( s:S.car. mem_f(S.car;s;RLa)  ( w:Alph*. (S:w si) = s))))) |
THM | reach_aux | S:ActionSet(Alph), si:S.car.
Fin(S.car)  Fin(Alph)  ( RL:S.car*. s:S.car. ( w:Alph*. (S:w si) = s)  mem_f(S.car;s;RL)) |
THM | reach_list | Auto:Automata(Alph;St).
Fin(St) & Fin(Alph)  ( RL:St*. s:St. ( w:Alph*. (Result(Auto)w) = s)  mem_f(St;s;RL)) |
THM | reach_dec | Auto:Automata(Alph;St). Fin(Alph)  Fin(St)  ( s:St. Dec( w:Alph*. (Result(Auto)w) = s)) |