Isabelle - Nitpick反例使用

时间:2015-10-13 14:51:12

标签: isabelle theorem-proving

我想完成这个证明。

如何轻松/优雅地使用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

1 个答案:

答案 0 :(得分:3)

该定理不符合规定,因为如果a = 3b = 2,则语句的计算结果为False。但是,对于ab的其他值,该语句确实成立。因此,由于ab被隐含地普遍量化,你无法证明所述定理。

如果你想改为

theorem "EX a b. a + b = 5 & a - b = (1 :: int)"

您可以使用rule exI[where x="..."]为存在量词提供见证...,在这种情况下32