Isabelle在证明陈述时是否支持自定义案件区别?让我们说我想证明所有自然数n
的陈述,但证据完全不同,取决于n
是偶数还是奇数。是否可以在证明中区分这种情况,例如
proof(cases n)
assume "n mod 2 = 0"
<proof>
next assume "n mod 2 = 1"
<proof>
qed
到目前为止,我将引理/定理分成两个单独的部分(假设n
偶数/奇数),然后使用这些部分来证明所有自然数的语句,但这不会出现成为最佳解决方案。
答案 0 :(得分:5)
在Isabelle2017中,您可以轻松地证明特殊案例区分规则,如下:
lemma "P (n::nat)"
proof -
consider (odd) "odd n" | (even) "even n" by auto
then show ?thesis
proof cases
case odd
then show ?thesis sorry
next
case even
then show ?thesis sorry
qed
qed
答案 1 :(得分:0)
您可以尝试以下方法:
proof -
have "your statement" when "n mod 2 = 0"
<proof>
moreover
have "your statement" when "n mod 2 = 1"
<proof>
ultimately
show "your statement"
by <some tactic>
qed