人们可以假设什么,Isar值得假设什么?

时间:2014-07-16 18:33:42

标签: isabelle isar

在Isar中,assume使用assume expects to be able to unify with existing premises in the goal 作为目标的前提,以便她可以使用它来建立结论。

Isabelle/Isar Reference

assume

这是assume的唯一用途,即从目标前提获取事实吗?

更新:因为有些人认为这太宽泛了,我不明白,我试着 重新提出问题。

本手册描述了{{1}}的逻辑内容。但它的用途是什么?当我从目标的前提得到一个事实时,这只局限于这种情况吗?

1 个答案:

答案 0 :(得分:1)

我看到assume关键字的两种用法,当然是同一过程的两个实例:说明要证明的属性的前提。

如果我们采取一个愚蠢的例子:

lemma "∀A B C D. A ⟶ B ⟶ C ⟶ D ⟶ (A ∧ B) ∧ (C ∧ D)"
using assms
proof (intro allI impI)
  fix A B C D
  assume A B
  then have "A ∧ B" .. (* or "by rule", "by default", "by simp", ... *)

  { fix E F
    assume E and F
    then have "E ∧ F" ..
  } note H = this

  assume C D then have "C ∧ D" ..
  from H[OF `A ∧ B` `C ∧ D`] show "(A ∧ B) ∧ (C ∧ D)" . (* or "by fact" *)
qed
  • assume似乎在proofproofshow之间的任何位置说明thus命令生成的前提。这些假设属性必须是proof命令(此处为A B CD)生成的前提的子集。

  • assume出现在由{}分隔的块中,您可以在其中假设您想要的任何内容,然后使用{{来证明属性P 1}}。当块关闭时,产生一个局部事实,由假设作为前提,属性have作为结论。在示例中,我将其命名为P并使用它来证明最后一个连接。