Sentence -> AtomicSentence
| Sentence Connective Sentence
| Quantifier Variable,... Sentence
| NOT Sentence
| (Sentence)
AtomicSentence -> Predicate(Term, ...) | Term = Term
Term -> Constant
| Variable
| Function(Term,...)
Connective -> AND | OR | => | <=>
Quantifier -> FORALL | EXISTS
Constant -> A | X_1 | John | ...
Variable -> a | x | s ...
Predicate -> Before | HasColor | Raining | ...
Function -> Smelly | LeftLegOf | Plus | ...