% Finite state automaton.
% Automatons without epsilon-Transitions

fsa(Tape):-
	initial(S),
	fsa(Tape,S).

fsa([],S):- final(S).

fsa([H|T],S):-
	trans_tab(S,H,NS),
	fsa(T,NS).

% FSA transition table:
% trans_tab/3
% trans_tab(State, Input, New State)

trans_tab(1,a,1).
trans_tab(1,b,2).
trans_tab(2,a,2).

initial(1).
final(2).
