← Últimos artículos
🤖 AI

ConVer: Using Contracts and Loop Invariant Synthesis for Scalable Formal Software Verification

Este artículo presenta ConVer, una herramienta de verificación composicional de arriba hacia abajo que aprovecha los modelos de lenguaje grandes para sintetizar contratos de función y los refina iterativamente mediante un bucle CEGAR-CEGIS para superar la explosión del espacio de estados al verificar programas grandes de C y modelos LF convertidos.

Autores originales: Muhammad A. A. Pirzada, Weiqi Wang, Yiannis Charalambous, Konstantin Korovin, Lucas C. Cordeiro

Publicado 2026-05-27
📖 6 min de lectura🧠 Análisis profundo

Autores originales: Muhammad A. A. Pirzada, Weiqi Wang, Yiannis Charalambous, Konstantin Korovin, Lucas C. Cordeiro

Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina que estás intentando demostrar que una fábrica masiva y compleja funciona perfectamente. La fábrica tiene miles de máquinas, cintas transportadoras y trabajadores, todos conectados en una red gigante. Si intentas observar cada máquina individual, cada engranaje y cada trabajador al mismo tiempo para encontrar un error, te sentirías abrumado. La mera cantidad de información haría que tu cerebro "explotara" antes de que pudieras encontrar el error. Este es exactamente el problema que enfrentan los ingenieros de software al intentar verificar programas informáticos grandes: hay demasiados estados posibles para que la computadora los verifique todos a la vez.

Este artículo presenta CONVER, una nueva herramienta diseñada para resolver este problema de "abrumo" cambiando cómo verificamos el código. En lugar de mirar toda la fábrica de una vez, CONVER actúa como un gerente inteligente y descendente que divide el problema en piezas pequeñas y manejables.

Así es como funciona CONVER, utilizando analogías simples:

1. La estrategia "Descendente": El plano frente a los ladrillos

Por lo general, para verificar un programa, debes escribir un manual detallado (un "contrato") para cada función individual (cada pequeña máquina) antes de poder verificar todo el sistema. Esto es como intentar escribir un manual para cada tornillo de un automóvil antes de poder decir que el coche es seguro. Toma una eternidad y requiere expertos.

CONVER invierte este guion.

  • La analogía: Imagina que tienes un objetivo: "La fábrica nunca debe producir una pieza roja".
  • La forma antigua: Le preguntas a cada trabajador: "¿Cuáles son tus reglas?" e intentas construir un sistema desde abajo hacia arriba.
  • La forma de CONVER: Comienzas con el gran objetivo ("Sin piezas rojas"). Luego, le pides a un asistente de IA (un Modelo de Lenguaje Grande, o LLM) que adivine las reglas para cada trabajador que garanticen que se cumpla el gran objetivo. Es como decir: "Si el trabajador de la línea de ensamblaje sigue estas reglas simples, el producto final será seguro". No necesitas saber cómo funciona el cerebro del trabajador, solo que sigue las reglas.

2. El "Bucle Inteligente": El detective y la IA

Una vez que la IA adivina las reglas (contratos), CONVER las pone a prueba utilizando un bucle de dos pasos, como un detective y un sospechoso jugando a "adivina la regla".

  • Paso A: La verificación del sistema (El gerente): CONVER verifica si toda la fábrica funciona si todos siguen las reglas adivinadas. No mira dentro de las máquinas; simplemente confía en las reglas.
  • Paso B: La verificación de la función (El inspector): CONVER luego verifica si las máquinas reales pueden realmente seguir esas reglas.
  • El bucle "CEGAR": Si las máquinas no logran seguir las reglas, CONVER no se rinde. Toma el error específico (el "contraejemplo") y se lo muestra a la IA.
    • Analogía: La IA dice: "Pensé que el trabajador podía levantar 50 libras". El inspector dice: "No, el trabajador dejó caer una caja de 50 libras". La IA aprende de este fallo específico y escribe una regla nueva y mejor: "El trabajador puede levantar hasta 40 libras".
    • Esto ocurre una y otra vez hasta que las reglas son perfectas.

3. El aprendizaje "SMART ICE": Filtrando el ruido

A veces, la IA comete un error porque malinterpretó la pregunta, no porque la regla sea incorrecta. Para solucionar esto, CONVER utiliza una técnica llamada aprendizaje SMART ICE.

  • La analogía: Imagina que le enseñas un truco a un perro. Si el perro se sienta cuando dices "Quédate", sabes que es un buen truco. Pero si el perro se sienta porque vio una ardilla, eso es una falsa alarma.
  • Cómo funciona: CONVER filtra las "falsas alarmas" (ruido) y solo mantiene los "errores reales" (señal). Clasifica los errores en "Positivos" (esto funcionó), "Negativos" (esto falló definitivamente) e "Implicación" (si esto sucede, entonces eso debe suceder). Esto ayuda a la IA a aprender mucho más rápido y evita que se confunda con sus propios errores.

4. El truco de la "Pre-abstracción": La versión de caricatura

Algunas partes del código son tan complejas (como una fábrica con bucles infinitos) que incluso verificar las reglas es demasiado difícil.

  • La analogía: Si una máquina es demasiado complicada para dibujarla en detalle, CONVER dibuja primero una versión simple de caricatura. Verifica si la caricatura funciona. Si lo hace, cambia la caricatura por la máquina real y verifica de nuevo.
  • Esto permite a CONVER manejar programas que normalmente harían colapsar la memoria de una computadora.

¿Qué encontraron?

Los investigadores probaron CONVER en cuatro diferentes "gimnasios" de código, que van desde acertijos matemáticos simples hasta analizadores de archivos del mundo real complejos y bucles recursivos.

  • Programas simples: En un conjunto de 45 programas estándar, CONVER tuvo un éxito increíble, verificando entre el 82% y el 96% de ellos. La mayoría de estos se resolvieron en solo una ronda de verificación, lo que significa que la IA adivinó las reglas casi perfectamente a la primera.
  • Programas más difíciles: En conjuntos más difíciles (como el análisis de certificados de seguridad o bucles recursivos complejos), la tasa de éxito bajó al 33% al 64%. Esto es esperado porque estos programas son mucho más difíciles de entender.
  • El factor "IA": Probaron tres modelos de IA diferentes (Qwen, Claude y GPT). Cuanto más inteligente era el modelo de IA, mejor funcionaba CONVER. La IA más inteligente (GPT-OSS 120b) resolvió la mayoría de los problemas, demostrando que la calidad de las "adivinanzas" de la IA es la clave del éxito.

La conclusión

CONVER es una herramienta que utiliza la IA para escribir los "manuales" del software, y luego utiliza un proceso inteligente e iterativo para corregir esos manuales hasta que son perfectos. Convierte un rompecabezas masivo e imposible de resolver en una serie de pasos pequeños y resolubles.

  • No reemplaza la necesidad de verificación; automatiza la parte más difícil (escribir las reglas).
  • No garantiza un 100% de éxito en cada programa complejo individual, pero resuelve muchos que anteriormente eran imposibles de verificar automáticamente.
  • Funciona escuchando los fallos: Cada vez que el software falla, la herramienta aprende exactamente por qué y le pide a la IA que intente de nuevo con una mejor adivinanza.

En resumen, CONVER es como tener un gerente incansable y superinteligente que divide un problema gigante en tareas pequeñas, aprende de cada error y sigue refinando el plan hasta que el trabajo está hecho.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →