Should return True if e can be easily found to be False.

        :param e:                   The AST
        :param extra_constraints:   Extra constraints (as ASTs) to add to the solver for this solve.
        :param solver:              A solver, for backends that require it
        :param model_callback:      a function that will be executed with recovered models (if any)
        :return:                   A boolean.

def is_false(self, e, extra_constraints=(), solver=None, model_callback=None): #pylint:disable=unused-argument
        """
        Should return True if e can be easily found to be False.

        :param e:                   The AST
        :param extra_constraints:   Extra constraints (as ASTs) to add to the solver for this solve.
        :param solver:              A solver, for backends that require it
        :param model_callback:      a function that will be executed with recovered models (if any)
        :return:                   A boolean.
        """
        #if self._solver_required and solver is None:
        #   raise BackendError("%s requires a solver for evaluation" % self.__class__.__name__)
        if not isinstance(e, Base):
            return self._is_false(self.convert(e), extra_constraints=extra_constraints, solver=solver, model_callback=model_callback)

        try:
            return self._false_cache[e.cache_key]
        except KeyError:
            f = self._is_false(self.convert(e), extra_constraints=extra_constraints, solver=solver, model_callback=model_callback)
            self._false_cache[e.cache_key] = f
            if f is True:
                self._true_cache[e.cache_key] = False
            return f