CTL*

CTL* är en superuppsättning av beräkningsträdlogik (CTL) och linjär temporal logik (LTL). Den kombinerar fritt vägkvantifierare och temporala operatorer. Precis som CTL är CTL* en logik för förgreningstid. Den formella semantiken för CTL*-formler definieras med avseende på en given Kripke-struktur .

Historia

LTL hade föreslagits för verifiering av datorprogram, först av Amir Pnueli 1977. Fyra år senare, 1981, uppfann EM Clarke och EA Emerson CTL- och CTL -modellkontroll . CTL* definierades av EA Emerson och Joseph Y. Halpern 1983.

CTL och LTL utvecklades oberoende före CTL*. Båda sublogikerna har blivit standarder i modellkontrollgemenskapen , medan CTL* är av praktisk betydelse eftersom det ger en uttrycksfull testbädd för att representera och jämföra dessa och andra logiker. Detta är förvånande [ citat behövs ] eftersom beräkningskomplexiteten för modellkontroll i CTL* inte är värre än för LTL: de ligger båda i PSPACE .

Syntax

Språket för välformade CTL*-formler genereras av följande otvetydiga (med avseende på parentes) kontextfri grammatik :

där sträcker sig över en uppsättning atomformler . Giltiga CTL*-formler byggs med den icke-terminala . Dessa formler kallas tillståndsformler , medan de som skapas av symbolen kallas sökvägsformler . (Ovanstående grammatik innehåller några redundanser; till exempel såväl som implikation och ekvivalens kan definieras som bara för booleska algebror (eller propositionslogik ) från negation och konjunktion, och den temporala operatorerna X och U är tillräckliga för att definiera de andra två .)

Operatörerna är i princip samma som i CTL . I CTL måste dock varje temporal operator ( ) direkt föregås av en kvantifierare, medan detta inte krävs i CTL*. Den universella vägkvantifieraren kan definieras i CTL* på samma sätt som för klassisk predikatkalkyl även om detta inte är möjligt i CTL fragment.

Exempel på formler

  • CTL*-formel som varken finns i LTL eller i CTL:
  • LTL-formel som inte finns i CTL:
  • CTL-formel som inte finns i LTL:
  • CTL*-formel som finns i CTL och LTL:

Anmärkning: När du tar LTL som delmängd av CTL*, prefixes alla LTL-formler implicit med den universella sökvägskvantifieraren .

Semantik

Semantiken för CTL* definieras med avseende på någon Kripke-struktur . Som namnen antyder tolkas tillståndsformler med avseende på tillstånden för denna struktur, medan sökvägsformler tolkas över vägar på den.

Ange formler

Om ett tillstånd i Kripke-strukturen uppfyller en tillståndsformel betecknas det . Denna relation definieras induktivt enligt följande:

  1. för alla sökvägar som börjar på
  2. för någon väg som börjar på

Sökvägsformler

Nöjdhetsrelationen för sökvägsformler och en bana definieras också induktivt. För detta, låt beteckna undersökvägen :

Beslutsproblem

Modellkontroll av CTL* är PSPACE-komplett och tillfredsställbarhetsproblemet är 2EXPTIME -komplett.

Se även

  • Amir Pnueli : Programs tidsmässiga logik. Proceedings of the 18th Annual Symposium on Foundations of Computer Science (FOCS), 1977, 46–57. DOI= 10.1109/SFCS.1977.32
  • E. Allen Emerson , Joseph Y. Halpern : "Ibland" och "inte aldrig" återbesökt: om förgrening kontra linjär tid tidslogik. J. ACM 33, 1 (januari 1986), 151-178. DOI= http://doi.acm.org/10.1145/4904.4999
  • Ph. Schnoebelen: Komplexiteten av kontroll av tidslogikmodeller. Advances in Modal Logic 2002: 393–436

externa länkar