Вот вопрос «следа B», если таковой был. Резюме: первое, о чем я думаю, когда пытаюсь дать семантику недетерминированным программам, приводит к семантике, где я не могу доказать вещи о циклах, которые заканчивают только недетерминированно. Конечно, кто-то определил, что делать в этой ситуации, или, по крайней мере, указал, что это сложно, но я не знаю, как его искать (отсюда и тег «запрос ссылки»).
Фон
Я хочу смоделировать язык пока с недетерминизмом. Я думаю, что это очевидный (или, по крайней мере, наивный) способ моделировать такой язык с помощью домена силы Смита, но поправьте меня, если я ошибаюсь. Мы смоделируем значение команды на этом языке как функцию, чья область - это множество состояний а кодовый домен - множество , где - наименьший элемент представляет не прекращение, а - набор состояний.
- если , в противном случае
- if или , в противном случае
- ⟦ Р ⟧ сг = ⊥ ⟦ Q ⟧ т = ⊥ т ∈ ⟦ Р ⟧ сг ⋃ т ∈ ⟦ Р ⟧ сг ⟦ В ⟧ т if или для некоторого , в противном случае
Существует направленный полный частичный порядок , где для любого и если и являются собственными наборами, а , и мы можем расширить это до функций от до : если для каждой , и - это функция, которая отображает каждое состояние в .⊥ ⊑ S ′ S ′ ∈ P ( S ) ⊥ S 1 ⊑ S 2 S 1 S 2 S 1 ⊇ S 2 f Sf 1 ⊑ f 2 f 1 ( σ ) ⊑ f 2 ( σ ) σ f ⊥ ⊥
Значение цикла - это - это наименьшая верхняя граница цепи , где если , в противном случае если или для некоторого , в противном случае . (Это определение предполагает , что я только что определил Скотт непрерывен, но я думаю , что это безопасно , чтобы оставить это в стороне.)ф ⊥ ⊑ ф ( е ⊥ ) ⊑ ф ( е ( ф ⊥ ) ) ⊑ ... е ( г ) ( σ ) = { σ } ⟦ Е ⟧ ( σ ) = F л ев е ⊥ ⟦ Р ⟧ сг = ⊥т ∈ ⟦ Р ⟧ сге
Вопрос
Рассмотрим эту программу:
б : = т т у д ; ш х в я л е б д о
Наглядно это цикл , который может возвращать любое положительное четное число или не прекращается, и что соответствует тому , что мы можем доказать , об этом цикле , используя самую слабую либеральную предпосылку (можно показать , что петля инвариант). Однако, поскольку цикл имеет возможность не завершаться (мы можем уточнить недетерминированный выбор с помощью программы, которая всегда выбирает правую ветвь), значение этой программы для любого начального состояния равно . (Менее неформально: функция, которая отображает любое состояние, где ложно, и любое состояние, где верно для является фиксированной точкой используемой для определения цикла.)⊥ b b ⊥ f
Это означает, что предложенная мною наивная семантика не соответствует тому, как я ожидаю, чтобы иметь возможность рассуждать о программах. Я виню свою семантику, но не знаю, как их исправить.
источник
Ответы:
В [dB80] доказано, что анализ Хичкоком и Паком свойств завершения рекурсии соответствует семантическому анализу, основанному на так называемой интерпретации отношений Эгли-Милнера [Egl75, Plo76], которая выражает ошибочный недетерминизм. Это понятие фиксирует, что недетерминированное объединение отношений является правильным, если оно генерирует, по крайней мере, одно вычисление, приводящее к желаемому результату (даже при наличии неопределенного вычисления). Похоже, это соответствует тому, что вы пытаетесь сделать.
Далее охарактеризуйте значение оператора как функции отображающей каждое начальное состояние в некоторый непустой набор состояний, возможно, содержащий , такой, что является строгим в том смысле, что . Недетерминированный выбор между операторами и описывается функцией, отображающей каждое начальное состояние в объединение отдельных результатов . Таким образом, всякий раз, когда илиf S σ ⊥ f S f S ( ⊥ ) = { ⊥ } S 1 S 2 σ f S 1 ( σ ) ∪ f S 2 ( σ ) S 1 S 2S fS σ ⊥ fS fS(⊥)={⊥} S1 S2 σ fS1(σ)∪fS2(σ) S1 S2 имеет недетерминированную возможность получения нежелательного результата, как и их недетерминированный выбор. В качестве результирующих наборов конечных состояний в этом анализе получают так называемый набор состояний Эгли-Милнера:
Почему бесконечные подмножества не рассматриваются как возможные множества конечных состояний в этой модели? В предположении, что все основные строительные блоки реляционных терминов производят только конечные непустые множества возможных конечных состояний, бесконечный набор возможных конечных состояний может быть сгенерирован только тогда, когда возможны бесконечные вычисления. Это можно увидеть следующим образом. Структурируйте множество всех возможных вычислений, начиная с заданного состояния как дерева с корнем и состояний как узлов. Множество листьев - это в точности набор возможных конечных состояний, достижимых из , за исключениемσ 0 σ 0 σ 0 ⊥S σ0 σ0 σ0 ⊥ , который может отсутствовать среди листьев, но представлен во множестве конечных состояний тем, что в дереве существует бесконечный путь. По предположению выше, и поскольку доступен только конечный недетерминированный выбор, это дерево конечно ветвится. Таким образом, на любой данной конечной глубине имеется только конечное число листов. Следовательно, бесконечное число возможных конечных состояний может быть сгенерировано только при наличии бесконечного вычисления (применение леммы Кенига [Kön32]).
⊑ Е - М ы ,(PE--M(S),⊑E--M) является для
определяется как: для ,⊑E--M s,t∈PE--M(S)
Здесь можно рассматривать как заполнитель, с помощью которого можно генерировать наборы , вставляя больше состояний вместо . Следовательно, является наименьшим элементом . Кроме того, у poset есть lub для -цепей. Точно так же строгие функции из в частично упорядочены поточечным расширением . Кроме того, наименее такая функция⊑ Е - М ⊥ { ⊥ } ( Р Е - М ( С ) , ⊑ Е - М ) ( Р Е - М ( С ) , ⊑ Е - М ) ω S ∪ { ⊥ } Р Е --M ( S ) ⊑ E - M λ σ . { ⊥ }⊥ ⊑E--M ⊥ {⊥} (PE--M(S),⊑E--M) (PE--M(S),⊑E--M) ω S∪{⊥} PE--M(S) ⊑E--M λσ.{⊥} и lub's -цепей таких функций тоже существуют.ω
[dB80] Дж.В. де Баккер. Математическая теория корректности программы . Прентис Холл, 1980.
[Egl75] H Egli. Математическая модель для недетерминированных вычислений. Технический отчет, ETH Zürich, 1975.
[Kön32] D König. Theorie der endlichen und undndlichen Графен. Технический отчет, Лейпциг, 1932.
[Plo76] Г.Д. Плоткин. Энергетическая конструкция. Журнал SIAM по вычислениям , 5 (3): 452-487, 1976.
Отказ от ответственности: это взято почти дословно из книги, которую я когда-то в соавторстве:
WP де Ровер и К. Энгельхардт. Уточнение данных: модельно-ориентированные методы доказательства и их сравнение . Издательство Кембриджского университета, 1998.
источник