定制案例中的证明区别

Ben*_*ikt 3 isabelle isar

Isabelle在证明陈述时是否支持自定义区分大小写?假设我想证明所有自然数的陈述n,但根据n是偶数还是奇数,证明完全不同。是否可以在证明中进行区分大小写,例如

 proof(cases n) 
   assume "n mod 2 = 0"
   <proof>
   next assume "n mod 2 = 1"
   <proof>
qed
Run Code Online (Sandbox Code Playgroud)

到目前为止,我将引理/定理分为两个单独的部分(假定为n偶数/奇数),然后使用这些部分来证明所有自然数的陈述,但这似乎不是最佳解决方案。

lar*_*srh 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
Run Code Online (Sandbox Code Playgroud)