
% Grammar 6.2: BH-GRN grammar for semantic translation
:-op(1100, xfx, --->).
:-op(1100, xfx, ===>).
:-op(400, yfx, *).

s(S_trans)   ---> [np(NP_trans), vp(VP_trans)],
                  {beta_reduce(VP_trans*NP_trans, S_trans)}.
vp(Vi_trans) ---> [vi(Vi_trans)].
vp(VP_trans) ---> [vt(Vt_trans), np(NP_trans)],
                  {beta_reduce(Vt_trans*NP_trans, VP_trans)}.

np(d)                 ===> [duncan].
np(m)                 ===> [macbeth].
vi(X^died1(X))        ===> [died].
vt(Y^X^killed1(X, Y)) ===> [killed].

beta_reduce(Arg^Expr*Arg, Expr).
