model-checking

6 posts

AutoVerus convierte 40 horas de escritura de proofs en 3 llamadas a LLM. El truco es saber cuándo rendirse.

AutoVerus utiliza una red de agentes LLM para generar proofs de corrección de Verus para código Rust, automatizando más del 90% de las proof obligations mediante un bucle de generar-reparar-dischargar impulsado por el feedback del solver SMT.

La parte más difícil de la verificación formal nunca ha sido el verificador. Es escribir el proof. Dale a un ingeniero senior de Rust Verus, el verificador…

Los LLMs pueden generar código en Rust. Las pruebas formales son un problema completamente distinto.

Los grandes modelos de lenguaje escriben código en Rust sorprendentemente bueno, pero cuando les pides una prueba formal alucinan invariantes e inventan sintaxis que ningún verificador acepta. Esto es lo que realmente hacen bien, dónde fallan y cómo usarlos de todos modos.

Los LLMs pueden escribir Rust que compila e incluso pasa . Lo que no pueden hacer de forma confiable es escribir una prueba formal de que el código es correcto…

Puedes verificar código con model checking sin aprender temporal logic

Los bounded model checkers como Kani y los relational model finders como Alloy permiten verificar propiedades con assertions y constraints ordinarios. Renuncias a las pruebas de liveness a cambio de una curva de aprendizaje medida en horas, no en semanas.

No necesitas aprender lógica temporal lineal para usar un model checker. Herramientas como Kani, CBMC y Alloy te permiten verificar propiedades con assertions…

Puedes probar que tu código Rust es correcto sin escribir una sola prueba, pero el espacio de estados es la factura

Herramientas de model checking como Kani te permiten verificar propiedades de Rust con assertions en lugar de pruebas formales. El problema es lo que ocurre cuando tus bucles no tienen límites pequeños.

Puedes probar que tu código Rust es correcto sin escribir una sola prueba. La herramienta que lo hace se llama model checker, y para Rust el más práctico en…

No puedes hacer pruebas unitarias de un protocolo distribuido, pero sí puedes verificarlo con model checking

Los errores distribuidos son costosos de corregir después del despliegue. El model checking te permite encontrarlos antes de escribir una sola línea de código de implementación. Así es como hacerlo con TLA+.

No puedes hacer pruebas unitarias de un protocolo distribuido. Una prueba unitaria ejecuta un proceso en una máquina en un orden determinado. Tu protocolo…