伊莎贝尔:理解量词的使用
Isabelle: understanding the use of quantifiers
我发现我可以证明以下引理,这对我来说似乎是错误的。
lemma assumes "∀a b. f a > f b ∧ a ≠ b"
shows "∀a b. f b > f a"
using assms by auto
上面的引理怎么可能是真的? Isabelle 是否像我使用 ∀ 量词那样替换值?如果是这样,我想说明对于 a 和 b 的所有值,f(a) 都大于 f(b),我该怎么做?
你陈述的引理是平凡的。几乎是 "A ==> A" 的直接实例。根据您的假设,可以简单地得出 ∀a b. f a > f b
的结论。然后通过适当地重命名绑定变量,我们获得 ∀b a. f b > f a
。此外,所有量词可以重新排序以获得 ∀a b. f b > f a
.
为什么看起来是假的?您是说对于任何 a 和 b,f a > f b
和 a ≠ b
。这意味着如果说 a = 0
和 b = 1
那么 f 0 > f 1
但当 a = 1
和 b = 0
也意味着 f 1 > f 0
.
此外,您假设 ∀a b. f a > f b ∧ a ≠ b
为真,这意味着您假设对于任何 a 和 b,f a > f b
AND a 不同于 b。这通常是错误的,因为您不能 ∀a b. a ≠ b
也许您的意思是:∀a b. (a ≠ b ==> f a > f b)
?例如。对于任何 a 和 b,如果 a ≠ b
那么 f a > f b
?请注意,根据上面的示例,这仍然意味着 f b > f a
,它实际上没有任何意义。
我发现我可以证明以下引理,这对我来说似乎是错误的。
lemma assumes "∀a b. f a > f b ∧ a ≠ b"
shows "∀a b. f b > f a"
using assms by auto
上面的引理怎么可能是真的? Isabelle 是否像我使用 ∀ 量词那样替换值?如果是这样,我想说明对于 a 和 b 的所有值,f(a) 都大于 f(b),我该怎么做?
你陈述的引理是平凡的。几乎是 "A ==> A" 的直接实例。根据您的假设,可以简单地得出 ∀a b. f a > f b
的结论。然后通过适当地重命名绑定变量,我们获得 ∀b a. f b > f a
。此外,所有量词可以重新排序以获得 ∀a b. f b > f a
.
为什么看起来是假的?您是说对于任何 a 和 b,f a > f b
和 a ≠ b
。这意味着如果说 a = 0
和 b = 1
那么 f 0 > f 1
但当 a = 1
和 b = 0
也意味着 f 1 > f 0
.
此外,您假设 ∀a b. f a > f b ∧ a ≠ b
为真,这意味着您假设对于任何 a 和 b,f a > f b
AND a 不同于 b。这通常是错误的,因为您不能 ∀a b. a ≠ b
也许您的意思是:∀a b. (a ≠ b ==> f a > f b)
?例如。对于任何 a 和 b,如果 a ≠ b
那么 f a > f b
?请注意,根据上面的示例,这仍然意味着 f b > f a
,它实际上没有任何意义。