def is_feasible(self, solution):
        """Returns True if the given solution's derivatives may have potential
        valid, complete solutions.
        """
        newvars = solution.new.keys()
        for newvar in newvars:
            for c in self._constraints_for_var.get(newvar, []):
                values = c.extract_values(solution, use_defaults=True)
                if not c(*values):
                    return False
        return True
Returns True if the given solution's derivatives may have potential
        valid, complete solutions.