public Expression rewriteExpression ( Expression expression , Predicate < Symbol > symbolScope ) { checkArgument ( isDeterministic ( expression ) , "Only deterministic expressions may be considered for rewrite" ) ; return rewriteExpression ( expression , symbolScope , true ) ; }
Attempts to rewrite an Expression in terms of the symbols allowed by the symbol scope given the known equalities . Returns null if unsuccessful . This method checks if rewritten expression is non - deterministic .