不可证明的定理:A:Prop,~~ A - >一个

时间:2018-06-17 22:53:52

标签: logic coq

我坚持一个定理,我认为这是不可能的。

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

你能证明它或解释为什么它是不可能的吗?

这是由于哥德尔的不完备性定理吗?

1 个答案:

答案 0 :(得分:2)

双重否定消除是not provable in constructive logic,它是Coq的基础。为了证明这一点,我们很快得到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.

我们可以show如果可以证明双重否定消除是可证明的,那么排除中间的法则将成立,即(forall (A : Prop) , (~~A -> A)) -> forall A : Prop, A \/ ~A.

首先我们prove中间结果∼∼(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.

因此

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.

但这是一个矛盾,因为LEM不具备建设性的逻辑。