Isabelle - Nitpick 反例用法
Isabelle - Nitpick counterexample usage
我想完成这个证明。
如何 easily/elegantly 使用 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
定理并不像陈述的那样成立,因为如果 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
。
我想完成这个证明。
如何 easily/elegantly 使用 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
定理并不像陈述的那样成立,因为如果 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
。