W świecie, gdzie sztuczna inteligencja (AI) rozwiązuje coraz bardziej złożone problemy, formalne dowodzenie twierdzeń matematycznych pozostaje jednym z najtrudniejszych wyzwań. To Mount Everest dla maszynowego rozumowania, wymagający nie tylko potężnej mocy obliczeniowej, ale przede wszystkim głębokiej, logicznej dedukcji. Publikacja naukowa “Goedel-Prover-V2: Scaling Formal Theorem Proving with Scaffolded Data Synthesis and Self-Correction” przedstawia przełomowy system, który wznosi automatyczne dowodzenie na nowy poziom.


Architektura Systemu

Sercem Goedel-Prover-V2 jest zaawansowany model językowy, który został specjalnie przeszkolony i dostosowany do pracy z asystentami dowodzenia, takimi jak Lean. Architektura systemu opiera się na cyklicznej interakcji między kilkoma kluczowymi komponentami:

  1. Agent Dowodzący (Prover Agent): Główny model, który próbuje wygenerować dowód dla danego twierdzenia. Analizuje bieżący stan dowodu i proponuje kolejny krok taktyczny.
  2. Agent Weryfikujący (Verifier Agent): Sprawdza, czy kroki zaproponowane przez agenta dowodzącego są logicznie poprawne i czy przybliżają do ostatecznego rozwiązania.
  3. Baza Wiedzy (Knowledge Base): Ogromny zbiór danych treningowych, zawierający zarówno formalne dowody, jak i nieformalne opisy matematyczne (np. z podręczników czy artykułów).

System działa w pętli: agent dowodzący generuje krok, agent weryfikujący go ocenia, a cały proces jest powtarzany aż do znalezienia kompletnego dowodu lub wyczerpania zasobów. Kluczem do sukcesu nie jest jednak sama architektura, a innowacyjne metody jej treningu.


Innowacyjny Proces Treningowy

Autorzy publikacji wprowadzili dwie rewolucyjne techniki, które znacząco poprawiły skuteczność modelu.

Synteza Danych Oparta na Rusztowaniach (Scaffolded Data Synthesis)

Tradycyjne modele uczą się na gotowych dowodach. To podejście ma jednak wady – trudno jest znaleźć wystarczająco dużo wysokiej jakości danych dla złożonych problemów. Zespół Goedel-Prover-V2 rozwiązał ten problem, tworząc “rusztowania” dla dowodów.

Proces polega na:

  • Dekompozycji problemu: Złożone twierdzenia są rozbijane na prostsze lematy (twierdzenia pomocnicze).
  • Generowaniu szkiców: Model tworzy nieformalny, wysokopoziomowy szkic dowodu w języku naturalnym.
  • Tłumaczeniu na język formalny: Szkic jest następnie tłumaczony na konkretne, formalne kroki w języku asystenta dowodzenia (np. Lean).

Dzięki temu system uczy się nie tylko “jak” wygląda gotowy dowód, ale przede wszystkim “jak” do niego dojść, budując rozumowanie krok po kroku. To tak, jakby uczyć ucznia nie poprzez pokazywanie mu gotowego rozwiązania zadania, ale poprzez prowadzenie go za rękę przez kolejne etapy myślenia.

Autokorekta (Self-Correction)

Drugim filarem sukcesu jest mechanizm autokorekty. Każda nieudana próba dowodu jest cenną lekcją. Zamiast odrzucać błędne ścieżki, system analizuje je, aby zrozumieć, gdzie popełnił błąd.

Gdy Goedel-Prover-V2 utknie w ślepym zaułku, wraca do poprzednich kroków i próbuje innej strategii, ucząc się na podstawie informacji zwrotnej z weryfikatora. Ten proces iteracyjnego poprawiania własnych błędów pozwala na dynamiczne dostosowywanie taktyki i eksplorowanie bardziej obiecujących ścieżek rozumowania.


Wyniki i Przykład w Praktyce

Skuteczność Goedel-Prover-V2 została przetestowana na wymagających benchmarkach, takich jak miniF2F (zestaw problemów z olimpiad matematycznych) oraz PutnamBench (zestaw zadań z prestiżowego konkursu Putnam). Wyniki są imponujące – system znacząco przewyższa poprzednie modele, w tym AlphaProof, DeepSeek-Prover, a nawet ogólne modele, takie jak GPT-4.

Jak to wygląda w praktyce? Wyobraźmy sobie prosty przykład:

Twierdzenie: Dla każdej liczby całkowitej n, jeśli n² jest parzyste, to n jest parzyste.

  1. Szkic (Rusztowanie): Goedel-Prover-V2 mógłby najpierw wygenerować nieformalny plan: “Użyję dowodu nie wprost. Założę, że n jest nieparzyste i pokażę, że wtedy n² też musi być nieparzyste, co prowadzi do sprzeczności.”
  2. Formalizacja: Następnie przełożyłby ten plan na język Lean:
    • assume h : is_even (n^2) (Załóżmy, że n² jest parzyste)
    • by_contradiction hn : is_odd n (Dowód przez sprzeczność, załóżmy, że n jest nieparzyste)
  3. Dowodzenie: System zaczyna pracę. Jeśli n jest nieparzyste, to n = 2k + 1 dla jakiegoś k. Wtedy n² = (2k + 1)² = 4k² + 4k + 1 = 2(2k² + 2k) + 1. To jest definicja liczby nieparzystej.
  4. Wykrycie sprzeczności: System dochodzi do wniosku, że jest nieparzyste. Jest to sprzeczne z początkowym założeniem h, że jest parzyste.
  5. Autokorekta (gdyby była potrzebna): Jeśli system wybrałby złą drogę (np. próbując rozbić n na czynniki pierwsze), weryfikator odrzuciłby ten krok. System cofnąłby się i spróbował innej taktyki, jak dowód nie wprost, ucząc się, że jest to bardziej obiecująca strategia dla tego typu problemu.

Podsumowanie

Goedel-Prover-V2 to nie tylko kolejny, silniejszy model. To demonstracja potęgi synergii między ludzką intuicją (zawartą w nieformalnych szkicach dowodów) a maszynową precyzją. Techniki syntezy danych opartej na rusztowaniach i autokorekty wyznaczają nowy standard w dziedzinie i otwierają drzwi do rozwiązywania problemów matematycznych, które do tej pory były poza zasięgiem maszyn. Co więcej, autorzy udostępnili swój projekt jako open-source, co z pewnością przyspieszy dalszy postęp w tej fascynującej dziedzinie.


📎 Linki