Логика дерева вычислений - Computation tree logic

Логика дерева вычислений (CTL) - время ветвления логика, что означает, что его модель время это древовидный структура, в которой не определено будущее; в будущем есть разные пути, любой из которых может быть реальным, реализованным. Он используется в формальная проверка программных или аппаратных артефактов, обычно программных приложений, известных как модельные шашки, которые определяют, обладает ли данный артефакт безопасность или же живость характеристики. Например, CTL может указывать, что, когда выполняется какое-то начальное условие (например, все программные переменные положительны или на шоссе, пересекающем две полосы движения, нет машин), тогда все возможные исполнения программы избегают некоторых нежелательных условий (например, деления числа на ноль или две машины, столкнувшиеся на шоссе). В этом примере свойство безопасности можно проверить с помощью средства проверки модели, которое исследует все возможные переходы из состояний программы, удовлетворяющих начальному условию, и гарантирует, что все такие исполнения удовлетворяют этому свойству. Логика дерева вычислений принадлежит к классу темпоральная логика это включает линейная темпоральная логика (LTL). Хотя есть свойства, выражаемые только в CTL, и свойства, выражаемые только в LTL, все свойства, выражаемые в любой логике, также могут быть выражены в CTL *.

CTL был впервые предложен Эдмунд М. Кларк и Э. Аллен Эмерсон в 1981 году, который использовал его для синтеза так называемых скелеты синхронизации, т.е. абстракции параллельные программы.

Синтаксис CTL

В язык из хорошо сформированные формулы для CTL генерируется следующим грамматика:

куда колеблется в пределах набора атомарные формулы. Необязательно использовать все связки - например, содержит полный набор связок, и другие могут быть определены с их помощью.

  • означает "по всем путям" (Неизбежно)
  • означает "по крайней мере (существует) один путь" (возможно)

Например, следующая формула CTL имеет правильный формат:

)

Следующая формула не является правильной формулой CTL:

Проблема с этой строкой в ​​том, что может произойти только в паре с или . Оно использует атомарные предложения в качестве строительных блоков, чтобы делать заявления о состояниях системы. CTL затем объединяет эти предложения в формулы, используя логические операторы и темпоральная логика.

Операторы

Логические операторы

В логические операторы обычные: ¬, ∨, ∧, ⇒ и ⇔. Наряду с этими операторами формулы CTL могут также использовать логические константы истинный и ложный.

Временные операторы

Временные операторы следующие:

  • Кванторы по путям
    • А φ – Аll: φ должен держаться на всех путях, начиная с текущего состояния.
    • E φ – Exists: существует хотя бы один путь, начинающийся с текущего состояния, в котором φ держит.
  • Квантификаторы, зависящие от пути
    • Икс φ - NeИксt: φ должен удерживаться в следующем состоянии (этот оператор иногда отмечается N вместо Икс).
    • грамм φ – граммлобально: φ должен держаться на всем последующем пути.
    • F φ – Fнаконец: φ в итоге приходится держаться (где-то на последующем пути).
    • φ U ψ – Until: φ должен держать по меньшей мере пока в каком-то положении ψ держит. Отсюда следует, что ψ будут проверены в будущем.
    • φ W ψ – Weak до: φ должен держаться до ψ держит. Разница с U в том, что нет гарантии, что ψ когда-либо будет проверено. В W Оператор иногда называют «если».

В CTL *, временные операторы можно свободно смешивать. В CTL оператор всегда должен быть сгруппирован в две группы: один оператор пути, за которым следует оператор состояния. См. Примеры ниже. CTL * строго более выразительно, чем CTL.

Минимальный набор операторов

В CTL есть минимальный набор операторов. Все формулы CTL можно преобразовать для использования только этих операторов. Это полезно в проверка модели. Один минимальный набор операторов: {true, ∨, ¬, НАПРИМЕР, Европа, БЫВШИЙ}.

Некоторые из преобразований, используемых для временных операторов:

  • EFφ == E[истинныйU(φ)] ( потому что Fφ == [правдаU(φ)] )
  • ТОПОРφ == ¬БЫВШИЙφ)
  • AGφ == ¬EFφ) == ¬ E[истинныйUφ)]
  • AFφ == А[истинныйUφ] == ¬НАПРИМЕРφ)
  • А[φUψ] == ¬( E[(¬ψ)U¬(φψ)] ∨ НАПРИМЕРψ) )

Семантика CTL

Определение

Формулы CTL интерпретируются по Системы перехода. Переходная система - тройная , куда это набор состояний, является переходным отношением, предполагаемым последовательным, т.е. каждое состояние имеет по крайней мере одного преемника, и это функция маркировки, присваивающая состояниям пропозициональные буквы. Позволять быть такой переходной моделью

с где F - множество wffs над язык из .

Тогда отношение семантических логическое следствие определяется рекурсивно на :

Характеристика CTL

Правила 10–15, приведенные выше, относятся к путям вычислений в моделях и являются тем, что в конечном итоге характеризует «дерево вычислений»; они представляют собой утверждения о природе бесконечно глубокого дерева вычислений, имеющего корень в данном состоянии. .

Семантические эквивалентности

Формулы и называются семантически эквивалентными, если любое состояние в любой модели, удовлетворяющее одному, удовлетворяет и другому.

Можно видеть, что A и E двойственны, являясь универсальным и экзистенциальным кванторами пути вычисления соответственно:.

Кроме того, таковы G и F.

Следовательно, экземпляр Законы Де Моргана можно сформулировать в CTL:

Используя такие тождества, можно показать, что подмножество временных связок CTL является адекватным, если оно содержит , по крайней мере, один из и хотя бы один из и булевы связки.

Важные эквивалентности ниже называются законами расширения; они позволяют вовремя развернуть верификацию связки CTL по отношению к ее преемникам.

Примеры

Пусть «P» означает «я люблю шоколад», а Q - «на улице тепло».

  • AG
«Отныне я буду любить шоколад, что бы ни случилось».
  • EF
«Возможно, когда-нибудь я захочу шоколад, по крайней мере, на один день».
  • AF.НАПРИМЕР
«Всегда возможно (AF), что я внезапно начну любить шоколад в остальное время». (Примечание: не только до конца моей жизни, поскольку моя жизнь конечна, а грамм бесконечно).
  • НАПРИМЕР.AF
«Это критическое время в моей жизни. В зависимости от того, что произойдет дальше (E), возможно, что в остальное время (G) всегда будет какое-то время в будущем (AF), когда я буду любить шоколад. Однако , если в следующий раз произойдет что-то не то, все ставки отменены, и нет никакой гарантии, что я когда-нибудь полюблю шоколад ».

В двух следующих примерах показано различие между CTL и CTL *, поскольку они допускают, чтобы оператор until не определялся каким-либо оператором пути (А или же E):

  • AGUQ)
«С этого момента, пока на улице не станет тепло, я буду любить шоколад каждый божий день. Как только на улице станет тепло, все ставки на то, буду ли я больше любить шоколад, сняты. Да, и в конечном итоге на улице будет тепло, даже если только один день ".
  • EF((БЫВШИЙ.П)U(AG.Q))
"Возможно, что: рано или поздно наступит время, когда будет вечно тепло (AG.Q), а до этого времени всегда будет немного способ заставить меня полюбить шоколад на следующий день (EX.P) ".

Отношения с другой логикой

Логика дерева вычислений (CTL) является подмножеством CTL *, а также модальное исчисление μ. CTL также является фрагментом произведений Алура, Хенцингера и Купфермана. Временная логика с переменным временем (ATL).

Древовидная логика вычислений (CTL) и Линейная временная логика (LTL) являются подмножеством CTL *. CTL и LTL не эквивалентны и имеют общее подмножество, которое является правильным подмножеством как CTL, так и LTL.

  • FG.P существует в LTL, но не в CTL.
  • AG((БЫВШИЙ.Q)(БЫВШИЙ¬Q))) и AG.EF.P существуют в CTL, но не в LTL.

Расширения

CTL был расширен квантором второго порядка и .[1] Есть две семантики:

  • семантика дерева. Помечаем узлы дерева вычислений. QCTL * = QCTL = MSO над деревьями. Проверка модели и выполнимость полностью завершены.
  • семантика структуры. Мы маркируем состояния. QCTL * = QCTL = MSO по графикам. Проверка модели является полной PSPACE, но выполнимость не поддается решению.

Было предложено сокращение от задачи проверки модели QCTL со структурной семантикой до TQBF (истинные количественные двоичные формулы), чтобы воспользоваться преимуществами решателей QBF.[2]

Смотрите также

Рекомендации

  1. ^ Дэвид, Амели; Ларуссини, Франсуа; Марки, Николас (2016). Дешарне, Жозе; Джагадисан, Радха (ред.). «О выразительности QCTL». 27-я Международная конференция по теории параллелизма (CONCUR 2016). Leibniz International Proceedings in Informatics (LIPIcs). Дагштуль, Германия: Schloss Dagstuhl – Leibniz-Zentrum fuer Informatik. 59: 28:1–28:15. Дои:10.4230 / LIPIcs.CONCUR.2016.28. ISBN  978-3-95977-017-0.
  2. ^ Хосейн, Акаш; Ларуссини, Франсуа (2019). Гампер, Иоганн; Пинчинат, Софи; Sciavicco, Guido (ред.). «От количественного определения CTL к QBF». 26-й Международный симпозиум по темпоральному представлению и рассуждению (TIME 2019). Leibniz International Proceedings in Informatics (LIPIcs). Дагштуль, Германия: Schloss Dagstuhl – Leibniz-Zentrum fuer Informatik. 147: 11:1–11:20. Дои:10.4230 / LIPIcs.TIME.2019.11. ISBN  978-3-95977-127-6.
  • Э.М. Кларк; E.A. Эмерсон (1981). «Дизайн и синтез каркасов синхронизации с использованием временной логики ветвления» (PDF). Логика программ, Труды семинара, Конспект лекций по информатике. Спрингер, Берлин. 131: 52–71.
  • Майкл Хут; Марк Райан (2004). Логика в компьютерных науках (второе издание). Издательство Кембриджского университета. п. 207. ISBN  978-0-521-54310-1.
  • Эмерсон, Э. А .; Халперн, Дж. Ю. (1985). «Процедуры принятия решений и выразительность во временной логике ветвления времени». Журнал компьютерных и системных наук. 30 (1): 1–24. Дои:10.1016/0022-0000(85)90001-7.
  • Clarke, E.M .; Эмерсон, Э. А. и Систла, А. П. (1986). «Автоматическая проверка конечных параллельных систем с использованием спецификаций временной логики». Транзакции ACM по языкам и системам программирования. 8 (2): 244–263. Дои:10.1145/5397.5399.
  • Эмерсон, Э. А. (1990). «Временная и модальная логика». В Ян ван Леувен (ред.). Справочник по теоретической информатике, т. B. MIT Press. С. 955–1072. ISBN  978-0-262-22039-2.

внешняя ссылка