フェイギンの定理は、記述的複雑性理論における最も古い成果である。記述的複雑性理論は、計算複雑性理論の一分野であり、複雑性クラスを、問題を解決するアルゴリズムの挙動ではなく、論理に基づいた問題の記述によって特徴づける。この定理は、存在二階述語論理で表現可能なすべての性質の集合が、まさに複雑性クラスNPであると述べている。
これは、1973 年にロナルド・ファギンが博士論文で証明し、1974 年の論文に掲載されています。[ 1 ] 2 次式で要求されるアリティは、1981 年にジェームズ・リンチによって (一方向で) 改善され、 [ 2 ]エティエンヌ・グランジャンによるいくつかの結果により、非決定性ランダムアクセスマシンに対するより厳密な境界が提供されています。[ 3 ]
例えば、グラフが3彩色可能かどうかを判定する問題を考えてみましょう。これはNP完全問題です。ファギンの定理によれば、2階存在式が存在します。グラフが 3 彩色可能であるのは、グラフが有限モデルとして意味的には具体的には、そのような式が1つあります。[ 4 ]
(∃A, B, C)(∀v)[(A(v) ∨ B(v) ∨ C(v)) ∧ (∀w)(E(v, w) → ¬(A(v) ∧ A(w)) ∧ ¬(B(v) ∧ B(w)) ∧ ¬(C(v) ∧ C(w)))]
この式において、A、B、Cはそれぞれ3色で着色された頂点の集合を表し、E(v, w)は頂点vとwが辺を共有することを意味します。そして、この式は隣接する2つの頂点が同じ色を持たないことを示しています。
各頂点に必ず1色だけを割り当てる必要はなく、少なくとも1色だけ割り当てればよいことに注意してください。なぜなら、頂点ごとに複数の色を割り当てても、隣接する2つの頂点が同じ色にならないようにすれば、各頂点に必ず1色だけを割り当てても、隣接する2つの頂点が同じ色にならないようにできるからです。
イマーマンによる1999年の教科書には、この定理の詳細な証明が記載されている。ここではその概略を示す。[ 5 ]
存在量化子を用いて、存在量化子で修飾されたすべての変数の値を非決定的に選択することで、NP においてすべての存在量化子式を認識できることは容易に示せる。したがって、証明の主要部分は、NP のすべての言語が存在量化子式で記述できることを示すことである。そのためには、存在量化子式を用いて計算タブローを任意に選択すればよい。より詳細には、非決定性チューリングマシンの実行トレースの各タイムステップにおいて、このタブローはチューリングマシンの状態、テープ上の位置、各テープセルの内容、およびそのステップでマシンが行う非決定的な選択を符号化する。一階述語論理式は、この符号化された情報を制約することで、有効な実行トレースを記述することができる。有効な実行トレースとは、各タイムステップにおけるテープの内容、チューリングマシンの状態、および位置が前のタイムステップから導かれるトレースである。
証明で用いられる重要な補題は、長さの線形順序を符号化できるということである。(例えば、任意のタイムステップにおけるタイムステップとテープ内容の線形順序など)-項関係宇宙においてサイズの これを実現する一つの方法は、線形順序を選択することである。のそして定義する辞書的な順序付けである-タプルからに関して。