В чем разница между LTL и CTL?

12

Я уже читал примеры формул в CTL, но не в LTL и наоборот, но у меня возникают проблемы с умственным пониманием формул LTL, и на самом деле в чем разница.

Анонимный трус
источник
1
Множество заметок на сайтах посвящено этой проблеме. Погуглил "разницу между LTL и CTL"?
Дейв Кларк
1
Попробуйте написать простые формулы и оценить их семантику на структурах Крипке.
Виджай Д

Ответы:

21

Чтобы по-настоящему понять разницу между LTL и CTL, вам нужно изучить семантику обоих языков. Формулы LTL обозначают свойства, которые будут интерпретироваться при каждом выполнении программы. Для каждого возможного выполнения (прогона), который можно рассматривать как последовательность событий или состояний на линии - и именно поэтому он называется «линейным временем» - выполнимость проверяется на прогоне без возможности переключения на другой прогон во время проверки. С другой стороны, CTL семантики проверяет формулу на все возможные трассы и будут пытаться либо все возможные пробеги ( оператор) или только один прогон ( E оператор) , когда перед лицом филиала.

На практике это означает, что некоторые формулы каждого языка не могут быть изложены на другом языке. Например, свойство сброса (важное свойство достижимости для проектирования схемы) утверждает, что всегда существует вероятность того, что состояние может быть достигнуто во время прогона, даже если оно никогда не достигнуто ( сброс AG EF ). LTL может только утверждать, что состояние сброса фактически достигнуто, но не может быть достигнуто.

С другой стороны, формула LTL не могут быть переведены в CTL. Эта формула обозначает свойство стабильности: при каждом выполнении программы s в конечном итоге будет иметь значение true до конца программы (или навсегда, если программа никогда не останавливается). CTL может предоставить только формулу, которая является слишком строгой ( AF AG s ) или слишком разрешительной ( AF EG s ). Второй явно не прав. Это не так просто для первого. Но AF AG s ошибочен. Рассмотрим систему, которая зацикливается на A1 , может перейти от A1 к B, а затем перейдет к A2sна следующем ходу. Тогда система останется в состоянии А2 навсегда. Затем «система будет , наконец , остаться в А состояние» является свойством типа . Очевидно, что это свойство верно для системы. Тем не менее, А. Ф. AG сек не может захватить этот объект , так верно и обратное: есть пробег , в котором система будет всегда находиться в состоянии , из которого бежать , наконец , идет в не A состоянии.s

Я не знаю, отвечает ли это на ваш вопрос, но я хотел бы добавить некоторые комментарии.

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

Один из комментаторов предлагает статью Варди «Ветвление против линейного времени: финальное вскрытие» .

Бенуа Фракин
источник
см. дискуссию о LTL против CTL от Vardi: «Ветвление против линейного времени: финальное вскрытие»
парень
спасибо большое, это именно то понимание, которое я искал!
Аноним Трус
1

Если дан один объект (например, трассировка в случае LTL), вы рассматриваете только одно будущее на каждый момент времени, в CTL у вас их множество.

В частности, nextдает уникальное действие в LTL, но (потенциально) целый набор в CTL.

Рафаэль
источник
6
Но вы обычно применяете формулу LTL ко всем запускам системы, а не только к одному, тем самым сокращая разрыв между одной / многими будущими проблемами. Точнее было бы сказать, что LTL имеет дело с линейным временем, тогда как CTL имеет дело со временем ветвления.
Дейв Кларк
4
Скажем, в LTL вы считаете, что одно будущее похоже на высказывание в CTL, что вы рассматриваете одно государство. Удовлетворенность определяется таким образом. Дело не в том, сколько фьючерсов, а в структуру будущего. В одном это след, в другом - дерево.
Виджай Д
@ Виджай - действительно, структура имеет значение. Например, вы не можете просто взять формулу LTL, преобразовать ее как FGp -> AF AG p и получить эквивалентную формулу CTL (эти две формулы не эквивалентны; более того, FGp не выражается в CTL, а AF AG p не выражается в LTL ).
JKFF
Я предположил, что ФП знаком с формальным определением и требует какой-то интуиции, поэтому я попробовал. Можно ли спасти этот ответ, сказав «одно будущее на модель»?
Рафаэль
Я не могу сказать, с чем знакома ОП. Например, им ясно, что за модель в каждом конкретном случае?
Виджай Д