  A core problem in learning semantic parsers from denotations is picking out
consistent logical forms--those that yield the correct denotation--from a
combinatorially large space. To control the search space, previous work relied
on restricted set of rules, which limits expressivity. In this paper, we
consider a much more expressive class of logical forms, and show how to use
dynamic programming to efficiently represent the complete set of consistent
logical forms. Expressivity also introduces many more spurious logical forms
which are consistent with the correct denotation but do not represent the
meaning of the utterance. To address this, we generate fictitious worlds and
use crowdsourced denotations on these worlds to filter out spurious logical
forms. On the WikiTableQuestions dataset, we increase the coverage of
answerable questions from 53.5% to 76%, and the additional crowdsourced
supervision lets us rule out 92.1% of spurious logical forms.
