Calculates the result for a Conjunction.
A conjunction is true if both its subformulas are true,
false if either of its subformulas is false,
and unknown otherwise.
Calculates the result for a Disjunction.
A disjunction is false if both its subformulas are false,
true if either of its subformulas is true,
and unknown otherwise.
Calculates the result for a LogicalVariable.
The value of a logical variable is
the value the variable is bound to in the environment,
and unknown if the variable is bound to no value.
Calculates the result for a Negation.
A negation is false if its subformula is true,
false if its subformula is true,
and unknown if its subformula's value is unknown.
A visitor that evaluates each formula, returning
Boolean.TRUE if the formula is true,
Boolean.FALSE if the formula is false, and
null if its value cannot be determined.