Sapere senza abitare
Parte I: filosofia del capire
La sera del 19 luglio 2026, mentre mezzo pianeta guardava la finale dei Mondiali, un matematico di nome Levent Alpöge pubblicava un tweet destinato a girare più di qualsiasi gol: un controesempio esplicito alla congettura Jacobiana, un problema aperto dal 1939.[1] Non una dimostrazione di cento pagine: tre polinomi, corti, brutali, verificabili da chiunque abbia un computer. A trovarli, insieme a lui, un modello di linguaggio.
Quasi un secolo di tentativi falliti, chiuso da un oggetto che si controlla in un pomeriggio.
Qualche settimana prima, in un video molto meno cosmico, Enkk e Salvatore Sanfilippo discutevano di codice generato e si facevano una domanda che sembrava da addetti ai lavori: ha ancora senso leggere il codice?[2] Sotto quella domanda ce n'è una più grezza, che la notizia di luglio ha reso urgente per tutti: ha ancora senso capire, o basta che funzioni?
C'è un abisso tra due modi di "sapere". Il primo è quello del ricevitore: ascolti, annuisci, la frase ti entra in testa e ti sembra chiara. Esci dalla stanza convinto di aver capito. Il secondo è quello di chi sa spiegare: ricostruisce, semplifica senza tradire, regge le obiezioni, porta l'altro dall'altra parte della stanza. Non è una differenza di grado; è una differenza di specie. Tutto questo articolo sta dentro quella differenza.
L'illusione del "ho capito"
Nel software succede ogni giorno. L'AI ti sputa fuori una funzione, la leggi in diagonale, i test passano, merge. Ti senti produttivo: sei stato un ricevitore efficiente di un pezzo di verità operativa. Mesi dopo il pezzo si rompe in produzione in un modo che i test non coprivano, e scopri che non sapevi spiegare perché quella funzione faceva quello che faceva. Sapevi solo che andava.
La linea di frattura non passa tra chi usa l'AI e chi no. Passa tra chi riceve un risultato e lo accetta perché ha la forma giusta, e chi lo abita abbastanza da poterlo distruggere, difendere o insegnare.
Nel dialogo di ZIP 02 emerge proprio questo: l'AI è un junior formidabile. Scrive, propone, a volte indovina strade che tu non avresti preso. Ma il senior non è chi digita più in fretta: è chi legge con responsabilità. Non per nostalgia del mestiere; perché la responsabilità non si può scaricare su un modello che non firma, non paga e non spiega al cliente perché il sistema ha sbagliato.
Capire da ricevitore è comodo. Capire al livello di chi sa spiegare è costoso. Il periodo che stiamo attraversando premia il comodo e presenta il conto a chi ha lasciato morire il costoso.
La macchina non abita ciò che produce
Quando senti "l'AI ha confutato una congettura", il riflesso è la meraviglia oppure il panico. Entrambi restano sterili finché restano emozioni.
Quello che è successo è più sottile. Un essere umano ha posto la domanda giusta; un modello ha esplorato uno spazio immenso di candidati; la comunità ha verificato in poche ore ciò che per decenni non si era riusciti né a dimostrare né a spezzare. La macchina non ha "capito" la congettura nel senso in cui la capisce un matematico dopo anni di fallimenti: non ha vissuto le false dimostrazioni pubblicate e ritirate, né il peso culturale di un problema finito nella lista di Smale. Ha prodotto un oggetto che, una volta messo sul tavolo, la spezza.
È la stessa struttura del codice generato: l'output può essere corretto senza che nessuno, nel giro, lo abiti. Per questo il punto duro del video vale anche qui: non confondere la produzione di verità con la comprensione della verità. Puoi ricevere una dimostrazione, puoi farla certificare a un theorem prover, e ancora non saperla spiegare a uno studente sveglio che chiede "ok, ma perché?".
Quella domanda è il confine tra sapere da utente e sapere da interlocutore.
Locale e globale, prima ancora della matematica
Un'immagine che vale anche per chi odia i polinomi. Immagina di camminare in una città dove ogni quartiere ha sensi unici ben segnalati: da ogni incrocio sai sempre come tornare indietro di un paio di isolati. Localmente sei a posto. Poi scopri che strade diverse, partite da punti lontani, ti scaricano tutte nello stesso vicolo cieco: guardando solo dove sei arrivato, non puoi più ricostruire da dove sei partito. La città, presa nel suo insieme, non è invertibile.
La congettura Jacobiana scommetteva che per certe mappe "ordinate" il locale buono garantisse il globale buono. Ha perso.
Noi, con i modelli, facciamo spesso l'errore simmetrico: guardiamo la coerenza locale di una risposta (bella, articolata, citazioni plausibili, codice che compila) e ne deduciamo una garanzia globale, cioè che il sistema "sappia", che il progetto "tenga", che la prova "regga". Locale non implica globale: non in algebra, non in una pull request, non in una conversazione con un LLM. Non è una battuta da nerd; è igiene mentale per il 2026.
Chi chiede, chi esplora, chi firma
Nel tweet, Alpöge ringrazia l'amico che gli ha suggerito di cercare il controesempio invece della dimostrazione, e il modello che "ha lavorato durante la finale".[3] I ruoli non coincidono, e vale la pena tenerli separati.
Chi orienta: la domanda giusta ("e se invece di dimostrarla la spezzassimo?") è già un atto creativo. Chi esplora: lo spazio dei candidati è troppo grande per la pazienza umana di una serata, e il modello lo scandaglia. Chi risponde del vero: verifica, pubblica, mette la faccia. Lean può certificare un lemma; non può firmare un'etica né un prodotto.
Nel video il parallelo è limpido: generare codice non ti toglie dal giro; ti ci mette dentro con meno mappe, se smetti di leggere. La vera "evasione" non è la furbizia da prompt. È la tentazione di uscire dalla responsabilità della comprensione restando agganciati al beneficio del risultato. Puoi evadere dal capire; non puoi evadere dalle conseguenze di non aver capito.
Allora ha ancora senso leggere?
Sì, ma il senso è cambiato, e fingere che sia lo stesso di dieci anni fa è nostalgia inutile. Non leggiamo più soltanto per produrre la riga o il lemma: leggiamo per restare capaci di spiegare. Per non diventare clienti di un oracolo. Per poter dire a un collega, o a noi stessi tra sei mesi: ecco perché questo regge, ed ecco dove si spezzerebbe.
Ricevere è gratis, spiegare costa. Una cultura tecnica che smette di pagare il costo dello spiegare si riempie di sistemi che "funzionano" finché non incontrano il caso che nessuno abitava. La notizia della Jacobiana non dice che le macchine hanno vinto: dice che il prezzo del non capire è salito, perché ora le macchine producono verità verificabili più in fretta di quanto noi siamo disposti a interiorizzarle.
Da qui in poi si scende nella stanza dei numeri. Non serve per sentire il peso di quanto detto finora; serve se vuoi spiegare cosa è successo, non solo raccontarlo. Ed è esattamente la differenza da cui siamo partiti.
Parte II: il problema, i numeri, le implicazioni
L'intuizione prima delle formule. Prendi una trasformazione dello spazio costruita solo con polinomi. C'è un numero, lo jacobiano, che misura come la trasformazione dilata o schiaccia i volumi in ogni punto. Se quel numero è una costante diversa da zero, la trasformazione non schiaccia mai nulla: in ogni punto, localmente, si può tornare indietro. La congettura Jacobiana scommetteva che questa bontà locale bastasse a garantire l'invertibilità dell'intera mappa, con inversa a sua volta polinomiale. Sembrava quasi ovvio. Non lo era.
L'enunciato
Formulata da Ott-Heinrich Keller nel 1939, in forma moderna suona così.[4] Prendi una mappa polinomiale
dove K è un campo di caratteristica zero (tipicamente \mathbb{C} o \mathbb{R}) e ogni F_i è un polinomio in n variabili. Costruisci la matrice jacobiana delle derivate parziali e il suo determinante JF:
Il determinante jacobiano: il fattore locale di dilatazione dei volumi.
Congettura: se JF è una costante non nulla, allora F ammette un'inversa G: K^n \to K^n le cui componenti sono ancora polinomi.
Per n = 1 è un esercizio. Per n = 2 è ancora aperta (luglio 2026). Per n \geq 3 è falsa, grazie al controesempio qui sotto. Era il problema 16 della lista di Smale per il XXI secolo, con alle spalle decenni di false dimostrazioni pubblicate e poi ritirate: segno che l'intuizione "locale implica globale" era tanto seducente quanto scivolosa.
Il controesempio
Il 19-20 luglio 2026 Levent Alpöge (matematico ad Anthropic, già Harvard) annuncia un controesempio esplicito in tre variabili complesse, ottenuto con Claude Fable 5 dopo che un collega aveva spostato il bersaglio dalla prova al controesempio.[1] La mappa F = (P, Q, R) : \mathbb{C}^3 \to \mathbb{C}^3:
I tre polinomi del controesempio: gradi bassi, niente mostri.
Lo jacobiano è la costante -2, mai nullo: la premessa della congettura è soddisfatta. Eppure la mappa non è iniettiva. Tre punti distinti finiscono sulla stessa immagine:
Ingressi diversi, una sola uscita: nessuna inversa può esistere su tutto lo spazio.
La congettura cade per n = 3 e, con un'estensione standard, per ogni n > 3. Il grado della mappa è dell'ordine di poche unità, non i gradi astronomici che molti si aspettavano: il controesempio non è un mostro inaccessibile, è un oggetto che un computer algebra system e un umano paziente controllano in pochi minuti.
Verifica: fidati, ma esegui
Qui il discorso su ricevere e spiegare diventa letterale: lo snippet sotto è la differenza tra leggere la notizia e possederla. Verificato con SymPy prima della pubblicazione di questo articolo.
# Controesempio alla congettura Jacobiana (Alpöge + Fable 5, luglio 2026)
# Verifica: jacobiano costante e collisione di tre punti distinti.
# Eseguire in locale: pip install "sympy>=1.12"
from sympy import symbols, Matrix, simplify, Rational
x, y, z = symbols("x y z")
P = (1 + x*y)**3 * z + y**2 * (1 + x*y) * (4 + 3*x*y)
Q = y + 3*x*(1 + x*y)**2 * z + 3*x*y**2 * (4 + 3*x*y)
R = 2*x - 3*x**2*y - x**3*z
F = Matrix([P, Q, R])
J = F.jacobian(Matrix([x, y, z]))
print("det J =", simplify(J.det())) # atteso: -2 (costante)
punti = [
(0, 0, Rational(-1, 4)),
(1, Rational(-3, 2), Rational(13, 2)),
(-1, Rational(3, 2), Rational(13, 2)),
]
for p in punti:
img = [simplify(c.subs({x: p[0], y: p[1], z: p[2]})) for c in (P, Q, R)]
print(p, "->", img) # atteso, tre volte: [-1/4, 0, 0]Output atteso: `det J = -2` e tre volte la stessa immagine (-1/4,\, 0,\, 0). Tutto qui: due proprietà meccaniche, controllabili da chiunque, che demoliscono un enunciato universale vecchio di 87 anni.
Perché trovare era duro e controllare è facile
È la struttura tipica di certi problemi di ricerca: lo spazio dei candidati (polinomi multivariati con vincoli sullo jacobiano) è sterminato, mentre il test di validità di un singolo candidato è finito e meccanico. Calcoli JF, valuti F su abbastanza punti, verifichi le collisioni.
È l'habitat naturale dei modelli affiancati a verifica simbolica o formale: il modello propone, SymPy o Lean (e la comunità) dispongono. Dopo l'annuncio, la formalizzazione in Lean e le review pubbliche hanno chiuso il cerchio della credibilità in tempi da social network, non da peer review anni Novanta.[5]
L'implicazione metodologica è secca: dove esiste un oracolo di verifica esterno al modello, l'AI smette di essere autocomplete e diventa un motore di ricerca in spazi che l'intuizione umana non scandaglia a mano. Dove l'oracolo non c'è (molta scienza empirica, quasi tutta l'etica, buona parte del product) lo stesso flusso di lavoro produce soprattutto fiducia ingiustificata.
Cosa il controesempio non risolve
Precisione da chi spiega, non da chi fa hype.
Non chiude il caso n = 2: lì la congettura vive ancora, ed è il premio residuo, più difficile e più "classica". Non regala una teoria del perché queste mappe esistano: spezza un enunciato universale, non sostituisce una geometria spiegata; dopo la verifica, il lavoro umano è capire perché il controesempio funziona. Non implica che l'AI dimostri i teoremi da sola: senza la domanda umana, senza la scelta del bersaglio e senza la certificazione, avremmo avuto al più un output plausibile. Il soggetto epistemico è ibrido. E non collassa la matematica in "search + check": molti problemi non hanno controesempi corti, molte verità non sono decisioni finite.
Implicazioni per chi lavora con l'AI
Qui le due metà dell'articolo si saldano.
| Dominio | Cosa può fare il modello | Cosa resta umano se vuoi spiegare |
|---|---|---|
| Matematica con verifica | Proporre candidati, esplorare spazi enormi | La domanda, l'interpretazione, la teoria, la didattica |
| Codice con test e tipi | Generare, rifattorizzare, suggerire strade | La specifica, gli edge case, la responsabilità del merge |
| Testo, decisioni, etica | Fluenza locale altissima | Il giudizio d'insieme, le conseguenze, la firma |
La lezione tecnica della Jacobiana è un controesempio. La lezione civile è quella del video da cui siamo partiti: puoi smettere di scrivere tutto a mano, non puoi smettere di abitare ciò che metti nel mondo. Sapere da ricevitore ormai scala; sapere al livello di chi spiega resta scarso. Ed è per questo che vale di più, proprio adesso che le macchine confutano i secoli.
Ispirato al dibattito di Enkk e Salvatore Sanfilippo in[2], e alla confutazione della congettura Jacobiana annunciata nel luglio 2026 da Levent Alpöge con Claude Fable 5. I calcoli del controesempio sono stati riverificati con SymPy prima della pubblicazione.
Fonti e riferimenti
- Fortune (fortune.com)
- L'evasione di GPT, la congettura Jacobiana e... ha ancora senso leggere il codice? | ZIP 02 (Enkk e Salvatore Sanfilippo) (youtube.com)
- The Value Engineering (thevalue.engineering)
- Wikipedia (es.wikipedia.org)
- Gigazine (gigazine.net)