Описание тега logical-purity

Логическая чистота - это свойство логических программ, написанных только с использованием предложений Хорна.

Есть два равно оправданных способа охарактеризовать чистоту:

Первый из них основан на собственном свойстве передающегося состоят из чистых предикатов. Чистый предикат - это истинное отношение, которое логически корректно, сохраняя алгебраические законы, такие как коммутативность конъюнкции.

Второй способ охарактеризовать чистоту основан на операционных свойствах предикатов: чистыми являются только монотонные (также называемые "монотонными") предикаты: если предикат успешен для любых аргументов, то он не является ошибочным для любого обобщения этих аргументов, и если он терпит неудачу для любой комбинации аргументов, то он не будет успешным для какой-либо специализации этих аргументов.

Кроме того, чистые предикаты не должны вызывать побочных эффектов.

Примеры чистых предикатов: (=)/2, dif/2 и ограничения CLP(FD), такие как (#=)/2.