Unprovable theorem forall A : Prop, ~~A -> A

左心房为你撑大大i 提交于 2019-12-11 17:52:26

问题


I am stuck with a theorem and I think that it's unprovable.

Theorem double_negation : forall A : Prop, ~~A -> A.  

Can you prove it or explain why it is unprovable?

Is it due to Gödel's incompleteness theorems?


回答1:


Double negation elimination is not provable in constructive logic which underpins Coq. Attempting to prove it we quickly get stuck:

Theorem double_negation_elim : forall A : Prop, ~~A -> A.
Proof.
  unfold not.
  intros A H.
  (* stuck because no way to reach A with H : (A -> False) -> False *)
Abort.

We can show that if double negation elimination was provable then Law of Excluded Middle would hold, that is, (forall (A : Prop) , (~~A -> A)) -> forall A : Prop, A \/ ~A.

First we prove intermediate result ∼∼(A ∨ ∼A):

Lemma not_not_lem: forall A: Prop, ~ ~(A \/ ~A).
Proof.
  intros A H.
  unfold not in H.
  apply H.
  right.
  intro a.
  destruct H.
  left.
  apply a.
Qed.

Therefore

Theorem not_not_lem_implies_lem: 
  (forall (A : Prop) , (~~A -> A)) -> forall A : Prop, A \/ ~A.
Proof.
  intros H A.
  apply H.
  apply not_not_lem.
Qed.

But this is a contradiction as LEM does not hold in constructive logic.



来源:https://stackoverflow.com/questions/50901105/unprovable-theorem-forall-a-prop-a-a

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!