- •Вопрос №9(Система аксиом ив, Полнота и независимость системы аксиом)
- •Аксиомы ив
- •1.6. Операции над протоколами
- •1.6.1. Конкатенация
- •1.6.2. Сужение
- •1.6.3. Голова и хвост
- •1.6.4. Звездочка
- •1.6.5. Порядок
- •1.6.6. Длина
- •1.7. Реализация протоколов
- •1.8. Протоколы процесса
- •1.8.1. Законы
- •1.8.2. Реализация
- •1.8.3. После
- •1.9. Дальнейшие операции над протоколами
- •1.9.1. Замена символа
- •1.9.2. Конкатенация
- •1.9.3. Чередование
- •1.9.4. Индекс
- •1.9.5. Обратный порядок
- •1.9.6. Выборка
- •1.9.7. Композиция
- •2.2. Взаимодействие
- •2.2.1. Законы
- •2.2.2. Реализация
- •2.2.3. Протоколы
- •2.3. Параллелизм
- •2.3.1. Законы
- •2.3.2. Реализация
- •2.3.3. Протоколы
- •1.10.1. Соответствие спецификации
- •1.10.2. Доказательства
2.2.2. Реализация
Реализация комбинирующего оператора || очевидным образом основана на L4:
взаим(P,Q) = λz.
if P(z) = "BLEEP ∨ Q(z) = "BLEEP then "BLEEP
else взаим(P(z),Q(z))
2.2.3. Протоколы
Поскольку каждое действие (P||Q) требует одновременного участия Р и Q, каждая последовательность таких действий должна быть возможной для обоих операндов. По этой же причине операция /s дистрибутивна относительно ||.
L1. протоколы(P||Q) = протоколы(Р) ∩ протоколы(Q)
L2. (P||Q)/s = (P/s) || (Q/s)
2.3. Параллелизм
Описанный в предыдущем разделе оператор можно обобщить на случай, когда его операнды Р и Q имеют различные алфавиты:
αР ≠ αQ
Когда такие процессы объединяются для совместного исполнения, события, содержащиеся в обоих алфавитах, требуют одновременного участия Р и Q (как было описано в предыдущем разделе). События же из алфавита Р, не содержащиеся в алфавите Q, не имеют никакого отношения к Q, который физически неспособен ни контролировать, ни даже замечать их. Такие события могут происходить при участии Р независимо от Q. Аналогично Q может самостоятельно участвовать в событиях, содержащихся в его алфавите, но отсутствующих в алфавите Р. Таким образом, множество всех событий, логически возможных для данной системы, есть просто объединение алфавитов составляющих ее процессов:
α(P || Q) = αP ∪ αQ
Это редкий пример операции, когда у операндов и результата различные алфавиты. Если же алфавиты операндов совпадают, то этот же алфавит имеет и их результирующая комбинация, и в этом случае у операции (P || Q) в точности тот же смысл, что и у операции, описанной в предыдущем разделе.
Примеры
X1. Пусть αТАШУМ = {мон, шок, звяк, щелк, ирис}, где «звяк» – звук монеты, попадающей в монетоприемник шумного торгового автомата, а «щелк» – щелчок, издаваемый автоматом при завершении каждой торговой операции. Если у шумного торгового автомата кончился запас ирисок, то
ТАШУМ = (мон → звяк → шок → щелк → ТАШУМ)
Покупатель у этого автомата определенно предпочитает ириску: не сумев получить ее, он восклицает «черт», после чего берет шоколадку:
αКЛИЕНТ = {мон, шок, черт, ирис}
КЛИЕНТ = (мон → (ирис → КЛИЕНТ) | черт → шок → КЛИЕНТ)
Результатом параллельной работы этих двух процессов является
(ТАШУМ || КЛИЕНТ) = μХ. (мон → (звяк → черт → шок → щелк → Х
| черт → шок → КЛИЕНТ)
Заметим, что событие звяк может как предшествовать событию черт, так и наоборот. Они могут произойти и одновременно, и порядок, в котором они будут зафиксированы, не имеет значения. Заметим, что настоящая математическая формула никак не отражает того факта, что клиент предпочитает получить ириску, нежели выругаться. Формула есть абстракция реальной действительности, не учитывающая людские эмоции и сосредоточенная лишь на описании возможности наступления или ненаступления событий из алфавита процесса независимо оттого, желательны они или нет.
Х2. Фишка стартует со средней нижней клетки поля и может
i
1
2
1
2
3
j
по нему вверх, вниз, влево или вправо. Пусть
αР = {вверх, вниз}
Р = (вверх → вниз → Р)
αQ = {влево, вправо}
Q = (вправо → влево → Q | влево → вправо → Q)
Поведение фишки можно определить как P || Q. В этом примере алфавиты αР и αQ не имеют общих событий. Перемещения фишки, следовательно, представляют собой произвольное чередование действий процессов Р и Q. Без помощи параллелизма описать такое чередование очень сложно. Обычно требуется взаимная рекурсия с уравнением для каждого состояния системы. Пусть, например, Rij отвечает поведению фишки (Х2), находящейся в i-строке и j-м столбце поля, где i ∈ {1,2}, j ∈ {1,2,3}. Тогда (P || Q) = R12, где
R21 = (вниз → R11 | вправо → R22)
R11 = (вверх → R21 | вправо → R12)
R22 = (вниз → R12 | влево → R21 | вправо → R23)
R12 = (вверх → R22 | влево → R11 | вправо → R13)
R23 = (вниз → R13 | влево → R22)
R13 = (вверх → R23 | влево → R12)