【问题标题】:Substitution in Isabelle伊莎贝尔换人
【发布时间】:2015-03-08 17:00:24
【问题描述】:

在许多论文证明中,您会看到作者在方程式中替换变量。例如,如果存在不等式“f(x-y) >= g(x-y)*z”,作者简单写为 let h=(x-y),因此“f(h) >= g(h)*z”并继续有证据。

要在 Isabelle 中做同样的事情,我是否必须假设 h=(x-y),还有其他方法吗?我查看了“让”功能,但它的作用完全不同。

具体来说,我有:

lemma
fixes f g :: "real⇒real"
assumes "∀x∈S. ∀y∈S. f y - f x ≥ (y-x)*(g x)"
shows "∀x∈S. ∀h. f (x+h) - g x ≥ h*(g x)"

所以我让 h=y-x。

如果我假设“∀h.∀x∈S.∀y∈S.h = y-x”,我可以证明这个引理。这是正确的方法吗?

【问题讨论】:

    标签: isabelle


    【解决方案1】:

    执行替换有多种可能性。

    如果您有一些带有元量词的语句,您可以使用whereof。要将公式中的量词 转换为 meta-forall,例如可以使用 rule_format。然后,assms[rule_format, of x "h+x"] 在您的示例中产生公式x ∈ S ⟹ x + h ∈ S ⟹ f (x + h) - f x >= (x + h - x) * g x

    这里,你马上看到两个问题:首先- f x- g x的区别,以及不能保证x + h ∈ S的问题。

    或者,您也可以通过展开来执行替换,例如,使用def h = "x - y",然后折叠或展开h_def

    【讨论】:

    • 谢谢@ReneThiemann。你会说上面的方法也正确吗?那是"∀h. ∀x∈S. ∀y∈S. h = y-x"?
    • 不,这看起来是一个错误的假设,因为它声称对于xy 的所有可能选择,每个可能的值h 总是y - x
    • 我一直在使用您推荐的第一种方法,但是它不维护量词 。有什么办法可以做到这一点?
    猜你喜欢
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 2013-01-03
    • 1970-01-01
    相关资源
    最近更新 更多