This function does a constraint check and returns the solvers state

        :param solver:              The backend solver object.
        :param extra_constraints:   Extra constraints (as ASTs) to add to s for this solve
        :param model_callback:      a function that will be executed with recovered models (if any)
        :return:                    'SAT', 'UNSAT', or 'UNKNOWN'

def _check_satisfiability(self, extra_constraints=(), solver=None, model_callback=None):
        """
        This function does a constraint check and returns the solvers state

        :param solver:              The backend solver object.
        :param extra_constraints:   Extra constraints (as ASTs) to add to s for this solve
        :param model_callback:      a function that will be executed with recovered models (if any)
        :return:                    'SAT', 'UNSAT', or 'UNKNOWN'
        """
        return 'SAT' if self.satisfiable(extra_constraints=extra_constraints, solver=solver, model_callback=model_callback) else 'UNSAT'