アルゴンヌ国立研究所 は1960年代以降2000年代まで、自動定理証明のリーダーだった。
自動定理証明 (じどうていりしょうめい、英 : automated theorem proving , ATP )とは、自動推論 (AR) の中でも最も成功している分野であり、コンピュータプログラム によって数学的定理 に対する証明 を発見すること。ベースとなる論理によって、定理の妥当性を決定する問題は簡単なものから不可能なものまで様々である。
歴史
論理学的背景
論理学 の起源はアリストテレス まで遡るが、現代的数理論理学 は19世紀末から20世紀初頭に発展した。フレーゲ の『概念記法 』(1879) が完全な命題論理 と一階述語論理 の基本的なものを導入[ 1] 。同じくフレーゲの『算術の基礎 』(1884)[ 2] でも、形式論理の数学(の一部)を説明している。この流れを受け継いだのがラッセル とホワイトヘッド の『プリンキピア・マテマティカ 』で、初版は1910年から1913年に出版され[ 3] 、1927年に第2版が出ている[ 4] 。ラッセルとホワイトヘッドは、公理と形式論理の推論規則からあらゆる数学的真理が導き出せると考え、証明自動化への道を拓いた。1920年、トアルフ・スコーレム はレオポールト・レーヴェンハイム (英語版 ) の成果を単純化したレーヴェンハイム-スコーレムの定理 をもたらし、1930年にはエルブラン領域 とエルブラン解釈 により、一階の論理式の充足(不)可能性(および定理の妥当性 )を命題論理 の充足可能性問題 に還元できることが示された[ 5] 。
1929年、Mojżesz Presburger はプレスブルガー算術 (加法と等号のある自然数 の理論)が決定可能 であり、その言語内の任意の文の真偽を判定できるアルゴリズムを示した[ 6] [ 7] 。しかしその直後、クルト・ゲーデル が Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme I (1931) を発表し、十分に強力な公理系はその体系内で証明も反証もできない文を含みうることを示した。1930年代にこの課題を研究したのがアロンゾ・チャーチ とアラン・チューリング で、それぞれ独自に等価な計算可能性の定義を与え、決定不能な具体例も示した。
最初の実装
第二次世界大戦 後、第一世代のコンピュータが登場。1954年、マーチン・デービス (英語版 ) がプリンストン高等研究所 にて真空管コンピュータJOHNNIAC (英語版 ) 上にプレスブルガーのアルゴリズムを実装した。デービスによれば「2つの偶数の総和も偶数であることを証明するという大きな成果があった」という[ 7] [ 8] 。さらに野心的な試みとして Logic Theorist がある。これはアレン・ニューウェル とハーバート・サイモン とクリフ・ショー が開発したもので、『プリンキピア・マテマティカ』の命題論理 を対象とした推論システムだった。こちらもJOHANNIAC上で動作し、命題論理の少数の公理と推論規則(モーダスポネンス 、命題変数の置換など)から証明を構築した。ヒューリスティック による誘導を使っており、『プリンキピア・マテマティカ』の52の定理のうち38の証明に成功した[ 7] 。
Logic Theorist のヒューリスティックとは人間の数学者のエミュレートを試みることであり、妥当な定理すべてについて証明できることを保証できなかった。対照的に、より体系的なアルゴリズムで(少なくとも理論上は)一階述語論理の完全性 を達成できている。初期の手法ではエルブランとスコーレムの成果に基づき、一階述語論理の論理式を複数の命題論理の論理式に変換していた。そして、いくつかの技法で命題論理式の充足不可能性をチェックする。ギルモアのアルゴリズム は加法標準形 に変換することで充足可能性を判定しやすくしていた[ 7] [ 9] 。
問題の決定可能性
使用する論理によって、論理式の妥当性 の判定は自明なものから不可能なものまで様々である。命題論理 の多くの問題では、定理は決定可能だがco-NP 完全問題であり、汎用的な証明には指数時間アルゴリズムしかないと考えられている。一階述語論理 では、完全性定理 より妥当な論理式は証明可能であり、その逆も成り立つから、妥当な論理式の全体は再帰的に枚挙可能 である。したがって、妥当な論理式の証明を機械的に探索することはできる。
妥当でない文、すなわち与えられた定理から意味論的に導かれない式は認識可能とは限らない。さらにゲーデルの不完全性定理 によれば、ある程度の算術を含む無矛盾な体系は本質的不完全 であり、本質的不完全な体系は本質的決定不可能 であるから、とくに決定不可能である。そのような場合、一階述語論理の定理証明機は証明探索の完了に失敗する(停止しない)可能性がある。このような理論上の制限はあるが、実用的な定理証明機は様々な難しい問題の証明をすることができる。
関連する問題
関連した問題に、自動証明検証と、証明のコンピュータによる支援がある。定理の証明の正当性を検証するには、証明の各段階を原始再帰関数 やプログラムで検証できる必要があり、そうすることで問題は常に決定可能となる。
自動定理証明で生成される証明は長大なものとなることが多く、証明の圧縮 (proof compression ) という問題が重要となり、様々な技法が考案されている。
対話型定理証明機では人間のユーザーがシステムにヒントを与える必要がある。自動化の度合いによっては、証明機が単なる証明検証機的なものとなってユーザーが提供した形式的証明を検証するだけの場合もあるし、大部分の証明を自動的に行う場合もある。対話型証明機は様々なタスクに使えるが、完全自動システムは長期にわたって人間の数学者がてこずってきた困難な問題を証明してきた[ 10] [ 11] 。しかし、そのような成功例は稀で、一般に困難な問題を解くには熟練したユーザーの補助が必要である。
定理証明とそれ以外の区別の観点として、公理から出発して推論規則に従って推論を行い、いわゆる証明を行うものを定理証明と呼ぶ。モデル検査 などのそれ以外の技術では、考えられる全ての状態を列挙するようなものである(モデル検査の実装ではもう少し賢さが必要であるが、それで力づくの手法でなくなるわけではない)。
モデル検査的手法を推論規則として利用するハイブリッド型の定理証明システムも存在する。また、特定の定理を証明するために書かれたプログラムも存在し、プログラムがある結果を返して終了したときに定理が真であることが証明される。そのようなプログラムの好例として四色定理 の計算機支援証明がある。人間の手では証明できなかった問題を証明したことで物議をかもしたそのプログラムは、非常に複雑で検証不可能と言われた。他の例として重力付き四目並べ ゲームで先手が必ず勝つことを証明したことが挙げられる。
産業への応用
産業分野での応用例としては、LSIの設計 とその検証が挙げられ、モデル的手法とともに使われている。Pentium FDIV バグ 以来、FPU の設計は極めて厳密に行われている。AMD やインテル はプロセッサの設計検証に自動定理証明を使っている。
一階述語論理の定理証明
一階述語論理 の定理証明は自動定理証明の中でも最も研究が進んでいる。この論理は適度に自然で直感的な方法で様々な問題を記述できる程度に表現豊かである。一方、半決定的で健全 で完全な計算方法が開発されており、完全自動システムを構築することが可能である。さらに表現力のある論理(高階述語論理 や様相論理)は、さらに様々な問題を記述可能だが、それらの定理証明は一階述語論理ほど開発が進んでいない。
ベンチマークと競技会
実装システムの品質は標準ベンチマーク例の大きなライブラリ Thousands of Problems for Theorem Provers (TPTP) の存在によって高められている[ 12] 。また、Conference on Automated Deduction(CADE) 主催の ATP System Competition (CASC ) は一階述語論理システムの競技会であり、これもシステムの品質向上に寄与している。
以下に主なシステムを列挙する(いずれも少なくとも1回は CASC で優勝している)。
主な技法
比較
名称
ライセンス
ウェブサービス
ライブラリ
スタンドアロン
バージョン
最新
作者
備考
ACL2
GPLv2
No
No
Yes
8.6
2024-10
Matt Kaufmann, J. Strother Moore
-
Prover9 / Mace4
GPLv2
No
Yes
Yes
v05
2009-11-04
William McCune / アルゴンヌ国立研究所
-
Otter
パブリックドメイン
System on TPTP を使用
Yes
No
3.3f
2004-9
William McCune / Argonne National Laboratory
Prover9 / Mace4 が後継
j'Imp
GPLv2
No
No
Yes
-
2010-05-28
André Platzer
-
Metis
MIT
No
Yes
No
2.2
2010-05-24
Joe Hurd
-
Jape
GPLv2
Yes
Yes
No
9.1.8
2023-10-10
Adolfo Gustavo Neto, USP
-
PVS
GPLv2
No
Yes
No
4.2
2008-07
SRIインターナショナル
-
Leo II
?
System on TPTP を使用
Yes
Yes
1.2.8
2011
Christoph Benzmüller, Frank Theiss, Larry Paulson. ベルリン自由大学とケンブリッジ大学
-
EQP
?
No
Yes
No
0.9e
2009-5
William McCune / アルゴンヌ国立研究所
-
SAD
GPLv3
Yes
Yes
No
2.3-2.5
2008-08-27
Alexander Lyaletski, Konstantin Verchinine, Andrei Paskevich
-
PhoX
CeCILL 2.0
No
Yes
No
0.90.270624
2024-06
Christophe Raffalli, Philippe Curmin, Pascal Manoury, Paul Roziere
-
KeYmaera X
GPLv2
No
Yes
Yes
5.1.1
2024-07-01
André Platzer, Jan-David Quesel; Philipp Rümmer; David Renshaw
-
Gandalf
?
No
Yes
No
3.6
2009
Matt Kaufmann, J. Strother Moore, テキサス大学オースティン校
-
Tau
?
No
Yes
No
-
2005
Jay R. Halcomb, Randall R. Schulz, H&S Information Systems
-
E
GPLv2
System on TPTP を使用
No
Yes
2.3.5
2025-02-10
Stephan Schulz, ミュンヘン工科大学
-
SNARK
Mozilla Public License
No
Yes
No
snark-20080805r018b
2008
Mark E. Stickel
-
Vampire
三条項BSDライセンス
System on TPTP を使用
Yes
Yes
4.9
2024-07-13
Andrei Voronkov, Alexandre Riazanov, Krystof Hoder
-
Waldmeister
?
Yes
Yes
No
-
2001-07-20
Thomas Hillenbrand, Bernd Löchner, Arnim Buch, Roland Vogt, Doris Diedrich
-
Saturate
?
No
Yes
No
2.5
1996-10
Harald Ganzinger, Robert Nieuwenhuis, Pilar Nivela
-
Theorem Proving System (TPS)
?
No
Yes
No
-
2004-06-24
カーネギーメロン大学
-
SPASS
?
Yes
Yes
Yes
3.7
2005-11
マックス・プランク研究所
-
IsaPlanner
GPL
No
Yes
Yes
IsaPlanner 2
2007
Lucas Dixon, Johansson Moa
-
KeY
GPLv2
Yes
Yes
Yes
2.12.3
2024-09-08
カールスルーエ大学 , チャルマース工科大学 , コブレンツ大学
-
Theorem Checker
?
Yes
No
No
0
2010
Robert J. Swartz, 北イリノイ大学
-
Princess
三条項BSDライセンス
Yes
Yes
Yes
2024-11-08
2024-11-08
Philipp Rümmer, ウプサラ大学
-
フリーソフトウェア
プロプライエタリ
関連著名人
脚注
^ Frege, Gottlob (1879). Begriffsschrift . Verlag Louis Neuert. http://gallica.bnf.fr/ark:/12148/bpt6k65658c
^ Frege, Gottlob (1884). Die Grundlagen der Arithmetik . Breslau: Wilhelm Kobner. http://www.ac-nancy-metz.fr/enseign/philo/textesph/Frege.pdf
^ Bertrand Russell; Alfred North Whitehead (1910-1913). Principia Mathematica (1st ed.). Cambridge University Press
^ Bertrand Russell; Alfred North Whitehead (1927). Principia Mathematica (2nd ed.). Cambridge University Press
^ Herbrand, Jaques (1930). Recherches sur la théorie de la démonstration
^ Presburger, Mojżesz (1929). “Über die Vollständigkeit eines gewissen Systems der Arithmetik ganzer Zahlen, in welchem die Addition als einzige Operation hervortritt”. Comptes Rendus du I congrès de Mathématiciens des Pays Slaves (Warszawa): 92–101.
^ a b c d Davis, Martin (2001), “The Early History of Automated Deduction” , in Robinson, Alan; Voronkov, Andrei, Handbook of Automated Reasoning , 1 , Elsevier , http://cs.nyu.edu/cs/faculty/davism/early.ps )
^ Bibel, Wolfgang (2007). “Early History and Perspectives of Automated Deduction” . KI 2007 . LNAI (Springer) (4667): 2–18. http://www.intellektik.de/resources/OsnabrueckBuchfassung.pdf 2012年9月2日閲覧。 .
^ Gilmore, Paul (1960). “A proof procedure for quantification theory: its justification and realisation”. IBM Journal of Research and Development 4 : 28–35.
^ W.W. McCune (1997). “Solution of the Robbins Problem” . Journal of Automated Reasoning 19 (3). http://www.springerlink.com/content/h77246751668616h/ .
^ Gina Kolata (1996年12月10日). “Computer Math Proof Shows Reasoning Power” . The New York Times. https://www.nytimes.com/library/cyber/week/1210math.html 2008年10月11日閲覧。
^ Sutcliffe, Geoff. “The TPTP Problem Library for Automated Theorem Proving ”. 2012年9月8日閲覧。
^ “SRI International Computer Science Laboratory - John Rushby ”. SRI International. 2012年9月22日閲覧。
参考文献
和書:
関連項目
外部リンク