Isabelle中的Apply和Isar样式之间的对等

时间:2018-11-09 23:03:21

标签: isabelle

是否应用样式和等同于Isar的证明?这是我深思熟虑的一个问题。当然,Isar证明更具可读性,可维护性且易于编写(?),但我的问题是,两种样式是否都可以证明完全相同。

作为一个例子,我目前正在研究一个需要离开的证据:

apply(simp split: prod.splits) 
using some_lemma by fastforce

apply和Isar样式中这些命令的等效形式是什么?其实,我对Isar样式更感兴趣,因为有人告诉我混合样式是不好的样式。

1 个答案:

答案 0 :(得分:2)

等效的Isar样式为:

have "P"
  using some_lemma by fastforce
then have "Q"
  by (simp split: prod.splits)

其中“ P”代表第一个apply之后的中间目标状态。

通常,任何可证明的东西都可以用Isar和apply样式来证明;两者都有优点和缺点。

我个人使用的样式是尝试由内而外构造证明:外部(如归纳)Isar,必要时在内部(如简化,低级的东西)使用apply

一般来说,尽管我建议您尽量留在Isar内。