def is_true(self, e, extra_constraints=(), solver=None, model_callback=None): 
<EOL>if not isinstance(e, Base):<EOL><INDENT>return self._is_true(self.convert(e), extra_constraints=extra_constraints, solver=solver, model_callback=model_callback)<EOL><DEDENT>try:<EOL><INDENT>return self._true_cache[e.cache_key]<EOL><DEDENT>except KeyError:<EOL><INDENT>t = self._is_true(self.convert(e), extra_constraints=extra_constraints, solver=solver, model_callback=model_callback)<EOL>self._true_cache[e.cache_key] = t<EOL>if t is True:<EOL><INDENT>self._false_cache[e.cache_key] = False<EOL><DEDENT>return t<EOL><DEDENT>
Should return True if `e` can be easily found to be True.

: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)
:returns:                   A boolean.