% 1) Top of UDC: realizing filler
s(nogap) --> np(nogap),
             s(gap).

% 2) Middle of UDC: passing info
s(GapInfo) --> 
	np(nogap),    % no subject gaps
	vp(GapInfo).

vp(GapInfo) --> 
	vt,
	np(GapInfo).

% 3) Bottom of UDC
np(gap)   --> [].

% "Lexicon"
np(nogap) --> [mary];[john];[fido].

vt --> [loves].

