Slide 6
Slide 6 text
数学の証明はふつう自然言語と数式で書きますが、それをソフトウェアを通して検証
させ、「証明が正しいこと」を検証させる、というものです。
例えば、次の命題をCoqで検証させるには、次のように書きます。
Theorem subsets_cap A B X: X ⊂ A -> X ⊂ B -> X ⊂ A ∩ B.
Proof.
move=> HXA HXB x HX.
(* HXA: X ⊂ A, HXB: X ⊂ B, ∀x, HX: x ∈ X をコンテキストへ移動する *)
split. (* x ∈ A ∩ B を x ∈ A と x ∈ B に場合分けして考える *)
- by apply HXA. (* x ∈ A なら X ⊂ A より成り立つ *)
- by apply HXB. (* x ∈ A なら X ⊂ B より成り立つ *)
Qed.
6