Solution
s --> np, vp. np --> det, n. np --> pn. vp --> vi. vp --> vt, np. %% Lexicon det(l(R, l(S, exists(X,'@'(R,X),'@'(S,X))))) --> [a]. det(l(R, l(S, exists(X,'@'(R,X),'@'(S,X))))) --> [the]. n(l(X,bride(X))) --> [bride]. n(l(X,nurse(X))) --> [nurse]. n(l(X,yakuza(X))) --> [yakuza]. n(l(X,whiskey(X))) --> [whiskey]. pn(l(P,'@'(P,bill))) --> [bill]. pn(l(P,'@'(P,gogo))) --> [gogo]. vi(l(X,whistle(X))) --> [whistles]. vi(l(X,fight(X))) --> [fights]. vt(l(X,l(Y,drink(Y,X)))) --> [drinks]. vt(l(X,l(Y,kill(Y,X)))) --> [kills].