Isabelle中矛盾的惯用语证明?

Chr*_*nge 7 proof isabelle isar

到目前为止,我在Isabelle的以下风格中使用矛盾来编写证据(使用Jeremy Siek的模式):

lemma "<expression>"
proof -
  {
    assume "¬ <expression>"
    then have False sorry
  }
  then show ?thesis by blast
qed
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以在没有嵌套的原始校样块的情况下工作{ ... }

Chr*_*nge 5

ccontr矛盾的经典证据有规则:

have "<expression>"
proof (rule ccontr)
  assume "¬ <expression>"
  then show False sorry
qed
Run Code Online (Sandbox Code Playgroud)

有时可能有助于by contradiction证明最后一步.

还有规则classical(看起来不那么直观):

have "<expression>"
proof (rule classical)
  assume "¬ <expression>"
  then show "<expression>" sorry
qed
Run Code Online (Sandbox Code Playgroud)

有关使用的更多示例classical,请参阅$ ISABELLE_HOME/src/HOL/Isar_Examples/Drinker.thy

  • 如果`<expression>`很大,那么从'assume"〜?thesis"`开始是很方便的. (3认同)