伊莎贝尔换人

时间:2015-03-08 17:00:24

标签: isabelle

在许多纸张样张中,您会看到作者在等式中替换变量。例如,如果存在不等式“f(xy)> = g(xy)* z,则作者简单地写let h =(xy),因此”f(h)> = g(h)* z“并继续证明。

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

具体来说,我有:

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”,我可以证明这个引理。这是正确的方法吗?

1 个答案:

答案 0 :(得分:1)

进行替换有各种可能性。

如果您对元量词有一些陈述,则可以使用whereof。要将公式中的量词转换为元数据,您可以使用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