Isabelle 使用事实和将其添加为简化规则之间的区别

Isabelle 使用事实和将其添加为简化规则之间的区别,isabelle,Isabelle,考虑证明: (∑ m<k. 2^m) = (∑ m≤k-1. 2^m) 我找到了一种方法来证明这一点: apply(rule sum.cong) using ‹k ≥ 1› by auto 但我知道,混合使用apply和isar命令被认为是不好的风格。所以我试着改成: apply(rule sum.cong,auto simp add: ‹k ≥ 1›) 现在这不起作用了。由于这是一种常见的情况,是否有一种优雅的方法可以在apply style/isar style中完全证

考虑证明:

(∑ m<k. 2^m) = (∑ m≤k-1. 2^m)
我找到了一种方法来证明这一点:

  apply(rule sum.cong) 
  using ‹k ≥ 1› by auto
但我知道,混合使用apply和isar命令被认为是不好的风格。所以我试着改成:

apply(rule sum.cong,auto simp add: ‹k ≥ 1›)

现在这不起作用了。由于这是一种常见的情况,是否有一种优雅的方法可以在apply style/isar style中完全证明这一点?是什么让关键字
使用
从根本上不同于简化?

我不是风格方面的专家,但我相信
使用èk应用(rule sum.cong)≥ 1›自动
是相当惯用的。在HOL中有许多使用这种模式的证明。例如,请参见理论
Nat
中的
infinite\u descent0
。当然,您也可以使用
by(rule sum.cong,insertèk≥ 1›自动
,但我不认为有实质性区别。您也可以使用:
使用èk≥ 1›由(自动介绍:sum.cong)
使用èk≥ 1›由(intro sum.cong)自动
由(rule sum.cong)(使用èk≥ 1›在自动模式下)
你能做
引理吗≥ 1“表演”(∑ 我不是风格方面的专家,但我相信
使用èk应用(rule sum.cong)≥ 1›by auto
相当惯用。HOL中有许多使用此模式的证明。例如,请参见理论
Nat
中的
infinite\u descent0
。当然,您也可以使用
by(rule sum.cong,insertèk≥ 1›自动
,但我不认为有实质性区别。您也可以使用:
使用èk≥ 1›由(自动介绍:sum.cong)
使用èk≥ 1›由(intro sum.cong)自动
由(rule sum.cong)(使用èk≥ 1›在自动模式下)
你能做
引理吗≥ 1“表演”(∑ M
apply(rule sum.cong,auto simp add: ‹k ≥ 1›)