% Prolog rules for a generic Mealy machine mealy(In, Out):- start(I), execute(I, In, Out). execute(S,[],[]). execute(S,[H|T],Y):- t(S,H,[],N),execute(N,T,Y). execute(S,[H|T],[X|Y]):- t(S,H,X,N), execute(N,T,Y). % Prolog rules for a particular machine. start(0). t(0,a,a,1). t(0,b,b,2). t(1,a,[],1). t(1,b,b,2). t(2,a,a,1). t(2,b,[],2).