Вариант без проверка за цикли.
Добавена проверка за цикли към проверката за обитаемост.
Премахване на излишна клауза и помощен предикат.
Използване на само един помощен предикат.