是否应用样式和等同于Isar的证明?这是我深思熟虑的一个问题。当然,Isar证明更具可读性,可维护性且易于编写(?),但我的问题是,两种样式是否都可以证明完全相同。
作为一个例子,我目前正在研究一个需要离开的证据:
apply(simp split: prod.splits)
using some_lemma by fastforce
apply和Isar样式中这些命令的等效形式是什么?其实,我对Isar样式更感兴趣,因为有人告诉我混合样式是不好的样式。
答案 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内。