← Ultimi articoli
🤖 AI

Case study: solving P-99 with LPTP and an LLM

Questo articolo presenta un esperimento in cui un LLM (Claude) ha generato e verificato formalmente le soluzioni per i primi 33 dei Ninety-Nine Prolog Problems utilizzando LPTP, dimostrando un approccio di "vericoding" che combina specifiche in inglese informale con la generazione automatica di codice e rigorose prove matematiche di correttezza.

Autori originali: Fred Mesnard, Thierry Marianne, Étienne Payet, Wim Vanhoof

Pubblicato 2026-07-24
📖 6 min di lettura🧠 Approfondimento

Autori originali: Fred Mesnard, Thierry Marianne, Étienne Payet, Wim Vanhoof

Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

Immaginate un mondo in cui i computer non si limitano a seguire istruzioni rigide e robotiche, ma possono effettivamente comprendere il modo disordinato e sfumato in cui gli esseri umani descrivono i problemi. Questa è la frontiera dell'Intelligenza Artificiale, specificamente di un ramo chiamato Large Language Models (LLM). Pensate a un LLM come a uno studente super intelligente e incredibilmente preparato che ha letto quasi tutto su Internet. Se gli chiedete di scrivere una storia, può farlo; se gli chiedete di scrivere del codice, può farlo. Ma c'è un problema: questo studente è incline alle "allucinazioni", il che significa che potrebbe inventare fatti con sicurezza o scrivere codice che sembra perfetto ma che segretamente si rompe quando si prova a eseguirlo.

Per risolvere questo problema, gli scienziati utilizzano la Verifica Formale, che è come un insegnante di matematica super severo che controlla ogni singolo passaggio dei compiti di uno studente per garantire che sia logicamente impossibile sbagliare. Nel mondo dell'informatica, esiste un famoso insieme di sfide chiamato 99 Problemi di Prolog (o P-99). Questi sono come gli "allenamenti in palestra" per la programmazione logica, uno stile di codifica in cui si descrive cosa si vuole che accada piuttosto che come farlo accadere passo dopo passo. La grande domanda che i ricercatori si pongono è: possiamo lasciare che lo studente IA scriva il codice basandosi su una semplice descrizione in inglese e poi far sì che l'insegnante di matematica controlli istantaneamente se è effettivamente corretto? Questo articolo esplora esattamente questo esperimento, fondendo la libertà creativa dell'IA con la sicurezza incrollabile della logica formale.


L'Esperimento: Un Duo di Codifica con un Insegnante Severo

In questo studio, un team di ricercatori ha deciso di testare un nuovo modo di lavorare chiamato "vibe-coding" mescolato con "vericoding". Immaginate il "vibe-coding" come il chiedere a un amico creativo di costruirvi una casa sull'albero basandosi su uno schizzo fatto su un tovagliolo. Dite: "Voglio una casa sull'albero con uno scivolo e una porta segreta", e lui inizia semplicemente a costruire. È veloce e divertente, ma il risultato potrebbe essere traballante. Il "vericoding" è l'opposto: è come assumere un architetto che esige progetti, test di resistenza e ispezioni di sicurezza prima di piantare anche un solo chiodo.

I ricercatori volevano vedere se potevano combinare questi due approcci. Hanno utilizzato un modello di IA chiamato Claude (specificamente la versione Opus 4.6) per agire come costruttore creativo. Hanno fornito al modello i primi 33 problemi della famosa lista P-99, che sono scritti in un inglese semplice e informale. Per esempio, un problema dice semplicemente: "Trova l'ultimo elemento di una lista".

Il compito dell'IA era:

  1. Scrivere il codice Prolog per risolvere il problema.
  2. Scrivere un file di test per controllare se il codice funziona su degli esempi.
  3. Scrivere una prova formale per garantire matematicamente che il codice sia sicuro, corretto e che terminerà sempre l'esecuzione.

Per controllare le prove, hanno utilizzato uno strumento chiamato LPTP (Logic Program Theorem Prover). Pensate a LPTP come all'insegnante di matematica severo che rifiuta di accettare "sembra corretto" come risposta. Esso esige una derivazione logica passo dopo passo per ogni affermazione.

I Risultati: Un Mix di Magia e Matematica

L'esperimento è stato un successo, ma non è stata una bacchetta magica. Il team è riuscito a risolvere 33 esercizi su 88 (circa il 37,5%) usando questo metodo. Ecco cosa è successo dietro le quinte:

  • La Parte Creativa (Vibe-Coding): L'IA è stata sorprendentemente brava nella codifica iniziale. Ha scritto 58 procedure logiche (il codice effettivo) e 508 casi di test in pochi minuti per problema. Ha compreso le istruzioni in inglese e ha generato codice che girava correttamente.
  • La Parte Rigida (Vericoding): È qui che è iniziato il vero lavoro. L'IA doveva dimostrare che il suo codice fosse corretto. Ha generato 257 lemmi (piccole verità matematiche) e ha scritto un incredibile numero di 11.800 righe di prova.
  • Il Tocco Umano: I ricercatori non hanno lasciato l'IA agire liberamente. Hanno controllato manualmente ogni singolo file. Hanno eseguito i test, letto le affermazenze logiche e rieseguito le prove con LPTP. Se l'IA si incagliava o scriveva una prova che non aveva senso, gli umani intervenivano per darle un suggerimento. Ad esempio, per un problema riguardante la ricerca dell'ultimo elemento in una lista, gli umani hanno dovuto chiedere all'IA: "Ehi, come si collega questo alla funzione append?", per aiutarla a formulare la prova corretta.

Le Grandi Scoperte

L'articolo rivela alcune cose chiave su questo nuovo modo di lavorare:

  1. L'IA sta diventando brava nel "Vibe-Coding": L'IA poteva prendere una descrizione vaga in inglese e trasformarla in codice Prolog funzionante molto velocemente. Ha persino evitato trucchi "impuri" che il codice Prolog del mondo reale spesso utilizza, attenendosi a uno stile logico rigoroso che l'insegnante di matematica (LPTP) potesse comprendere.
  2. L'IA ha bisogno di una spinta per il "Vericoding": Sebbene l'IA potesse generare il codice facilmente, dimostrare perché fosse corretto era più difficile. Per le proprietà funzionali complesse (come dimostrare che il codice faccia esattamente ciò che deve), l'IA a volte ha avuto bisogno che i ricercatori umani le spiegassero prima la logica in linguaggio naturale. Una volta che gli umani hanno dato un suggerimento, l'IA era in grado di formalizzarlo e dimostrarlo.
  3. Non è ancora un problema "risolto": Il team non ha risolto tutti i 99 problemi. Alcuni hanno richiesto all'IA solo 15 minuti (come il semplice problema dell' "ultimo elemento"), mentre altri hanno richiesto diverse ore (come il problema della "fattorizzazione in numeri primi"). I ricercatori osservano che per i problemi più difficili, l'IA fatica ancora a trovare da sola le strategie di prova corrette senza la guida umana.

Uno Sguardo al Futere: La Connessione "MCP"

L'articolo descrive anche un nuovo strumento che stanno costruendo chiamato Model Context Protocol (MCP). Attualmente, l'IA e l'insegnante di matematica (LPTP) comunicano attraverso file e documenti di testo, il che è un po' come scambiarsi lettere. Il nuovo strumento MCP è come dare loro una linea telefonica diretta. Ciò consente all'IA di chiedere aiuto all'insegnante di matematica in tempo reale, controllare il proprio lavoro istantaneamente e correggere gli errori senza aspettare l'intervento di un essere umano. Hanno testato questo con altri modelli di IA (come Gemini) e hanno scoperto che, sebbene alcuni modelli potessero generare le idee per le prove, solo Claude è stato in grado di generare con successo le prove valide che superavano i controlli rigorosi.

In Breve

Questo articolo dimostra che stiamo entrando in un'era in cui l'IA può agire come un partner creativo nella scrittura di codice logico complesso, ma ha ancora bisogno di un "pilota" umano per guidarla attraverso le parti più difficili. L'IA può scrivere il codice e persino bozzare le prove matematiche, ma a volte si perde nei dettagli. Combinando la velocità e la creatività dell'IA con un controllore di prove formali come LPTP, i ricercatori hanno creato un sistema che intercetta gli errori dell'IA prima che diventino bug reali. Non è ancora una macchina "risolvi-tutto" completamente automatizzata, ma è un nuovo strumento potente che rende la scrittura di software affidabile più veloce e sicura che mai.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →