構成的な証明とは何か|直観主義論理入門 - 記号論理学

直観主義論理(intuitionistic logic)は、古典論理とは異なる基盤に立つ論理体系です。「構成的な証明」を重視し、排中律を認めないという特徴を持ちます。数学の基礎論や計算機科学で重要な役割を果たしています。

直観主義の哲学的背景

直観主義は、20世紀初頭にオランダの数学者ブラウワーが提唱した数学哲学です。

ブラウワーは、数学的対象は人間の精神によって構成されるものであり、存在証明には具体的な構成方法が必要だと主張しました。単に「存在しないと矛盾する」という背理法による存在証明は認めないのです。

古典主義

数学的対象はプラトン的に存在する。排中律は常に成り立つ。

直観主義

数学的対象は構成によって存在する。構成なしの存在証明は認めない。

排中律の拒否

古典論理では、任意の命題 φ について φ ∨ ¬φ(排中律)が成り立ちます。

直観主義論理では、排中律を公理として認めません。φ ∨ ¬φ を主張するには、φ の証明か ¬φ の証明のどちらかを実際に構成する必要があります。

たとえば「すべての偶数より大きい偶数は2つの素数の和である」(ゴールドバッハ予想)は、証明も反証もされていません。古典論理では「真か偽か」のどちらかですが、直観主義では決定するには具体的な証明が必要です。

排中律 φ ∨ ¬φ

古典論理では公理。直観主義では証明されない限り成り立たない。

二重否定除去 ¬¬φ → φ

古典論理では成り立つ。直観主義では成り立たない。

BHK 解釈

直観主義論理の意味論は、BHK(ブラウワー・ハイティング・コルモゴロフ)解釈で与えられます。

φ の証明とは何かを、再帰的に定義します。

φ ∧ ψ の証明は、φ の証明と ψ の証明の対。

φ ∨ ψ の証明は、φ の証明か ψ の証明のどちらかと、どちらかを示すタグ。

φ → ψ の証明は、φ の証明を受け取って ψ の証明を返す方法(関数)。

¬φ の証明は、φ の証明から矛盾を導く方法。

∧ の証明:両方を構成

∨ の証明:どちらかを構成

→ の証明:変換方法を構成

¬ の証明:矛盾への導出を構成

直観主義論理の推論規則

直観主義の自然演繹は、古典論理から二重否定除去を除いたものです。

ほとんどの規則は同じですが、背理法の使い方が制限されます。¬φ を仮定して矛盾を導いても、φ を直接結論することはできません(ただし ¬¬φ は結論できます)。

古典論理の定理の多くは直観主義でも成り立ちますが、排中律、二重否定除去、対偶の一方向(¬¬φ → φ)、ド・モルガンの一部などは成り立ちません。

カリー・ハワード対応

直観主義論理は、型付きラムダ計算と深い対応関係にあります。これをカリー・ハワード対応(命題=型対応)といいます。

命題は型に、証明はプログラムに対応します。φ → ψ の証明は、φ 型の値を受け取って ψ 型の値を返す関数です。

論理の用語

命題、証明、含意、連言、選言

プログラミングの用語

型、プログラム、関数型、直積型、直和型

この対応により、プログラムの正しさの証明と論理の証明が同一視できます。直観主義論理は、計算機科学の型理論と自然に結びつくのです。

直観主義と古典論理の関係

直観主義論理で証明可能なことは、古典論理でも証明可能です。直観主義は古典論理の「部分」です。

逆に、古典論理の定理を直観主義に「翻訳」する方法(ゲーデル・ゲンツェン翻訳など)があります。古典論理の ¬¬ を挿入することで、直観主義で証明可能になります。

直観主義の現代的意義

直観主義論理は、構成的数学と証明支援系の基礎となっています。

Coq や Agda といった証明支援系は、直観主義論理(またはその拡張)に基づいています。証明はプログラムとして抽出でき、正しさが保証されたソフトウェアを開発できます。

このように、直観主義論理は純粋な哲学的興味を超えて、実用的な応用を持つ論理体系として重要性を増しています。