Кіріспе

Есептеу ағашы логикасы (CTL) – уақыт логикасының тармақталу түрі, яғни оның уақыт моделі болашағы белгісіз ағаш тәрізді құрылым болып табылады; болашақта әртүрлі жолдар бар, олардың кез келгені нақты жол болуы мүмкін. Ол бағдарламалық немесе аппараттық артефакттарды формалды тексеруде, әдетте модельдік тексерушілер деп аталатын бағдарламалық қолданбалар арқылы қолданылады, олар берілген артефакттың қауіпсіздік немесе тіршілік қасиеттеріне ие екенін анықтайды. Мысалы, CTL кейбір бастапқы шарт орындалғанда (мысалы, барлық бағдарламалық айнымалылар оң сан немесе тас жолдағы көліктер екі қатарға жатпайды), бағдарламаның барлық мүмкін орындалуы жағымсыз жағдайлардан аулақ болады (мысалы, санды нөлге бөлу немесе тас жолда екі көлік соқтығысуы). Бұл мысалда, қауіпсіздік қасиетін модельдік тексеруші арқылы тексеруге болады, ол бастапқы шартты қанағаттандыратын бағдарламалық күйлерден барлық мүмкін өтулерді зерттейді және барлық осындай орындалулардың қасиетті қанағаттандыратынын қамтамасыз етеді. Есептеу ағашы логикасы сызықтық уақыт логикасын (LTL) қамтитын уақыт логикалары класына жатады. Тек CTL-де ғана немесе тек LTL-де ғана айтуға болатын қасиеттер болғанымен, екі логиканың бірінде де айтуға болатын барлық қасиеттерді CTL* арқылы да айтуға болады.

Тарих

CTL 1981 жылы Эдмунд М. Кларк және Э. Аллен Эмерсон ұсынған болатын, олар оны синхронизациялық скелеттер деп аталатын, яғни параллель бағдарламалардың абстракцияларын жасау үшін пайдаланды. CTL енгізілгеннен бері CTL мен LTL-дің салыстырмалы артықшылықтары туралы талқылаулар жүріп келеді. Модельді тексеруге есептеу ресурстары аз қажет болғандықтан, CTL өнеркәсіпте жиі қолданылады, және көптеген табысты модельді тексеру құралдары CTL-ді спецификация тілі ретінде пайдаланады.

Логикалық операторлар

Логикалық операторлар әдеттегідей: ¬, ∨, ∧, ⇒ және ⇔. Осы операторлармен қатар CTL формулалары сондай-ақ boolean тұрақтыларын true және false ретінде де пайдалана алады.

Басқа логикалармен байланысы

Есептеу ағашы логикасы (CTL) – CTL* және модульді μ-калькулының кіші жиынтығы болып табылады. CTL сондай-ақ Алур, Хензингер және Купферманның ауыспалы уақыт логикасының (ATL) фрагменті болып табылады. Есептеу ағашы логикасы (CTL) және сызықтық уақыт логикасы (LTL) екеуі де CTL*-дің кіші жиынтығы болып табылады. CTL және LTL эквивалентті емес, және олардың ортақ кіші жиынтығы бар, бұл кіші жиынтық CTL және LTL-дің өзінен кіші жиынтық болып табылады. Мысалы, P LTL-де кездеседі, бірақ CTL-де жоқ. AG(P⇒((EX Q)∧(EX¬Q))) және AG EF P CTL-де кездеседі, бірақ LTL-де жоқ.

Ұзартулар

CTL екінші реттік сандықталғанмен және сандықталған есептеу ағашы логикасына (QCTL) дейін кеңейтілді. Екі семантика бар:

ағаш семантикасы. Біз есептеу ағашының түйіндерін белгілейміз. QCTL* = QCTL = ағаштардағы MSO. Модельді тексеру және қанағаттандыру толыққанды. құрылым семантикасы. Біз күйлерді белгілейміз. QCTL* = QCTL = графтардағы MSO. Модельді тексеру PSPACE-толық, бірақ қанағаттандыру шешілмейді. QBF шешушілерін пайдалану мақсатында, құрылым семантикасымен QCTL модельді тексеру мәселесін TQBF (нағыз сандықталған Буль формулалары) түріне келтіру ұсынылды.