Articulo de referencia

Refinamiento de la abstracción guiado por contraejemplos

El refinamiento de abstracción guiado por contraejemplos ( CEGAR ) es una técnica para la verificación simbólica de modelos . [ 1 ] [ 2 ] También se aplica en algoritmos de cálc...

El refinamiento de abstracción guiado por contraejemplos ( CEGAR ) es una técnica para la verificación simbólica de modelos . [ 1 ] [ 2 ] También se aplica en algoritmos de cálculo de tablas de lógica modal para optimizar su eficiencia. [ 3 ]

En la verificación y el análisis de programas asistidos por computadora, los modelos de computación suelen constar de estados . Sin embargo, incluso los modelos para programas pequeños pueden tener una cantidad enorme de estados. Esto se conoce como el problema de la explosión de estados. [ 4 ] CEGAR aborda este problema con dos etapas: abstracción , que simplifica un modelo agrupando estados, y refinamiento , que aumenta la precisión de la abstracción para aproximarse mejor al modelo original.

Si una propiedad deseada para un programa no se satisface en el modelo abstracto, se genera un contraejemplo. El proceso CEGAR comprueba entonces si el contraejemplo es espurio, es decir, si también se aplica a la subabstracción pero no al programa real. En tal caso, concluye que el contraejemplo se debe a una precisión insuficiente de la abstracción. De lo contrario, el proceso encuentra un error en el programa. Se realiza un refinamiento cuando se encuentra que un contraejemplo es espurio. [ 5 ] El procedimiento iterativo finaliza si se encuentra un error o cuando la abstracción se ha refinado hasta el punto de ser equivalente al modelo original.

Verificación del programa

Abstracción

Para razonar sobre la corrección de un programa, en particular aquellos que involucran el concepto de tiempo para la concurrencia , se utilizan modelos de transición de estados. En particular, los modelos de estados finitos pueden utilizarse junto con la lógica temporal en la verificación automática. [ 6 ] El concepto de abstracción se fundamenta, por lo tanto, en un mapeo entre dos estructuras de Kripke . Específicamente, los programas pueden describirse con autómatas de flujo de control (CFA). [ 7 ]

Defina una estructura de Kripke.METRO{\displaystyle M}comoS,s0,R,L{\displaystyle \langle S,s_{0},R,L\rangle }, dónde

  • S{\displaystyle S}es un conjunto finito de estados,
  • s0{\displaystyle s_{0}}es un estado inicial enS{\displaystyle S},
  • R{\displaystyle R}es una relación de transición total, y
  • L{\displaystyle L}es una función que etiqueta cada estado con un conjunto de nombres proposicionales que se cumplen en él.

Una abstracción deMETRO{\displaystyle M}se define porSα,s0α,Rα,Lα{\displaystyle \langle S_{\alpha },s_{0}^{\alpha },R_{\alpha },L_{\alpha }\rangle }dóndeα{\displaystyle \alpha }es una asignación de abstracción que asigna cada estado enS{\displaystyle S}a un estado enSα{\displaystyle S_{\alpha }}. [ 5 ]

Para preservar las propiedades críticas del modelo, el mapeo de abstracción asigna el estado inicial en el modelo original.s0{\displaystyle s_{0}}a su contrapartes0α{\displaystyle s_{0}^{\alpha }}en el modelo abstracto. El mapeo de abstracción también garantiza que se conserven las relaciones de transición entre dos estados.

Verificación de modelos

En cada iteración, se realiza una verificación del modelo abstracto. La verificación de modelos acotada, por ejemplo, genera una fórmula proposicional que luego se comprueba para determinar su satisfacibilidad booleana mediante un solucionador SAT . [ 5 ]

Refinamiento

Cuando se encuentran contraejemplos, se examinan para determinar si son ejemplos espurios, es decir, ejemplos no auténticos que surgen de la subabstracción del modelo. Un contraejemplo no espurio refleja la incorrección del programa, lo cual puede ser suficiente para finalizar el proceso de verificación y concluir que el programa es incorrecto. El objetivo principal del proceso de refinamiento es manejar los contraejemplos espurios. Los elimina aumentando la granularidad de la abstracción.

El proceso de refinamiento garantiza que los estados sin salida y los estados malos no pertenezcan al mismo estado abstracto. Un estado sin salida es uno alcanzable sin transición saliente, mientras que un estado malo es uno con transiciones que provocan el contraejemplo. [ 2 ]

Tableau calcula

Dado que la lógica modal a menudo se interpreta con la semántica de Kripke , donde un marco de Kripke se asemeja a la estructura de los sistemas de transición de estados involucrados en la verificación de programas, la técnica CEGAR también se implementa para la demostración automatizada de teoremas . [ 3 ]

Referencias

  1. Clarke, Edmund ; Grumberg, Orna ; Jha, Somesh; Lu, Yuan; Veith, Helmut (1 de septiembre de 2003). "Refinamiento de abstracción guiado por contraejemplos para la verificación de modelos simbólicos" . Journal of the ACM . 50 (5): 752–794 . doi : 10.1145/876638.876643 .
  2. 1 2 Clarke, Edmund ; Grumberg, Orna ; Jha, Somesh; Lu, Yuan; Veith, Helmut (2000). Refinamiento de abstracción guiado por contraejemplos . Conferencia internacional sobre verificación asistida por computadora CAV 2000: Verificación asistida por computadora. Notas de clase en ciencias de la computación. Vol. 1855. Berlín, Heidelberg: Springer. págs. 154–169 . doi : 10.1007/10722167_15 . ISBN   978-3-540-45047-4.
  3. 1 2 Goré, Rajeev; Kikkert, Cormac (6 de septiembre de 2021). CEGAR-Tableaux: Mejora de la satisfacibilidad modal mediante el aprendizaje de cláusulas modales y SAT . Razonamiento automatizado con tableaux analíticos y métodos relacionados: 30.ª Conferencia Internacional, TABLEAUX 2021, Birmingham, Reino Unido. Lecture Notes in Computer Science. Vol. 12842. Cham: Springer. pp. 74–91 . doi : 10.1007/978-3-030-86059-2_5 . ISBN   978-3-030-86059-2.
  4. Valmari, Antti (1998). El problema de la explosión de estados . Curso avanzado sobre redes de Petri, ACPN 1996. Lecture Notes in Computer Science. Vol. 1491. Berlín, Heidelberg: Springer. pp. 429–528 . doi : 10.1007/978-3-642-35746-6_1 . ISBN   978-3-540-49442-3. Consultado el 27 de diciembre de 2023 .
  5. 1 2 3 Clarke, Edmund ; Klieber, William; Nováček, Miloš; Zuliani, Paolo (2011). Model Checking and the State Explosion Problem . LASER Summer School on Software Engineering: LASER 2011. Lecture Notes in Computer Science. Vol. 7682. pp. 1–30 . doi : 10.1007/978-3-642-35746-6_1 . ISBN   978-3-642-35746-6. Consultado el 27 de diciembre de 2023 .
  6. Clarke, Edmund ; Browne, Michael C.; Emerson, E. Allen ; Sistla, AP «Uso de la lógica temporal para la verificación automática de sistemas de estados finitos». Lógicas y modelos de sistemas concurrentes . NATO ASI. Vol. 13. Berlín, Heidelberg: Springer. doi : 10.1007/978-3-642-82453-1_1 . ISBN  978-3-642-82453-1.
  7. Hajdu, Ákos; Micskei, Zoltán (11 de noviembre de 2019). "Estrategias eficientes para la verificación de modelos basados ​​en CEGAR" . Revista de razonamiento automatizado . 64 (4). Naturaleza Springer: 1051– 1091. doi : 10.1007/s10817-019-09535-x .