Verificación formal · SMT
No detectamos fallos.
No detectamos fallos.
Los demostramos.
Con los valores exactos que los provocan. Antes de que lleguen a producción.
def transferir(emisor, receptor, importe): if emisor.premium: emisor.saldo -= importe receptor.saldo += importe return True if emisor.saldo >= importe: emisor.saldo -= importe receptor.saldo += importe return True return False
z3 · sat · brecha demostrada
El saldo puede quedar por debajo de cero.
emisor.premiumsí
emisor.saldo50 €
importe80 €
emisor.saldo (final)−30 €
No es una sospecha: con esas cuatro entradas ocurre. Puedes reproducirlo antes de creerte nada.
z3 · unsat · sin brechas
No existe ninguna ejecución que lo rompa.
caminos exploradostodos
contraejemplono existe
Esto no es «no he encontrado nada»: es una demostración de que no hay nada que encontrar.
Construido sobre
Z3 · Theorem Prover de Microsoft Research
Python · JavaScript · TypeScript · Go
SMT · Verificación formal
0
falsos positivos
banco de pruebas público
100 %
de lo que avisa es real
precisión medida
4
lenguajes
python · js · ts · go
<3 s
en tu portátil
antes del git push
Comprueba si tu código
aguanta una demostración.
Pega una función en la demo y ve el veredicto del solver. Sin cuenta, sin tarjeta, sin instalar nada.