我想完成这个证明。
如何轻松/优雅地使用nitpick
找到的值? (在...
部分写什么?)
或者,我如何使用nitpick
找到反例来完成证明的事实?
lemma Nitpick_test: "¬(((a+b) = 5) ∧ ((a-b) = (1::int)))" (is "?P")
proof (rule ccontr)
assume "¬ ?P"
nitpick
(* Nitpicking formula...
Nitpick found a counterexample:
Free variables:
a = 3
b = 2
*)
show "False" by ...
qed
答案 0 :(得分:3)
该定理不符合规定,因为如果a = 3
和b = 2
,则语句的计算结果为False
。但是,对于a
和b
的其他值,该语句确实成立。因此,由于a
和b
被隐含地普遍量化,你无法证明所述定理。
如果你想改为
theorem "EX a b. a + b = 5 & a - b = (1 :: int)"
您可以使用rule exI[where x="..."]
为存在量词提供见证...
,在这种情况下3
和2
。