CTL *

In informatica teorica , in particolare nella verifica formale , CTL * (pronunciato CTL stella in inglese) è una logica temporale . Questa è una generalizzazione dell'albero logico del tempo  (in) (CTL: logica dell'albero di calcolo ) e della logica temporale lineare (LTL: logica temporale lineare ). Combina liberamente quantificatori su percorsi e operatori temporali. CTL * è quindi logica ad albero. La semantica delle formule CTL * si basa su una struttura Kripke .

Storico

La logica lineare temporale (LTL) è stata proposta per la prima volta da Amir Pnueli nel 1977, allo scopo di verificare i programmi per computer. Quattro anni dopo, nel 1981, Edmund M. Clarke e Allen Emerson inventarono il CTL e il controllo dei modelli . CTL * è stato definito da Emerson e Joseph Y. Halpern nel 1986.

È interessante notare che CTL e LTL sono stati sviluppati indipendentemente, prima di CTL *. Queste due logiche sono diventate molto importanti all'interno della comunità di controllo dei modelli, mentre CTL * rimane poco utilizzato . Questo è sorprendente , Perché la complessità algoritmica del controllo del modello CTL * non è peggiore di quella del controllo del modello LTL: questi due problemi sono in PSPACE .

Sintassi

Il linguaggio delle formule CTL * è generato dalla seguente grammatica libera dal contesto :

dov'è una proposizione atomica  ; .

Le formule CTL * valide vengono costruite utilizzando il simbolo . Queste formule sono chiamate formule di stato , mentre quelle create utilizzando il simbolo sono chiamate formule di percorso .

Semantica

La semantica di CTL * è interpretata in una struttura Kripke . Gli stati sono decorati con proposizioni atomiche .

CTL * permette di ragionare sia sugli stadi di calcolo (attraverso le formule di stato interpretate in relazione agli stati) sia sui calcoli nel loro complesso (con le formule di cammino interpretate sui cammini).

Possiamo fornire la seguente semantica intuitiva:

Formule di stato

Notiamo quando uno stato di una struttura Kripke soddisfa una formula di stato . Questa relazione è definita induttivamente dalle seguenti regole:

  1. sempre ;
  2. se e solo se decora  ;
  3. se e solo se  ;
  4. se e solo se e  ;
  5. se e solo se per qualsiasi percorso che inizia in  ;
  6. se e solo se per almeno un percorso che inizia in .

Formule di percorso

Notiamo quando un percorso di una struttura Kripke soddisfa una formula di percorso . Nota anche il sottopercorso . Questa relazione di soddisfazione è definita induttivamente dalle seguenti regole:

  1. se e solo se  ;
  2. se e solo se  ;
  3. se e solo se e  ;
  4. se e solo se  ;
  5. se e solo se tale e abbiamo .

Termini aggiuntivi

Possiamo definire le modalità ("accadrà almeno una volta in futuro") e ("accadrà sempre in futuro") come segue:

Notare che si applicano alle formule del percorso.

Esempi di formule

Nota: quando si considera LTL come un sottoinsieme di CTL *, qualsiasi formula di LTL è implicitamente preceduta dal quantificatore del percorso universale

Problemi decisionali

Il controllo del modello di CTL * è PSPACE-completo e il problema di soddisfacibilità è 2EXPTIME-completo.

Note e riferimenti

  1. Christel Baier e Joost-Pieter Katoen , Principi del Modello Controllo (Rappresentanza e Mente serie) , The MIT Press,1 ° gennaio 2008, 975  p. ( ISBN  978-0-262-02649-9 e 0-262-02649-X , leggi online )
  2. (in) Orna Kupferman e Moshe Y. Vardi , "  Church's problem revisited  " , Bulletin of Symbolic Logic , vol.  5, n o  2Giugno 1999, p.  245-263 ( DOI  10.2307 / 421091 , leggi in linea )

Bibliografia

Vedi anche

Articoli Correlati

link esterno

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">