Asystent dowodu

Interaktywna sesja sprawdzająca w CoqIDE, pokazująca skrypt sprawdzający po lewej stronie i stan sprawdzający po prawej.

W informatyce i logice matematycznej asystent dowodu lub interaktywny dowód twierdzenia to narzędzie programowe pomagające w opracowywaniu formalnych dowodów w drodze współpracy człowiek-maszyna. Obejmuje to swego rodzaju interaktywny edytor dowodów lub inny interfejs , za pomocą którego człowiek może kierować wyszukiwaniem dowodów, których szczegóły są przechowywane i niektóre etapy są wykonywane przez komputer .

Porównanie systemów

Nazwa Ostatnia wersja Deweloper (y) Język implementacji Cechy
Logika wyższego rzędu Typy zależne Małe jądro Automatyzacja dowodu Dowód przez refleksję Generowanie kodu
Lista ACL2 8.3 Matta Kaufmanna i J. Strothera Moore’a Wspólny Lisp NIE Nietypowane NIE Tak Tak Już wykonywalny
Agda 2.6.2 Ulf Norell, Nils Anders Danielsson i Andreas Abel ( Chalmers i Göteborg ) Haskell Tak Tak Tak NIE Częściowy Już wykonywalny
Albatros 0,4 Helmuta Brandla OCaml Tak NIE Tak Tak Nieznany Jeszcze nie zaimplementowane
Kok 8.15.2 INRIA OCaml Tak Tak Tak Tak Tak Tak
F* magazyn Badania Microsoftu i INRIA F* Tak Tak NIE Tak Tak Tak
Światło HOL magazyn Johna Harrisona OCaml Tak NIE Tak Tak NIE NIE
HOL4 Kananaskis-13 (lub repozytorium) Michaela Norrisha, Konrada Slinda i innych Standardowy ML Tak NIE Tak Tak NIE Tak
Idrys 2 0.4.0. Edwina Brady’ego Idrys Tak Tak Tak Nieznany Częściowy Tak
Izabela Isabelle2021 (luty 2021) Larry Paulson ( Cambridge ), Tobias Nipkow ( Monachium ) i Makarius Wenzel Standardowy ML , Scala Tak NIE Tak Tak Tak Tak
Pochylać się v3.4.2 (wydanie oficjalne) v3.39.1 (wydanie społeczności) v4.0.0-m3 (wydanie wstępne) Leonardo de Moura (Badania Microsoftu ) C++ Tak Tak Tak Tak Tak Nieznany
LEGO (niezwiązane z Lego ) 1.3.1 Randy Pollack ( Edynburg ) Standardowy ML Tak Tak Tak NIE NIE NIE
Mizar 8.1.05 Uniwersytet Białostocki Darmowy Pascal Częściowy Tak NIE NIE NIE NIE
NuPRL 5 Uniwersytet Cornella Wspólny Lisp Tak Tak Tak Tak Nieznany Tak
PVS 6,0 Międzynarodowe SRI Wspólny Lisp Tak Tak NIE Tak NIE Nieznany
Dwanaście 1.7.1 Franka Pfenninga i Carstena Schürmanna Standardowy ML Tak Tak Nieznany NIE NIE Nieznany
  • ACL2 - język programowania, teoria logiczna pierwszego rzędu i dowód twierdzeń (zarówno w trybie interaktywnym, jak i automatycznym) w tradycji Boyera-Moore'a.
  • Coq – umożliwia wyrażenie twierdzeń matematycznych, mechanicznie sprawdza dowody tych twierdzeń, pomaga znaleźć dowody formalne i wyodrębnia certyfikowany program z konstruktywnego dowodu jego formalnej specyfikacji.
  • Dowody twierdzeń HOL – rodzina narzędzi wywodzących się ostatecznie z dowodu twierdzeń LCF . W tych systemach rdzeń logiczny stanowi biblioteka ich języka programowania. Twierdzenia reprezentują nowe elementy języka i można je wprowadzić jedynie poprzez „strategie”, które gwarantują poprawność logiczną. Kompozycja strategii daje użytkownikom możliwość tworzenia znaczących dowodów przy stosunkowo niewielkiej liczbie interakcji z systemem. Członkowie rodziny obejmują:
  • IMPS, interaktywny system dowodów matematycznych
  • Isabelle to interaktywne narzędzie do sprawdzania twierdzeń, następca HOL. Główna baza kodu jest objęta licencją BSD, ale dystrybucja Isabelle zawiera wiele narzędzi dodatkowych z różnymi licencjami.
  • Jape – oparty na Javie.
  • Pochylać się
  • KLOCKI LEGO
  • Matita – Lekki system oparty na rachunku konstrukcji indukcyjnych.
  • MINLOG – Asystent dowodu oparty na logice minimalnej pierwszego rzędu.
  • Mizar – Asystent dowodu oparty na logice pierwszego rzędu, w stylu dedukcji naturalnej i teorii mnogości Tarskiego-Grothendiecka .
  • PhoX – Asystent dowodu oparty na logice wyższego rzędu, który jest rozszerzalny.
  • System weryfikacji prototypów (PVS) – język i system sprawdzający oparty na logice wyższego rzędu.
  • TPS i ETPS – Interaktywne dowodzenie twierdzeń również w oparciu o prosty typ rachunku lambda, ale w oparciu o niezależne sformułowanie teorii logicznej i niezależną implementację.

Interfejsy użytkownika

Popularnym interfejsem dla asystentów sprawdzających jest oparty na Emacsie Proof General, opracowany na Uniwersytecie w Edynburgu .

Coq zawiera CoqIDE, który jest oparty na OCaml/ Gtk . Isabelle zawiera Isabelle/jEdit, który jest oparty na jEdit i infrastrukturze Isabelle/ Scala do przetwarzania korekty zorientowanej na dokumenty. Niedawno Makarius Wenzel opracował także rozszerzenie Visual Studio Code dla Isabelle.

Zobacz też

Notatki

Linki zewnętrzne

Katalogi