Articulo de referencia

CTL*

CTL* es un superconjunto de la lógica de árbol computacional (CTL) y la lógica temporal lineal (LTL). Combina libremente cuantificadores de ruta y operadores temporales. Al igua...

CTL* es un superconjunto de la lógica de árbol computacional (CTL) y la lógica temporal lineal (LTL). Combina libremente cuantificadores de ruta y operadores temporales. Al igual que CTL, CTL* es una lógica de tiempo ramificado. La semántica formal de las fórmulas de CTL* se define con respecto a una estructura de Kripke dada .

Historia

LTL se propuso para la verificación de programas informáticos, por primera vez por Amir Pnueli en 1977. Cuatro años después, en 1981, EM Clarke y EA Emerson inventaron CTL y la verificación de modelos CTL . CTL* fue definido por EA Emerson y Joseph Y. Halpern en 1983. [ 1 ]

CTL y LTL se desarrollaron de forma independiente antes que CTL*. Ambas sublógicas se han convertido en estándares en la comunidad de verificación de modelos , mientras que CTL* tiene importancia práctica porque proporciona un banco de pruebas expresivo para representar y comparar estas y otras lógicas. Esto es sorprendente porque la complejidad computacional de la verificación de modelos en CTL* no es peor que la de LTL: ambas se encuentran en PSPACE .

Sintaxis

El lenguaje de las fórmulas CTL* bien formadas se genera mediante la siguiente gramática libre de contexto no ambigua (con respecto al uso de corchetes) :

Φ::=pag(¬Φ)(ΦΦ)(ΦΦ)(ΦΦ)(ΦΦ)Aϕmiϕ{\displaystyle \Phi ::=\bot \mid \top \mid p\mid (\neg \Phi )\mid (\Phi \land \Phi )\mid (\Phi \lor \Phi )\mid (\Phi \Rightarrow \Phi )\mid (\Phi \Leftrightarrow \Phi )\mid A\phi \mid E\phi }
ϕ::=Φ(¬ϕ)(ϕϕ)(ϕϕ)(ϕϕ)(ϕϕ)incógnitaϕFϕGRAMOϕ[ϕUϕ]{\displaystyle \phi ::=\Phi \mid (\neg \phi )\mid (\phi \land \phi )\mid (\phi \lor \phi )\mid (\phi \Rightarrow \phi )\mid (\phi \Leftrightarrow \phi )\mid X\phi \mid F\phi \mid G\phi \mid [\phi U\phi ]}

dóndepag{\displaystyle p}abarca un conjunto de fórmulas atómicas . Las fórmulas CTL* válidas se construyen utilizando el no terminal.Φ{\displaystyle \Phi }Estas fórmulas se denominan fórmulas de estado , mientras que las creadas por el símboloϕ{\displaystyle \phi }se denominan fórmulas de ruta . (La gramática anterior contiene algunas redundancias; por ejemploΦΦ{\displaystyle \Phi \lor \Phi }así como la implicación y la equivalencia pueden definirse simplemente para las álgebras booleanas (o lógica proposicional ) a partir de la negación y la conjunción, y los operadores temporales X y U son suficientes para definir las otras dos .

Los operadores son básicamente los mismos que en CTL . Sin embargo, en CTL, cada operador temporal (incógnita,F,GRAMO,U{\displaystyle X,F,G,U}) debe ir precedido directamente por un cuantificador, mientras que en CTL* esto no es necesario. El cuantificador de ruta universal puede definirse en CTL* de la misma manera que para el cálculo de predicados clásico.Aϕ=¬mi¬ϕ{\displaystyle A\phi =\neg E\neg \phi }, aunque esto no es posible en el fragmento CTL.

Ejemplos de fórmulas

  • Fórmula CTL* que no está ni en LTL ni en CTL:miincógnita(pag)AFGRAMO(pag){\displaystyle EX(p)\land AFG(p)}
  • Fórmula LTL que no está en CTL: AFGRAMO(pag){\displaystyle \ AFG(p)}
  • Fórmula CTL que no está en LTL: miincógnita(pag){\displaystyle \ EX(p)}
  • Fórmula CTL* que se encuentra en CTL y LTL: AGRAMO(pag){\displaystyle \ AG(p)}

Nota: Cuando se toma LTL como subconjunto de CTL*, cualquier fórmula LTL se antepone implícitamente con el cuantificador de ruta universal.A{\displaystyle A}.

Semántica

La semántica de CTL* se define con respecto a alguna estructura de Kripke . Como su nombre indica, las fórmulas de estado se interpretan con respecto a los estados de esta estructura, mientras que las fórmulas de ruta se interpretan sobre las rutas que la componen.

Fórmulas de estado

Si un estados{\displaystyle s}de la estructura de Kripke satisface una fórmula de estadoΦ{\displaystyle \Phi }se denotasΦ{\displaystyle s\modelos \Phi }Esta relación se define inductivamente de la siguiente manera:

  1. ((METRO,s))((METRO,s)){\displaystyle {\Big (}({\mathcal {M}},s)\models \top {\Big )}\land {\Big (}({\mathcal {M}},s)\not \models \bot {\Big )}}
  2. ((METRO,s)pag)(pagL(s)){\displaystyle {\Big (}({\mathcal {M}},s)\models p{\Big )}\Leftrightarrow {\Big (}p\in L(s){\Big )}}
  3. ((METRO,s)¬Φ)((METRO,s)Φ){\displaystyle {\Big (}({\mathcal {M}},s)\models \neg \Phi {\Big )}\Leftrightarrow {\Big (}({\mathcal {M}},s)\not \models \Phi {\Big )}}
  4. ((METRO,s)Φ1Φ2)(((METRO,s)Φ1)((METRO,s)Φ2)){\displaystyle {\Big (}({\mathcal {M}},s)\models \Phi _{1}\land \Phi _{2}{\Big )}\Leftrightarrow {\Big (}{\big (}({\mathcal {M}},s)\models \Phi _{1}{\big )}\land {\big (}({\mathcal {M}},s)\models \Phi _{2}{\big )}{\Big )}}
  5. ((METRO,s)Φ1Φ2)(((METRO,s)Φ1)((METRO,s)Φ2)){\displaystyle {\Big (}({\mathcal {M}},s)\models \Phi _{1}\lor \Phi _{2}{\Big )}\Leftrightarrow {\Big (}{\big (}({\mathcal {M}},s)\models \Phi _{1}{\big )}\lor {\big (}({\mathcal {M}},s)\models \Phi _{2}{\big )}{\Big )}}
  6. ((METRO,s)Φ1Φ2)(((METRO,s)Φ1)((METRO,s)Φ2)){\displaystyle {\Big (}({\mathcal {M}},s)\models \Phi _{1}\Rightarrow \Phi _{2}{\Big )}\Leftrightarrow {\Big (}{\big (}({\mathcal {M}},s)\not \models \Phi _{1}{\big )}\lor {\big (}({\mathcal {M}},s)\models \Phi _{2}{\big )}{\Big )}}
  7. ((METRO,s)Φ1Φ2)((((METRO,s)Φ1)((METRO,s)Φ2))(¬((METRO,s)Φ1)¬((METRO,s)Φ2))){\displaystyle {\bigg (}({\mathcal {M}},s)\models \Phi _{1}\Leftrightarrow \Phi _{2}{\bigg )}\Leftrightarrow {\bigg (}{\Big (}{\big (}({\mathcal {M}},s)\models \Phi _{1}{\big )}\land {\big (}({\mathcal {M}},s)\models \Phi _{2}{\big )}{\Big )}\lor {\Big (}\neg {\big (}({\mathcal {M}},s)\models \Phi _{1}{\big )}\land \neg {\big (}({\mathcal {M}},s)\models \Phi _{2}{\big )}{\Big )}{\bigg )}}
  8. ((METRO,s)Aϕ)(πϕ{\displaystyle {\Big (}({\mathcal {M}},s)\models A\phi {\Big )}\Leftrightarrow {\Big (}\pi \models \phi }para todos los caminos π{\displaystyle \ \pi }comenzando ens){\displaystyle s{\Big )}}
  9. ((METRO,s)miϕ)(πϕ{\displaystyle {\Big (}({\mathcal {M}},s)\models E\phi {\Big )}\Leftrightarrow {\Big (}\pi \models \phi }por algún camino π{\displaystyle \ \pi }comenzando ens){\displaystyle s{\Big )}}

Fórmulas de ruta

La relación de satisfacciónπϕ{\displaystyle \pi \models \phi }para fórmulas de ruta ϕ{\displaystyle \ \phi }y un caminoπ=s0s1{\displaystyle \pi =s_{0}\to s_{1}\to \cdots }También se define inductivamente. Para ello, sea π[norte]{\displaystyle \ \pi [n]}denota la subrutasnortesnorte+1{\displaystyle s_{n}\to s_{n+1}\to \cdots }:

  1. (πΦ)((METRO,s0)Φ){\displaystyle {\Big (}\pi \models \Phi {\Big )}\Leftrightarrow {\Big (}({\mathcal {M}},s_{0})\models \Phi {\Big )}}
  2. (π¬ϕ)(πϕ){\displaystyle {\Big (}\pi \models \neg \phi {\Big )}\Leftrightarrow {\Big (}\pi \not \models \phi {\Big )}}
  3. (πϕ1ϕ2)((πϕ1)(πϕ2)){\displaystyle {\Big (}\pi \models \phi _{1}\land \phi _{2}{\Big )}\Leftrightarrow {\Big (}{\big (}\pi \models \phi _{1}{\big )}\land {\big (}\pi \models \phi _{2}{\big )}{\Big )}}
  4. (πϕ1ϕ2)((πϕ1)(πϕ2)){\displaystyle {\Big (}\pi \models \phi _{1}\lor \phi _{2}{\Big )}\Leftrightarrow {\Big (}{\big (}\pi \models \phi _{1}{\big )}\lor {\big (}\pi \models \phi _{2}{\big )}{\Big )}}
  5. (πϕ1ϕ2)((πϕ1)(πϕ2)){\displaystyle {\Big (}\pi \models \phi _{1}\Rightarrow \phi _{2}{\Big )}\Leftrightarrow {\Big (}{\big (}\pi \not \models \phi _{1}{\big )}\lor {\big (}\pi \models \phi _{2}{\big )}{\Big )}}
  6. (πϕ1ϕ2)(((πϕ1)(πϕ2))(¬(πϕ1)¬(πϕ2))){\displaystyle {\bigg (}\pi \models \phi _{1}\Leftrightarrow \phi _{2}{\bigg )}\Leftrightarrow {\bigg (}{\Big (}{\big (}\pi \models \phi _{1}{\big )}\land {\big (}\pi \models \phi _{2}{\big )}{\Big )}\lor {\Big (}\neg {\big (}\pi \models \phi _{1}{\big )}\land \neg {\big (}\pi \models \phi _{2}{\big )}{\Big )}{\bigg )}}
  7. (πincógnitaϕ)(π[1]ϕ){\displaystyle {\Big (}\pi \models X\phi {\Big )}\Leftrightarrow {\Big (}\pi [1]\models \phi {\Big )}}
  8. (πFϕ)(norte0:π[norte]ϕ){\displaystyle {\Big (}\pi \models F\phi {\Big )}\Leftrightarrow {\Big (}\exists n\geqslant 0:\pi [n]\models \phi {\Big )}}
  9. (πGRAMOϕ)(norte0:π[norte]ϕ){\displaystyle {\Big (}\pi \models G\phi {\Big )}\Leftrightarrow {\Big (}\forall n\geqslant 0:\pi [n]\models \phi {\Big )}}
  10. (π[ϕ1Uϕ2])(norte0:(π[norte]ϕ20k<norte: π[k]ϕ1)){\displaystyle {\Big (}\pi \models [\phi _{1}U\phi _{2}]{\Big )}\Leftrightarrow {\Big (}\exists n\geqslant 0:{\big (}\pi [n]\models \phi _{2}\land \forall 0\leqslant k<n:~\pi [k]\models \phi _{1}{\big )}{\Big )}}

Problemas de decisión

La verificación de modelos CTL* (de una fórmula de entrada en un modelo fijo) es PSPACE-completa [ 2 ] y el problema de satisfacibilidad es 2EXPTIME -completa. [ 2 ] [ 3 ]

Véase también

Referencias

  1. ^ Emerson, E. Allen; Halpern, Joseph Y. (1983). ""A veces" y "Nunca" revisitados". Actas del 10.º Simposio ACM SIGPLAN-SIGACT sobre Principios de Lenguajes de Programación - POPL '83 . págs. 127-140 . doi : 10.1145/567067.567081 . ISBN  0897910907. S2CID 15728260 . 
  2. 1 2 Baier, Christel ; Katoen, Joost-Pieter (1 de enero de 2008). Principios de verificación de modelos (serie Representación y Mente) . La prensa del MIT. ISBN 978-0262026499.
  3. Orna Kupferman ; Moshe Y. Vardi (junio de 1999). " El problema de Church revisitado". Boletín de lógica simbólica . 5 (2): 245– 263. doi : 10.2307/421091 . JSTOR 421091. S2CID 18833301 .