code: def is_false(self, e, extra_constraints=(), solver=None, model_callback=None): #pylint:disable=unused-argument
          
          #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
docs: 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.