Книга: ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ
Этап 4 - вынесение кванторов общности в начало формулы
Этап 4 - вынесение кванторов общности в начало формулы
После выполнения этого этапа, естественно, будет необходимо иметь возможность указывать, какие атомы Пролога представляют переменные формулы исчисления предикатов, а какие атомы представляют константы. Мы больше не сможем воспользоваться удобным правилом, согласно которому переменными являются в точности те символы, которые вводятся с помощью кванторов. Здесь представлена программа, выполняющая операции вынесения и удаления кванторов общности.
univout(all(X,P), P1):- !, univout(P,P1).
univout((P & Q),(P1 & Q1)):-!, univout(P,P1), univout(Q,Q1).
univout((P # Q),(P1 # Q1)):- !, univout(P,P1), univout(Q,Q1).
univout(P,P).
Эти правила определяют предикат univout таким образом, что univout(X, Y) означает, что Y получается из X в результате вынесения и удаления кванторов общности.
Необходимо отметить, что данное определение univout предполагает, что указанные операции будут применяться лишь после того, как полностью будут завершены первые три этапа преобразования. Следовательно, формула не должна содержать импликаций и кванторов существования.
- Этап 5 - использование дистрибутивных законов для. & и #
- Этап 1 - исключение импликаций и зквивалентностей
- Этап 2 - перенос отрицания внутрь формулы
- Этап 1 - исключение импликаций
- Этап 3 - сколемизация
- 1.8. СТАДИИ И ЭТАПЫ РАЗРАБОТКИ ПРОГРАММ
- Полиморфизм на этапе выполнения
- 1.1. Схема и основные этапы разработки новой продукции