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 <-> peirce
,peirce <-> double_negation_elimination
,double_negation_elimination <-> de_morgan_not_and_not
,implies_to_or <-> excluded_middle
,de_morgan_not_and_not -> implies_to_or
,所以我已经涵盖了除所有路径之外的所有内容。对我来说,这只会使这个问题更加令人困惑,而且我不明白为什么我什至无法把这个证据付诸实践。
不知何故,这里没什么用。
一种选择是做exfalso
并尝试从那里做某事,但这会抛弃P \/ Q
目标,即使我怀疑我也会丢失太多信息可以取得一些进展。
另一种选择是尝试破坏H
,但是在这种情况下,存在一个试图证明P -> Q
而又没有任何可用前提的问题。
在过去的一周中,我在练习时遇到了麻烦,并且设法克服了这些麻烦,但是我没有足够的经验,只能在没有寻求建议的情况下撒谎。我到底在这里没看到什么?
很显然,我不想将de_morgan_not_and_not
转换为其他
更容易解决古典法(例如排除在外的中间法则),因为这很重要。
答案 0 :(得分:3)
由于Software Foundations一书明确要求不要发布解决方案,所以让我给出一个提示。
请注意,假设H
在其所涉及的两个命题中都是普遍量化的。
这意味着您可以为P
和Q
提供甚至所有相同的任何命题。基本上,这种观察使您可以经典地推理,足以解决此问题。
答案 1 :(得分:1)
您是否有特定的原因不想使用其他证明来证明这一点?避免使用您无条件为真的结果是相当人为的。
通过使用de_morgan_not_and_not
对implies_to_or
和P
进行案例分析,可以避免操纵Q
(请参阅implies_to_or -> excluded_middle
的证明)。然后,您需要查看四种情况,所有四个最终目标都是简单的1-3行证明。