是否可以不借助其他经典法则来证明“ implies_to_or-> de_morgan_not_and_not”?

时间:2019-05-01 08:45:04

标签: coq

Theorem implies_to_or_to_de_morgan_not_and_not : 
  implies_to_or -> de_morgan_not_and_not.
Proof.
unfold implies_to_or, de_morgan_not_and_not, not.
intros.
Admitted.
1 subgoal
H : forall P Q : Prop, (P -> Q) -> (P -> False) \/ Q
P, Q : Prop
H0 : (P -> False) /\ (Q -> False) -> False
______________________________________(1/1)
P \/ Q

这是来自SF Logic章节末尾的5星练习。

我已经针对这个特定问题投入了太多时间了,所以我真的不得不问一下。我已经证明了excluded_middle <-> peircepeirce <-> double_negation_eliminationdouble_negation_elimination <-> de_morgan_not_and_notimplies_to_or <-> excluded_middlede_morgan_not_and_not -> implies_to_or,所以我已经涵盖了除所有路径之外的所有内容。对我来说,这只会使这个问题更加令人困惑,而且我不明白为什么我什至无法把这个证据付诸实践。

不知何故,这里没什么用。

一种选择是做exfalso并尝试从那里做某事,但这会抛弃P \/ Q目标,即使我怀疑我也会丢失太多信息可以取得一些进展。

另一种选择是尝试破坏H,但是在这种情况下,存在一个试图证明P -> Q而又没有任何可用前提的问题。

在过去的一周中,我在练习时遇到了麻烦,并且设法克服了这些麻烦,但是我没有足够的经验,只能在没有寻求建议的情况下撒谎。我到底在这里没看到什么?

很显然,我不想将de_morgan_not_and_not转换为其他 更容易解决古典法(例如排除在外的中间法则),因为这很重要。

2 个答案:

答案 0 :(得分:3)

由于Software Foundations一书明确要求不要发布解决方案,所以让我给出一个提示。

请注意,假设H在其所涉及的两个命题中都是普遍量化的。 这意味着您可以为PQ提供甚至所有相同任何命题。基本上,这种观察使您可以经典地推理,足以解决此问题。

答案 1 :(得分:1)

您是否有特定的原因不想使用其他证明来证明这一点?避免使用您无条件为真的结果是相当人为的。

通过使用de_morgan_not_and_notimplies_to_orP进行案例分析,可以避免操纵Q(请参阅implies_to_or -> excluded_middle的证明)。然后,您需要查看四种情况,所有四个最终目标都是简单的1-3行证明。