La pipeline di verifica formale
La verifica formale del software reale ha tre compiti principali. Primo, decidere ciò che deve essere vero e scriverlo in un linguaggio formale. Secondo, dimostrare che l'implementazione lo soddisfa. Terzo, controllare le dimostrazioni meccanicamente, perché una dimostrazione errata è peggio di nessuna dimostrazione.
MathForm-8B, il modello di autoformalizzazione da 8 miliardi di parametri di OpenBMB, si occupa del primo compito. Prende un'affermazione matematica in linguaggio naturale e produce un enunciato di teorema in Lean 4, pronto per essere dimostrato. Tuttavia, non fornisce la dimostrazione stessa, lasciando questo compito ad altri strumenti.
AlphaProof Code, d'altra parte, gestisce il secondo e il terzo compito, oltre a una fase di specifica che MathForm-8B non può affrontare. Gli obiettivi di sicurezza di Signal, ad esempio, non sono affermazioni matematiche semplici, ma affermazioni su un protocollo. Convertirli in Lean richiede competenze specifiche che nessun autoformalizzatore da 8 miliardi di parametri possiede.
Confronto dettagliato
Ecco un confronto dettagliato tra i due strumenti:
- Pesi: MathForm-8B è scaricabile sotto licenza Apache 2.0, mentre AlphaProof Code è uno sviluppo Lean con una semantica AArch64 e un binding libsignal.
- Esecuzione: MathForm-8B può essere eseguito su hardware di proprietà utilizzando Transformers, vLLM o SGLang. AlphaProof Code è un framework di ricerca che richiede ulteriori ricerche prima di poter scalare.
- Input: MathForm-8B accetta enunciati matematici in linguaggio naturale. AlphaProof Code richiede una specifica formale e il binario da verificare.
- Output: MathForm-8B produce un enunciato di teorema in Lean 4, mentre AlphaProof Code fornisce una dimostrazione verificata dalla macchina o una confutazione se il codice è errato.
- Revisione umana: Con MathForm-8B, è necessario esaminare l'enunciato emesso con una coerenza del 72,37%. AlphaProof Code richiede una revisione umana solo per circa l'1% della base di codice.
- Limiti noti: MathForm-8B è limitato a enunciati matematici e non genera dimostrazioni. AlphaProof Code ha limiti noti come l'assenza di garanzie post-quantistiche per il ripristino SPQR e una privacy del payload limitata.
Il divario che MathForm-8B dovrebbe colmare
MathForm-8B potrebbe potenzialmente automatizzare la parte meccanica del lavoro di specifica. Dato un obiettivo di sicurezza in prosa e una libreria di definizioni Lean esistenti, potrebbe produrre una prima bozza dell'enunciato nell'idioma proprio del progetto. Tuttavia, questa automazione è limitata e richiede ancora una revisione umana per garantire l'accuratezza.
Il lavoro su Signal, ad esempio, contiene percorsi simbolici e computazionali che enunciano teoremi diversi sullo stesso codice. La scelta tra questi percorsi è una decisione ingegneristica con conseguenze sulla sicurezza, che nessun modello addestrato a trasformare affermazioni matematiche in Lean può prendere.
Conclusione
AlphaProof Code e MathForm-8B affrontano fasi diverse della verifica formale del software. MathForm-8B è utile per la traduzione di affermazioni matematiche in enunciati di teorema, mentre AlphaProof Code è essenziale per la dimostrazione e la verifica delle specifiche di sicurezza dei protocolli. Entrambi gli strumenti hanno i loro limiti e richiedono una revisione umana per garantire l'accuratezza e la sicurezza.
