Automatyczne dowodzenie twierdzeń




Automatyczne dowodzenie twierdzeń (ang. automated theorem proving) – proces, w którym komputer rozstrzyga czy dane twierdzenie jest dowodliwe w jakiejś teorii, często przy okazji generując jego dowód. Twierdzenia te należą zwykle do rachunku zdań lub rachunku predykatów pierwszego rzędu.


Dla komputera wygodniejsze jest zwykle wnioskowanie w tył, choć czasem stosuje się też wnioskowanie w przód.


Przykładem twierdzenia, które zostało dowiedzione dopiero przez ATP jest "Algebry Robbinsa są boolowskie"[1].




Spis treści






  • 1 Automatyczne dowodzenie twierdzeń rachunku zdań


  • 2 Automatyczne dowodzenie twierdzeń rachunku predykatów


  • 3 Zobacz też


  • 4 Przypisy


  • 5 Linki zewnętrzne





Automatyczne dowodzenie twierdzeń rachunku zdań |


Chodzi o stwierdzenie czy dane twierdzenie jest tautologią, lub czy jest spełnialne. Oba przypadki są wzajemnie połączone: zaprzeczenie twierdzenia jest spełnialne wtedy i tylko wtedy, gdy twierdzenie to nie jest tautologią.


Twierdzenia rachunku zdań zawsze są rozstrzygalne – choćby metodą brute force, która polega na sprawdzeniu 2n kombinacji wartości prawda-fałsz dla n zmiennych zdaniowych występujących w twierdzeniu.


Istnieje wiele innych metod, które mają większą wydajność i generują bardziej czytelne dowody. Do najprostszych z nich należą sekwenty Gentzena, systemy Hilberta oraz dedukcja naturalna. W praktyce używa się zwykle metod bazowanych na procedurze Davisa-Putnama. Można też używać uproszczonych wersji metod dla rachunku predykatów pierwszego rzędu.


Problem spełnialności jest jednak w każdym systemie NP zupełny, zaś problem tautologii – CoNP zupełny.



Automatyczne dowodzenie twierdzeń rachunku predykatów |


Dominujące metody to tableau, a przede wszystkim różne wersje rezolucji. W systemach z równością używa się też paramodulacji. Warto zaznaczyć, że "ogólny" język I rzędu jest nierozstrzygalny. W szczególności nie istnieje algorytm, który dla ogólnego języka I rzędu może określić, czy dane zdanie jest w nim prawdziwe, czy nie. Istnieją jednak "szczególne" języki I rzędu, które są rozstrzygalne. Przykładem rozstrzygalnego języka I rzędu może być arytmetyka liczb rzeczywistych, co udowodnił Alfred Tarski. Do weryfikacji zdań o liczbach rzeczywistych służy metoda eliminacji kwantyfikatorów.



Zobacz też |



  • rachunek lambda

  • CADE

  • CASC

  • subsumpcja

  • unifikacja

  • term

  • indeksowanie termów

  • system wspomagający dowodzenie twierdzeń

  • system Mizar



Przypisy |




  1. Bernd IB.I. Dahn Bernd IB.I., Robbins Algebras Are Boolean: A Revision of McCune's Computer-Generated Solution of Robbins Problem, „Journal of Algebra”, 208 (2), 1998, s. 526–532, DOI: 10.1006/jabr.1998.7467, ISSN 0021-8693 [dostęp 2018-09-23] .



Linki zewnętrzne |


  • FredericF. Portoraro FredericF., Automated Reasoning [w:] Stanford Encyclopedia of Philosophy [online], CSLI, Stanford University, 20 listopada 2014, ISSN 1095-5054 [dostęp 2018-08-07]  (ang.).



這個網誌中的熱門文章

12.7 cm/40 Type 89 naval gun

University of Vienna

Rikitea