Dlaczego niektóre silniki wnioskowania potrzebują ludzkiej pomocy, a inne nie?


16

Uczę się samodzielnie Automated Theorem Proving / Solver SMT / Proof Assistants i zamieszczam serię pytań na temat tego procesu, zaczynając tutaj .

Dlaczego automatyczne dowodzenia twierdzeń, tj. ACL2 i solwery SMT, nie potrzebują ludzkiej pomocy, podczas gdy asystenci dowodzenia, tj. Isabelle i Coq , tak?

Znajdź następne pytanie z serii tutaj .

Odpowiedzi:


14

Ważność formuł wyższego rzędu zasadniczo nie jest rozstrzygalna, a przestrzenie wyszukiwania są ogromne , więc wszystko, co możesz zrobić, to spróbować znaleźć dowód - zakładając, że istnieje - poprzez sprytne wyliczenie przestrzeni dowodu (pomyśl młot , trafnie nazwany) ale to jest szorstkie. Ludzie mogą grać w wyrocznię, dostarczając kluczowych lematów do poprowadzenia dowodu.

Z drugiej strony, zautomatyzowane dowody zwykle zajmują się tylko rozstrzygającymi (podzbiorami) logikami, na przykład logiką zdań lub podklasami logiki pierwszego rzędu, więc mogą działać długo, ale wiesz, że ostatecznie się uda.

Zauważ, że istnieją podejścia umożliwiające asystentom dowodu znalezienie tych ważnych lematów, np . IsaPlanner . Narzędzie zgaduje (indukcyjne) lematy poprzez wyliczenie i losowe testy, a następnie próbuje je udowodnić. Poprzez iterację procesu wiele lematów np. Typowych definicji typów danych można znaleźć automatycznie.


Małe ABC

  • validity - formuła jest poprawna i zawiera wszystko, co przypisujesz wolnym zmiennym.
  • zmienne swobodne - te zmienne, które nie są powiązane kwantyfikatorami, takimi jak i
  • decidability - właściwość (boolowska) jest (Turinga) rozstrzygalna, jeśli istnieje algorytm, który odpowiada „tak” lub „nie” (poprawnie) po skończonym czasie.
  • logika zdań - także logika zerowego rzędu ; niedozwolone jest określenie ilościowe.
  • x.P.(x)fa.fa(4)>0
  • logika wyższego rzędu - można kwantyfikować (i „budować”) dowolnie złożone obiekty, np. funkcje wyższego rzędu (funkcje przyjmujące funkcje).

@GuyCoder: Nie jestem jednak pewien, czy jest to wykonalne. Nie możemy napisać każdej odpowiedzi, aby była przyswajalna bez wcześniejszej wiedzy. ATP to zaawansowane rzeczy; Nie poleciłbym nikomu uczenia się bez solidnego doświadczenia w logice. Pisanie odpowiedzi w sposób, w jaki chcesz, może tylko złudzić zrozumienie, ale tak naprawdę nie pomaga, imho. Tak więc każdy zainteresowany twoją serią powinien najpierw zrobić logikę, w czym możemy również pomóc - w innych pytaniach.
Raphael

7

Powiedziałbym, że klasyczne rozróżnienie między „automatycznym dowodzeniem twierdzeń” (ATP) a „interaktywnym dowodzeniem twierdzeń” (ITP) wymaga ponownego rozważenia. Jeśli weźmiesz dziś dobrze znany system ITP, taki jak Isabelle / HOL (Isabelle2013 od lutego 2013 r.), Integruje on całkiem sporo narzędzi dodatkowych z portfolio ATP:

  • Ogólne, zautomatyzowane narzędzia sprawdzające na pokładzie: oldschoolowe narzędzia Isabelle, takie jak fasti blast(autor: L. Paulson) i nowsze automatyczne automaty, takie jak metis(autor: J. Hurd).

  • Zewnętrzne ATP dla logiki pierwszego rzędu, które są wywoływane przez Sledgehammer: E prover, SPASS, Vampire. Znaleziony dowód jest analizowany, aby dowiedzieć się, które lematy przyczyniły się do tego, zmniejszając 10000 do 10 sekund i karmiąc wynik metis.

  • Zewnętrzne SMT z częściową rekonstrukcją dowodu, szczególnie dla Z3 (autor: S. Boehme).

  • Narzędzia do znajdowania przeciwnych przykładów niepotwierdzonych stwierdzeń: Nitpick / Kodkodi (J. Blanchette) i Quickcheck (L. Bulwahn).

Czy wszystkie te zautomatyzowane rzeczy sprawiają, że Isabelle jest automatyczną powieścią do twierdzeń?

Ostatecznie myślę, że rozróżnienie „ATP” vs. „ITP” to po prostu pewnego rodzaju „etykieta”, która mówi, jak chcesz pozycjonować lub „sprzedawać” swój system: ATP twierdzą, że są „narzędziami naciskanymi”, ale w ćwiczyć będziesz musiał wchodzić w interakcje (pośrednio), podając parametry lub wskazówki lub przeformułowując swój problem. To może być naprawdę trudne, ze względu na długie środowiska uruchomieniowe, które są powszechne w społeczności ATP.

Natomiast system ITP jest stworzony dla osób czekających na miejscu, z pół przyzwoitym dostępem do wewnętrznych stanów dowodu, aby zobaczyć, czego brakuje, aby ukończyć dowód. System ITP, który zamyka narzędzia ATP w sposób podobny do Isabelle, może okazać się bardziej atrakcyjny dla większej liczby użytkowników i większej liczby aplikacji niż sam ITP lub ATP.


Minęło trochę czasu, ale jeśli dobrze pamiętam, żadne z nich fast nieblast dowodem; są w zasadzie heurystykami stosującymi pewne reguły, które mogą znaleźć dowód. (Oczywiście są to dowody na odpowiednio małym podzbiorze formuł, co jest prawdą w przypadku dowolnej metody wyliczania dowodów).
Raphael

2
Kiedy mówisz „prover”, czy w rzeczywistości masz na myśli „procedurę decyzyjną” dla określonego ustalonego języka? Większość „dowódców” ATP to procedury półdecydowania, tak jak scharakteryzowałeśfast i blast. Zauważ, że blastL. Paulson przedstawił go jako „A Generic Tableau Prover i jego integracja z Isabelle” na niektórych warsztatach CADE - artykuł pojawił się później w J. UCS 1999. Isabelle ma więcej „dowodów” i to sens, np. Metis, ale także procedury decyzyjne dla niektórych specjalnych języków (podzbiory arytmetyczne).
Makarius
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.