如何在 Isabelle 中将规则归纳与变量泛化结合起来?

How can I combine rule induction with variable generalization in Isabelle?

在 Isabelle 中,我可以使用 arbitrary 关键字泛化归纳证明中的变量。这绝对适用于普通归纳法,例如 apply (induction n arbitrary: m)。我也可以进行规则归纳,例如 apply (induction rule: R.induct)。但是如何在使用规则归纳时泛化变量?

在我的特定用例中,我需要证明 R x ⟹ S y ⟹ ⟨…⟩ 形式的定理。谓词 R 是归纳定义的,我想对其使用规则归纳。变量 y 在证明中不能固定,但必须是任意的。作为一种变通方法,我已经证明了定理 R x ⟹ (∀ y . S y ⟶ ⟨…⟩),但是如果不借助大锤我无法证明它,而且我也猜想这里使用 不是规范。

您可以毫无问题地组合 arbitraryrule。但是,arbitrary 必须出现在 rule 之前。