Описание тега logical-purity
Есть два равно оправданных способа охарактеризовать чистоту:
Первый из них основан на собственном свойстве передающегося состоят из чистых предикатов. Чистый предикат - это истинное отношение, которое логически корректно, сохраняя алгебраические законы, такие как коммутативность конъюнкции.
Второй способ охарактеризовать чистоту основан на операционных свойствах предикатов: чистыми являются только монотонные (также называемые "монотонными") предикаты: если предикат успешен для любых аргументов, то он не является ошибочным для любого обобщения этих аргументов, и если он терпит неудачу для любой комбинации аргументов, то он не будет успешным для какой-либо специализации этих аргументов.
Кроме того, чистые предикаты не должны вызывать побочных эффектов.
Примеры чистых предикатов: (=)/2
, dif/2
и ограничения CLP(FD), такие как (#=)/2
.