
a    -+-> perm( ([a],[e],[o]) ).
b    -+-> perm( ([a],*[e],[o])).
% c    ---> perm( ([a-1],*[e-2],[o-3]) ).

d(rr(S))   ---> ?[n(_,_)-S].
  rr(S) ==> r(r(S)).

lex(gato,n(m,s),g).
lex(pato,n(m,s),g).

:- begin(gram).
f -(g)--> [a], [b].
:- end(gram).

:- a([e,a,o],[]).
:- b([e,a,e,e,e,o,e],[]).
% :- c([e,a,e,e,e,o,e],[]).
