% The grammar for use with the grammar interpreters below :-op(1200,xfx,--->). s(s(NP,VP)) ---> [np(NP), vp(VP)]. np(np(PN)) ---> [pn(PN)]. np(np(DET,N)) ---> [det(DET,AGR), n(N,AGR)]. np(np(NP,PP)) ---> [np(NP), pp(PP)]. pp(pp(P,NP)) ---> [p(P), np(NP)]. vp(vp(V,NP,PP)) ---> [v(V), np(NP), pp(PP)]. vp(vp(V,NP)) ---> [v(V), np(NP)]. vp(vp(V)) ---> [v(V)]. det(det(the),_) ---> [the]. det(det(a),sing) ---> [a]. det(det(most),plur) ---> [most]. n(n(man),sing) ---> [man]. n(n(men),plur) ---> [men]. n(n(woman),sing) ---> [woman]. n(n(women),plur) ---> [women]. n(n(book),sing) ---> [book]. n(n(books),plur) ---> [books]. n(n(hill),sing) ---> [hill]. n(n(hills),plur) ---> [hills]. n(n(telescope),sing) ---> [telescope]. n(n(telescopes),plur) ---> [telescopes]. pn(pn(karl)) ---> [karl]. pn(pn(valerie)) ---> [valerie]. pn(pn(libby)) ---> [libby]. pn(pn(john)) ---> [john]. pn(pn(mary)) ---> [mary]. p(p(on)) ---> [on]. p(p(to)) ---> [to]. p(p(with)) ---> [with]. v(v(see)) ---> [see]. v(v(sees)) ---> [sees]. v(v(discover)) ---> [discover]. v(v(discovers)) ---> [discovers]. v(v(put)) ---> [put]. v(v(puts)) ---> [puts]. v(v(give)) ---> [give]. v(v(gives)) ---> [gives]. v(v(reveal)) ---> [reveal]. v(v(reveals)) ---> [reveals]. v(v(remove)) ---> [remove]. v(v(removes)) ---> [removes]. v(v(laugh)) ---> [laugh]. v(v(laughs)) ---> [laughs]. v(v(exist)) ---> [exist]. v(v(exists)) ---> [exists].