A theoretical foundation for solving "no-solution" problems by abstraction