Логика дерева вычислений
Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( Октябрь 2015 г. ) |
Логика дерева вычислений ( CTL времени ветвления ) — это логика , что означает, что ее модель времени представляет собой древовидную структуру, в которой будущее не определено; в будущем существуют разные пути, любой из которых может оказаться реальным и реализованным путем. Он используется при формальной проверке программных или аппаратных артефактов, обычно программными приложениями, известными как средства проверки моделей , которые определяют, обладает ли данный артефакт свойствами безопасности или живучести . Например, CTL может указать, что, когда некоторое начальное условие удовлетворено (например, все переменные программы положительны или ни одна машина на шоссе не пересекает две полосы), тогда все возможные выполнения программы избегают некоторых нежелательных условий (например, деления числа на ноль или две машины столкнулись на шоссе). В этом примере свойство безопасности может быть проверено средством проверки модели, которое исследует все возможные переходы из состояний программы, удовлетворяющих начальному условию, и гарантирует, что все такие выполнения удовлетворяют этому свойству. Логика дерева вычислений принадлежит к классу темпоральная логика , включающая линейную темпоральную логику (LTL). Хотя существуют свойства, выражаемые только в CTL, и свойства, выражаемые только в LTL, все свойства, выражаемые в любой логике, также могут быть выражены в CTL* .
История
[ редактировать ]CTL был впервые предложен Эдмундом М. Кларком и Э. Алленом Эмерсоном в 1981 году, которые использовали его для синтеза так называемых скелетов синхронизации , то есть абстракций параллельных программ .
С момента появления CTL ведутся споры об относительных достоинствах CTL и LTL. Поскольку CTL более эффективен в вычислительном отношении для проверки моделей, он стал более распространенным в промышленном использовании, и многие из наиболее успешных инструментов проверки моделей используют CTL в качестве языка спецификации. [1]
Синтаксис CTL
[ редактировать ]Язык формул правильных для CTL генерируется следующей грамматикой :
где колеблется в пределах набора атомарных формул . Не обязательно использовать все связки – например, содержит полный набор связок, а остальные можно определить с их помощью.
- означает «вдоль всех путей» (неизбежно)
- означает «по крайней мере (существует) один путь» (возможно)
Например, ниже приведена корректная формула CTL:
Следующая формула CTL не является корректной:
Проблема с этой строкой заключается в том, что может возникнуть только в сочетании с или .
CTL использует атомарные предложения в качестве строительных блоков для формулирования утверждений о состояниях системы. Эти предложения затем объединяются в формулы с использованием логических операторов и темпоральных операторов .
Операторы
[ редактировать ]Логические операторы
[ редактировать ]Логические операторы обычные: ¬, ∨, ∧, ⇒ и ⇔. Наряду с этими операторами формулы CTL также могут использовать логические константы true и false .
Временные операторы
[ редактировать ]Временные операторы следующие:
- Кванторы по путям
- A Φ – A ll: Φ должно выполняться на всех путях, начиная с текущего состояния.
- E Φ – существует : существует хотя бы один путь, начинающийся из текущего состояния, в котором выполняется Φ.
- Кванторы, специфичные для пути
- X φ – Ne x t: φ должен выполняться в следующем состоянии (этот оператор иногда обозначается N вместо X ).
- G φ – G глобально: φ должна соблюдаться на всем последующем пути.
- F φ – F наконец: φ в конце концов должна выполняться (где-то на последующем пути).
- φ U ψ – Until : φ должно выполняться по крайней мере до тех пор, пока в некоторой позиции не будет выполнено ψ . Это означает, что ψ будет проверена в будущем.
- φ W ψ – Слабое до тех пор , пока: φ должно выполняться до тех пор, пока не будет выполнено ψ . Отличие от U состоит в том, что нет никакой гарантии, что ψ когда-либо будет проверена. Оператор W иногда называют «если».
В CTL* темпоральные операторы можно свободно смешивать. В CTL операторы всегда должны быть сгруппированы парами: один оператор пути, за которым следует оператор состояния. См. примеры ниже. CTL* строго более выразителен, чем CTL.
Минимальный набор операторов
[ редактировать ]В CTL существует минимальный набор операторов. Все формулы CTL можно преобразовать для использования только этих операторов. Это полезно при проверке модели . Один минимальный набор операторов: {true, ∨, ¬, EG , EU , EX }.
Некоторые из преобразований, используемых для темпоральных операторов:
- EF φ == E [истинно U ( φ )] (потому что F φ == [истинно U ( φ )] )
- AX φ == ¬ EX (¬ φ )
- AG φ == ¬ EF (¬ φ ) == ¬ E [истинное U (¬ φ )]
- AF φ == A [истина U φ ] == ¬ EG (¬ φ )
- A [ φ U ψ ] == ¬( E [(¬ ψ ) U ¬( φ ∨ ψ )] ∨ EG (¬ ψ ) )
Семантика CTL
[ редактировать ]Определение
[ редактировать ]Формулы CTL интерпретируются по системам переходов . Переходная система представляет собой тройку , где представляет собой совокупность состояний, является переходным отношением, которое считается последовательным, т. е. каждое состояние имеет хотя бы одного преемника, и — это функция маркировки, присваивающая состояниям пропозициональные буквы. Позволять быть такой переходной моделью, с , и , где набор корректных формул на языке представляет собой .
Тогда отношение семантического следствия определяется рекурсивно на :
Характеристика CTL
[ редактировать ]Правила 10–15, приведенные выше, относятся к путям вычислений в моделях и в конечном итоге характеризуют «дерево вычислений»;это утверждения о природе бесконечно глубокого дерева вычислений, корнями которого являются данное состояние. .
Семантические эквиваленты
[ редактировать ]Формулы и называются семантически эквивалентными, если любое состояние в любой модели, удовлетворяющее одному, также удовлетворяет и другому.Это обозначается
Видно, что и являются двойственными, являясь кванторами универсального и экзистенциального пути вычислений соответственно: .
Кроме того, таковы и .
Следовательно, пример законов Де Моргана можно сформулировать в CTL:
Используя такие тождества, можно показать, что подмножество временных связок CTL является адекватным, если оно содержит , хотя бы один из и хотя бы один из и логические связи.
Важные эквивалентности, приведенные ниже, называются законами расширения ; они позволяют развернуть проверку CTL-коннекта по отношению к его преемникам во времени.
Примеры
[ редактировать ]Пусть «P» означает «Я люблю шоколад», а Q означает «На улице тепло».
- АГ .П
- «Теперь я буду любить шоколад, что бы ни случилось».
- ЭФ .П
- «Возможно, когда-нибудь мне понравится шоколад, хотя бы на один день».
- ИЗ . ЭГ .П
- «Всегда возможно (А.Ф.), что мне вдруг навсегда понравится шоколад». (Примечание: не только оставшаяся часть моей жизни, поскольку моя жизнь конечна, а G бесконечна).
- ЭК . ОФ .П
- «В зависимости от того, что произойдет в будущем (E), возможно, что в оставшееся время (G) мне будет гарантирован по крайней мере один (AF) шоколадный день впереди. Однако, если что-то когда-нибудь произойдет ошибаюсь, тогда все ставки отменяются, и нет никакой гарантии, полюблю ли я когда-нибудь шоколад».
В двух следующих примерах показана разница между CTL и CTL*, поскольку они позволяют оператору Until не уточняться каким-либо оператором пути ( A или E ):
- АГ (П У К)
- «С этого момента, пока на улице не станет тепло, я буду любить шоколад каждый божий день. Как только на улице станет тепло, все ставки на то, буду ли я больше любить шоколад, будут сделаны. О, и рано или поздно на улице будет тепло, даже если только на какое-то время». один день».
- EF (( EX .P) U ( AG .Q))
- «Возможно, что: в конце концов наступит время, когда будет тепло навсегда (AG.Q), и что до этого времени всегда будет какой-то способ заставить меня полюбить шоколад на следующий день (EX.P)».
Отношения с другой логикой
[ редактировать ]Логика дерева вычислений (CTL) является подмножеством CTL*, а также модального µ-исчисления . CTL также является фрагментом темпоральной логики переменного времени (ATL) Алура, Хензингера и Купфермана.
Логика дерева вычислений (CTL) и линейная временная логика (LTL) являются подмножеством CTL*. CTL и LTL не эквивалентны и имеют общее подмножество, которое является подмножеством как CTL, так и LTL.
- FG .P существует в LTL, но не существует в CTL.
- AG (P⇒(( EX .Q)∧( EX ¬Q))) и AG.EF .P существуют в CTL, но не в LTL.
Расширения
[ редактировать ]CTL расширен второго порядка. количественной оценкой и к количественной вычислительной древовидной логике (QCTL). [2] Есть две семантики:
- семантика дерева. Помечаем узлы дерева вычислений. QCTL* = QCTL = MSO над деревьями. Проверка модели и ее удовлетворительность завершены.
- Семантика структуры. Мы маркируем состояния. QCTL* = QCTL = MSO над графиками . Проверка модели является PSPACE-полной , но выполнимость неразрешима .
Чтобы воспользоваться преимуществами решателей QBF, было предложено свести проблему проверки модели QCTL со структурной семантикой к TQBF (истинным количественным логическим формулам). [3]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Варди, Моше Ю. (2001). «Ветвление против линейного времени: финальная схватка» (PDF) . Конспекты лекций по информатике. Том. 2031. Шпрингер, Берлин. стр. 1–22. дои : 10.1007/3-540-45319-9_1 . ISBN 978-3-540-41865-8 .
{{cite book}}
:|journal=
игнорируется ( помощь ) ; Отсутствует или пусто|title=
( помощь ) - ^ Дэвид, Амели; Ларуссини, Франсуа; Марки, Николас (2016). Дешарне, Жозе; Джагадисан, Радха (ред.). «О выразительности ККТЛ» . 27-я Международная конференция по теории параллелизма (CONCUR 2016) . Международные труды Лейбница по информатике (LIPIcs). 59 . Дагштуль, Германия: Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik: 28:1–28:15. doi : 10.4230/LIPIcs.CONCUR.2016.28 . ISBN 978-3-95977-017-0 .
- ^ Хоссейн, Акаш; Ларуссини, Франсуа (2019). Гампер, Иоганн; Пинчинат, Софи; Скьявикко, Гвидо (ред.). «От количественного CTL к QBF» . 26-й Международный симпозиум по временному представлению и рассуждению (TIME 2019) . Международные труды Лейбница по информатике (LIPIcs). 147 . Дагштуль, Германия: Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik: 11:1–11:20. doi : 10.4230/LIPIcs.TIME.2019.11 . ISBN 978-3-95977-127-6 . S2CID 195345645 .
- Э.М. Кларк; Э.А. Эмерсон (1981). «Проектирование и синтез скелетов синхронизации с использованием временной логики ветвления» (PDF) . Логика программ, Материалы семинара, Конспект лекций по информатике . Том. 131. Шпрингер, Берлин. стр. 52–71. дои : 10.1007/BFb0025774 . ISBN 3-540-11212-Х .
- Майкл Хут; Марк Райан (2004). Логика в информатике (второе изд.). Издательство Кембриджского университета. п. 207. ИСБН 978-0-521-54310-1 .
- Эмерсон, Э.А.; Халперн, JY (1985). «Процедуры принятия решений и выразительность во временной логике ветвления времени». Журнал компьютерных и системных наук . 30 (1): 1–24. CiteSeerX 10.1.1.221.6187 . дои : 10.1016/0022-0000(85)90001-7 .
- Кларк, EM; Эмерсон, Э.А. и Систла, AP (1986). «Автоматическая верификация параллельных систем с конечным числом состояний с использованием спецификаций темпоральной логики» . Транзакции ACM в языках и системах программирования . 8 (2): 244–263. дои : 10.1145/5397.5399 . S2CID 52853200 .
- Эмерсон, Э.А. (1990). «Временная и модальная логика». Ян ван Леувен (ред.). Справочник по теоретической информатике, том. Б. МТИ Пресс. стр. 955–1072. ISBN 978-0-262-22039-2 .