Чим відрізняється LTL від CTL?


12

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


1
Цією проблемою займаються нотатки на інтерв'ю. У Google є "різниця між LTL та CTL"?
Дейв Кларк

1
Спробуйте записати прості формули та оцінити їх семантику на структурах Крипке.
Vijay D

Відповіді:


21

Щоб реально зрозуміти різницю між LTL та CTL, ви повинні вивчити семантику обох мов. Формули LTL позначають властивості, які будуть інтерпретуватися при кожному виконанні програми. Для кожного можливого виконання (запуску), який можна розглядати як послідовність подій або станів на рядку - і саме тому його називають "лінійним часом" - задоволеність перевіряється на ходу без можливості переходу на інший пробіг під час перевірки. З іншого боку, CTL семантики перевіряє формулу на всі можливі траси і намагатимуться або всі можливі пробіги ( оператор) або тільки один прогін ( E оператор) , коли перед обличчям філії.

На практиці це означає, що деякі формули кожної мови не можна викласти іншою мовою. Наприклад, властивість скидання (важлива властивість доступності для проектування схеми) стверджує, що завжди існує можливість, що стан може бути досягнутий під час пробігу, навіть якщо він ніколи фактично не досягнутий ( AG EF reset ). LTL може констатувати лише те, що стан скидання фактично досягнуто, а не що його можна досягти.

З іншого боку, формула LTL не може бути переведена в CTL. Ця формула позначає властивість стабільності: у кожному виконанні програми s нарешті буде істинним до кінця програми (або назавжди, якщо програма ніколи не зупиняється). CTL може надати лише занадто сувору формулу ( AF AG s ) або занадто дозвільну ( AF EG s ). Другий явно неправильний. Це не так прямо для першого. Але AF AG s - це помилково. Розглянемо систему, що цикли на A1 , може перейти від A1 до B, а потім перейде до A2 на наступному кроці. Тоді система залишиться вsСтан A2 назавжди. Тоді "система нарешті залишиться у стані A " - це властивість типу . Очевидно, що ця властивість зберігається в системі. Однак AF AG не може захопити цю властивість, оскільки це навпаки: є запуск, в якому система завжди буде знаходитись у стані, з якого, нарешті, пробіг переходить у не A стан.s

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

Існує багато обговорень найкращої логіки вираження властивостей для перевірки програмного забезпечення ... але справжня дискусія десь в іншому місці. LTL може виражати важливі властивості для моделювання програмних систем (справедливості), коли CTL повинен мати нову семантику (нове відношення задоволеності) для їх вираження. Але алгоритми CTL зазвичай більш ефективні і можуть використовувати алгоритми на основі BDD. Отже ... немає найкращого рішення. Поки що лише два різні підходи.

Один із коментаторів пропонує статтю Варді "Розгалуження проти лінійного часу: остаточний розбор" .


дивіться дискусію про LTL проти CTL від Варді: "Відгалуження проти лінійного часу: Фінальний розбор"
Гай

дякую купу, це саме те розуміння, яке я шукав!
Анонімний боягуз

1

Якщо вам дають один об'єкт (наприклад, слід у випадку LTL), ви вважаєте лише одне майбутнє за кожний момент часу, у CTL ви маєте безліч їх.

Зокрема, nextдає унікальну дію в LTL, але (потенційно) цілий набір у CTL.


6
Але ви зазвичай застосовуєте формулу LTL до всіх запусків системи, а не лише до однієї, тим самим закриваючи розрив між однією / багатьма майбутніми проблемами. Точніше було б сказати, що LTL має справу з лінійним часом, тоді як CTL має справу з часом розгалуження.
Дейв Кларк

4
Скажімо, в LTL ви вважаєте, що одне майбутнє - це як сказати в CTL, ви вважаєте один стан. Задовільність визначається таким чином. Справа не в тому, скільки ф’ючерсів, а в структурі майбутнього. В одному це слід, в іншому - дерево.
Vijay D

@Vijay - справді структура має значення. Наприклад, ви не можете просто взяти формулу LTL, трансформуйте її як FGp -> AF AG p і отримайте еквівалентну формулу CTL (ці дві формули не еквівалентні; до того ж FGp не виражається в CTL, а AF AG p не виражається в LTL ).
jkff

Я припускав, що ОП знайоме з формальним визначенням і просить про якусь інтуїцію, звідси і моя спроба. Чи можна врятувати цю відповідь, сказавши "одне майбутнє на модель"?
Рафаель

Я не можу сказати, з чим знайомий ОП. Наприклад, чи зрозуміло їм, що таке модель у кожному випадку?
Vijay D
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.