如何在 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 ⟶ ⟨…⟩)
,但是如果不借助大锤我无法证明它,而且我也猜想这里使用 ∀
和 ⟶
不是规范。
您可以毫无问题地组合 arbitrary
和 rule
。但是,arbitrary
必须出现在 rule
之前。
在 Isabelle 中,我可以使用 arbitrary
关键字泛化归纳证明中的变量。这绝对适用于普通归纳法,例如 apply (induction n arbitrary: m)
。我也可以进行规则归纳,例如 apply (induction rule: R.induct)
。但是如何在使用规则归纳时泛化变量?
在我的特定用例中,我需要证明 R x ⟹ S y ⟹ ⟨…⟩
形式的定理。谓词 R
是归纳定义的,我想对其使用规则归纳。变量 y
在证明中不能固定,但必须是任意的。作为一种变通方法,我已经证明了定理 R x ⟹ (∀ y . S y ⟶ ⟨…⟩)
,但是如果不借助大锤我无法证明它,而且我也猜想这里使用 ∀
和 ⟶
不是规范。
您可以毫无问题地组合 arbitrary
和 rule
。但是,arbitrary
必须出现在 rule
之前。