В некоторых случаях приходится вычислять сложные логические условия. При этом удобно выражать сложные условия через более простые с помощью логических связок "и", "или" и "не". Хотя Рефал Плюс и не содержит логических связок в явном виде, они легко изображаются с помощью имеющихся в нем конструкций.
*** Логическое "И"
Пусть у нас имеются два условия и требуется проверить, что они оба выполнены.
Если оба условия заданы тропами:
Q' и Q", достаточно вычислить тропу\{ Q';}, Q"
Если первое условие задано источником
S, второе - тропой Q, достаточно вычислить тропу S, Q.И наконец, если оба условия заданы результатными выражениями
Re' и Re", достаточно вычислить результатное выражениеRe' Re".
*** Логическое "ИЛИ"
Пусть у нас имеются два условия и требуется проверить, что хотя бы одно из них выполнено.Если оба условия заданы тропами:
Q' и Q", достаточно вычислить тропу\{ Q'; Q"; }
*** Логическое "НЕ"
Пусть у нас имеется условие, заданное тропой
Q, и требуется проверить, что оно не выполнено. Этого можно достичь, вычислив тропу# \{Q;}
которая является сокращенной записью для тропы
# \{Q;}, . Если же условие задано источником S, достаточно вычислить тропу# S
которая является сокращенной записью для тропы # S , . И в том, и в другом случае мы пользуемся возможностью опускать хвосты, состоящие из одной запятой.