stringtranslate.com

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

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

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

Синтаксис CTL

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

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

Например, ниже приведена корректная формула CTL:

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

Проблема с этой строкой заключается в том, что она может возникнуть только в сочетании с или .

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

Операторы

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

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

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

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

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

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

В CTL существует минимальный набор операторов. Все формулы CTL можно преобразовать для использования только этих операторов. Это полезно при проверке модели . Один минимальный набор операторов: {true, ∨, ¬, EG , EU , EX }.

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

Семантика CTL

Определение

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

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

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

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

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

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

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

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

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

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

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

Примеры

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

«Теперь я буду любить шоколад, что бы ни случилось».
«Возможно, когда-нибудь мне понравится шоколад, хотя бы на один день».
«Всегда возможно (А.Ф.), что мне вдруг навсегда понравится шоколад». (Примечание: не только оставшаяся часть моей жизни, поскольку моя жизнь конечна, а G бесконечна).
«В зависимости от того, что произойдет в будущем (E), возможно, что в оставшееся время (G) мне будет гарантирован по крайней мере один (AF) шоколадный день впереди. Однако, если что-нибудь когда-нибудь произойдет ошибаюсь, тогда все ставки отменены, и нет никакой гарантии, полюблю ли я когда-нибудь шоколад».

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

«С этого момента, пока на улице не станет тепло, я буду любить шоколад каждый божий день. Как только на улице станет тепло, все ставки на то, буду ли я больше любить шоколад, будут сделаны. О, и рано или поздно на улице будет тепло, даже если только на какое-то время». один день».
«Возможно, что: в конечном итоге наступит время, когда будет тепло всегда (AG.Q), и что до этого времени всегда будет какой-то способ заставить меня полюбить шоколад на следующий день (EX.P)».

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

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

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

Расширения

CTL был расширен количественной оценкой второго порядка и количественной логикой вычислительного дерева (QCTL). [1] Существует две семантики:

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

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

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

  1. ^ Дэвид, Амели; Ларуссини, Франсуа; Марки, Николас (2016). Дешарне, Жозе; Джагадисан, Радха (ред.). «О выразительности ККТЛ». 27-я Международная конференция по теории параллелизма (CONCUR 2016) . Международные труды Лейбница по информатике (LIPIcs). Дагштуль, Германия: Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik. 59 : 28:1–28:15. doi : 10.4230/LIPIcs.CONCUR.2016.28. ISBN 978-3-95977-017-0.
  2. ^ Хоссейн, Акаш; Ларуссини, Франсуа (2019). Гампер, Иоганн; Пинчинат, Софи; Скьявикко, Гвидо (ред.). «От количественного CTL до QBF». 26-й Международный симпозиум по временному представлению и рассуждению (TIME 2019) . Международные труды Лейбница по информатике (LIPIcs). Дагштуль, Германия: Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik. 147 : 11:1–11:20. doi : 10.4230/LIPIcs.TIME.2019.11. ISBN 978-3-95977-127-6. S2CID  195345645.

Внешние ссылки