Coq 演習 2
http://herb.h.kobe-u.ac.jp/coq/coq.pdf の続き。
2.1.9 古典論理 まで読んだ。排中律を手に入れた。
演習問題 2.
Require Import Classical.
Variable A B C: Prop.
Lemma Taiguu: (~B -> ~A) -> (A -> B).
Proof.
intros.
apply NNPP.
intro.
generalize H0.
apply H.
trivial.
Qed.
Lemma Peirce: ((A -> B) -> A) -> A.
Proof.
intros.
apply imply_to_or in H.
destruct H.
apply imply_to_and in H.
destruct H.
trivial.
trivial.
Qed.
Lemma P1: ~(A /\ B) -> ~A \/ ~B.
Proof.
apply not_and_or.
Qed.
Lemma P2: ((A -> ~A) -> B) -> ((A -> B) -> B).
Proof.
intros.
apply imply_to_or in H.
destruct H.
apply imply_to_and in H.
destruct H.
apply H0.
trivial.
trivial.
Qed.
Lemma P3: (~B -> ~A) -> ((~B -> A) -> B).
Proof.
intros.
apply imply_to_or in H.
destruct H.
apply NNPP in H.
trivial.
apply imply_to_or in H0.
destruct H0.
apply NNPP in H0.
trivial.
contradiction.
Qed.
Lemma P4: (A -> B) \/ (B -> A).
Proof.
apply NNPP.
intro.
apply not_or_and in H.
destruct H.
apply imply_to_and in H.
destruct H.
apply imply_to_and in H0.
destruct H0.
contradiction.
Qed.
一応解けた。感覚はまだよくわからないが、タブローのときのように -> を OR か AND に変えていくと道が開ける感はある。
この記事が気に入ったらサポートをしてみませんか?