stringtranslate.com

Lógica del árbol de cálculo

La lógica de árbol de cómputo ( CTL ) es una lógica de tiempo ramificado , lo que significa que su modelo de tiempo es una estructura similar a un árbol en la que el futuro no está determinado; hay diferentes caminos en el futuro, cualquiera de los cuales podría ser un camino real que se realiza. Se utiliza en la verificación formal de artefactos de software o hardware, típicamente por aplicaciones de software conocidas como verificadores de modelos , que determinan si un artefacto dado posee propiedades de seguridad o vitalidad . Por ejemplo, CTL puede especificar que cuando se satisface alguna condición inicial (por ejemplo, todas las variables del programa son positivas o ningún automóvil en una autopista se extiende a ambos lados de dos carriles), entonces todas las posibles ejecuciones de un programa evitan alguna condición indeseable (por ejemplo, dividir un número por cero o dos automóviles chocando en una autopista). En este ejemplo, la propiedad de seguridad podría verificarse mediante un verificador de modelos que explora todas las posibles transiciones fuera de los estados del programa que satisfacen la condición inicial y garantiza que todas esas ejecuciones satisfacen la propiedad. La lógica de árbol de cómputo pertenece a una clase de lógicas temporales que incluye la lógica temporal lineal  (LTL). Aunque hay propiedades expresables solo en CTL y propiedades expresables solo en LTL, todas las propiedades expresables en cualquiera de las lógicas también se pueden expresar en CTL* .

Historia

CTL fue propuesto por primera vez por Edmund M. Clarke y E. Allen Emerson en 1981, quienes lo utilizaron para sintetizar los llamados esqueletos de sincronización , es decir, abstracciones de programas concurrentes .

Desde la introducción de CTL, ha habido un debate sobre los méritos relativos de CTL y LTL. Debido a que CTL es más eficiente computacionalmente para la verificación de modelos, se ha vuelto más común en el uso industrial, y muchas de las herramientas de verificación de modelos más exitosas usan CTL como lenguaje de especificación. [1]

Sintaxis de CTL

El lenguaje de fórmulas bien formadas para CTL se genera mediante la siguiente gramática :

donde abarca un conjunto de fórmulas atómicas . No es necesario utilizar todos los conectivos; por ejemplo, comprende un conjunto completo de conectivos y los demás pueden definirse utilizándolos.

Por ejemplo, la siguiente es una fórmula CTL bien formada:

La siguiente no es una fórmula CTL bien formada:

El problema con esta cadena es que solo puede aparecer cuando se combina con un o un .

El CTL utiliza proposiciones atómicas como bloques de construcción para realizar afirmaciones sobre los estados de un sistema. Estas proposiciones se combinan luego en fórmulas utilizando operadores lógicos y operadores temporales .

Operadores

Operadores lógicos

Los operadores lógicos son los habituales: ¬, ∨, ∧, ⇒ y ⇔. Junto con estos operadores, las fórmulas CTL también pueden hacer uso de las constantes booleanas true y false .

Operadores temporales

Los operadores temporales son los siguientes:

En CTL* , los operadores temporales se pueden combinar libremente. En CTL, los operadores siempre deben agruparse en pares: un operador de ruta seguido de un operador de estado. Vea los ejemplos a continuación. CTL* es estrictamente más expresivo que CTL.

Conjunto mínimo de operadores

En CTL hay conjuntos mínimos de operadores. Todas las fórmulas de CTL se pueden transformar para utilizar solo esos operadores. Esto resulta útil en la comprobación de modelos . Un conjunto mínimo de operadores es: {true, ∨, ¬, EG , EU , EX }.

Algunas de las transformaciones utilizadas para los operadores temporales son:

Semántica de CTL

Definición

Las fórmulas CTL se interpretan sobre sistemas de transición . Un sistema de transición es una tripleta , donde es un conjunto de estados, es una relación de transición, que se supone que es serial, es decir, cada estado tiene al menos un sucesor, y es una función de etiquetado, que asigna letras proposicionales a los estados. Sea un modelo de transición de este tipo, con , y , donde es el conjunto de fórmulas bien formadas sobre el lenguaje de .

Entonces la relación de implicación semántica se define recursivamente en :

Caracterización de CTL

Las reglas 10 a 15 anteriores se refieren a las rutas de cálculo en los modelos y son las que en última instancia caracterizan al "árbol de cálculo"; son afirmaciones sobre la naturaleza del árbol de cálculo infinitamente profundo cuya raíz está en el estado dado .

Equivalencias semánticas

Se dice que las fórmulas y son semánticamente equivalentes si cualquier estado en cualquier modelo que satisface una también satisface la otra. Esto se denota

Se puede observar que y son duales, siendo cuantificadores de ruta de cálculo universal y existencial respectivamente: .

Además, también lo son y .

Por lo tanto, una instancia de las leyes de De Morgan se puede formular en CTL:

Se puede demostrar utilizando dichas identidades que un subconjunto de los conectivos temporales CTL es adecuado si contiene , al menos uno de y al menos uno de y los conectivos booleanos.

Las equivalencias importantes que se indican a continuación se denominan leyes de expansión ; permiten desplegar la verificación de un conectivo CTL hacia sus sucesores en el tiempo.

Ejemplos

Sea "P" "me gusta el chocolate" y Q "hace calor afuera".

"A partir de ahora me gustará el chocolate, pase lo que pase".
"Es posible que algún día me guste el chocolate, al menos por un día".
"Siempre es posible (AF) que de repente empiece a gustarme el chocolate por el resto de mi vida". (Nota: no sólo por el resto de mi vida, ya que mi vida es finita, mientras que G es infinito).
"Dependiendo de lo que pase en el futuro (E), es posible que durante el resto de mi vida (G), tenga garantizado al menos un día (AF) en el que me guste el chocolate. Sin embargo, si algo sale mal, entonces no hay ninguna garantía de que algún día me guste el chocolate".

Los dos ejemplos siguientes muestran la diferencia entre CTL y CTL*, ya que permiten que el operador hasta no se califique con ningún operador de ruta ( A o E ):

"Desde ahora hasta que haga calor afuera, me gustará el chocolate todos los días. Una vez que haga calor afuera, no habrá ninguna duda de si me gustará el chocolate o no. Ah, y está garantizado que eventualmente hará calor afuera, aunque sea solo por un día".
"Es posible que: eventualmente llegará un momento en que hará calor para siempre (AG.Q) y que antes de ese momento siempre habrá alguna manera de lograr que me guste el chocolate al día siguiente (EX.P)".

Relaciones con otras lógicas

La lógica de árbol computacional (CTL) es un subconjunto de CTL* así como del cálculo modal μ . CTL también es un fragmento de la lógica temporal de tiempo alterno (ATL) de Alur, Henzinger y Kupferman.

La lógica de árbol de cálculo (CTL) y la lógica temporal lineal (LTL) son ambas un subconjunto de CTL*. CTL y LTL no son equivalentes y tienen un subconjunto común, que es un subconjunto propio de CTL y LTL.

Extensiones

La CTL se ha ampliado con cuantificación de segundo orden y lógica de árbol computacional cuantificada ( QCTL). [2] Hay dos semánticas:

Se ha propuesto una reducción del problema de verificación de modelos de QCTL con la semántica de estructura a TQBF (fórmulas booleanas cuantificadas verdaderas), con el fin de aprovechar los solucionadores QBF. [3]

Véase también

Referencias

  1. ^ Vardi, Moshe Y. (2001). "Ramificación vs. Tiempo lineal: enfrentamiento final" (PDF) . Apuntes de clase en informática. Vol. 2031. Springer, Berlín. págs. 1–22. doi :10.1007/3-540-45319-9_1. ISBN 978-3-540-41865-8. {{cite book}}: |journal=ignorado ( ayuda ) ; faltante o vacío |title=( ayuda )
  2. ^ David, Amélie; Laroussinie, Francois; Markey, Nicolas (2016). Desharnais, Josée; Jagadeesan, Radha (eds.). "Sobre la expresividad de QCTL". 27.ª Conferencia internacional sobre teoría de la concurrencia (CONCUR 2016) . Leibniz International Proceedings in Informatics (LIPIcs). 59. Dagstuhl, Alemania: Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik: 28:1–28:15. doi : 10.4230/LIPIcs.CONCUR.2016.28 . ISBN. 978-3-95977-017-0.
  3. ^ Hossain, Akash; Laroussinie, François (2019). Gamper, Johann; Pinchinat, Sophie; Sciavicco, Guido (eds.). "De CTL cuantificado a QBF". 26.º Simposio internacional sobre representación y razonamiento temporal (TIME 2019) . Leibniz International Proceedings in Informatics (LIPIcs). 147. Dagstuhl, Alemania: Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik: 11:1–11:20. doi : 10.4230/LIPIcs.TIME.2019.11 . ISBN. 978-3-95977-127-6.S2CID 195345645  .

Enlaces externos