作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图证明以下来自 an online course 的简单定理排中间是无可辩驳的,但在第 1 步几乎卡住了:
Theorem excluded_middle_irrefutable: forall (P:Prop), ~~(P \/ ~ P).
Proof.
intros P. unfold not. intros H.
1 subgoals
P : Prop
H : P \/ (P -> False) -> False
______________________________________(1/1)
False
apply H
,那么目标将是
P \/ ~P
,这是排中的,不能 build 性地证明。但除了
apply
,不知道对这个假设能做些什么
P \/ (P -> False) -> False
: 寓意
->
是原始的,我不知道如何
destruct
或分解它。这是唯一的假设。
auto
s)?
最佳答案
我不是这方面的专家,但最近在 Coq mailing-list 上讨论了这个问题。 .我将总结这个线程的结论。如果你想更透彻地理解这类问题,你应该看看double-negation translation .
该问题属于直觉命题演算,因此可以由 tauto
决定。 .
Theorem excluded_middle_irrefutable: forall (P:Prop), ~~(P \/ ~ P).
tauto.
Qed.
Theorem excluded_middle_irrefutable: forall (P:Prop), ~~(P \/ ~ P).
unfold not.
intros P f.
f
的函数。并产生类型
False
的值.到达
False
的唯一途径此时是调用函数
f
.
apply f.
f
提供参数。 .我们有两个选择,要么通过
P
或
P -> False
.我没有看到构建
P
的方法所以我选择第二个选项。
right.
intro p.
p
跟...共事!
f
因为这是我们唯一能做的。
apply f.
f
提供参数。 .不过现在这很容易,因为我们有一个
p
跟...共事。
left.
apply p.
Qed.
~(P /\ ~P)
.
Lemma lma (P:Prop) : ~(P /\ ~P).
unfold not.
intros H.
destruct H as [p].
apply H.
apply p.
Qed.
~(P \/ Q) -> ~P /\ ~Q
:
Lemma lma' (P Q:Prop) : ~(P \/ Q) -> ~P /\ ~Q.
unfold not.
intros H.
constructor.
- intro p.
apply H.
left.
apply p.
- intro q.
apply H.
right.
apply q.
Qed.
Theorem excluded_middle_irrefutable: forall (P:Prop), ~~(P \/ ~ P).
intros P H.
apply lma' in H.
apply lma in H.
apply H.
Qed.
关于logic - 如何证明排中律在 Coq 中是无可辩驳的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32812834/
我是一名优秀的程序员,十分优秀!