The (static) FlowAnalysis of some context OCLExpression exploits the hierarchy of the encompassing AS expression to
identify expressions that are necessarily true/false when the context expression evaluates. For instance the if the
contsxt expression is at or below the elseExpression of some IfExp, then the conditionExpression of the IfExp is
necessarily true. Given a set of known true/false expressions reverse evaluation of certain expressions allows
deduction that certain variables are null/not-null. THis is then used to imprive the precision of null safety guards.
e.g. in "let x : Integer = ... in x <> null implies x.toString()" we do not want to diagnose that "x.toString()" is unsafe.
An optimum implementation of this class might perform some very powerful/slow symbolic analyses. The current implementation
has useful but incomplete understanding of comparisons and Boolean operations. It lacks deep traversal of variables.