Isabelle 为什么我可以证明⟦;(x.P)及;(x.Q)和"x27E7,⟹∃;十,。(P&x2227;Q)?

Isabelle 为什么我可以证明⟦;(x.P)及;(x.Q)和"x27E7,⟹∃;十,。(P&x2227;Q)?,isabelle,Isabelle,我是伊莎贝尔的初学者,学习基础知识。令我惊讶的是,我刚刚证明了这一点 lemma "⟦ ( ∃ x. P ) ∧ ( ∃ x. Q ) ⟧ ⟹ ∃ x. (P ∧ Q)" apply ( auto ) done 在伊莎贝尔/霍尔。现在假设P和Q的范围在任意谓词上,这是错误的,只需实例化P到x=1和Q到x=2 当然错误肯定在我这边,但我的误解在哪里呢?正如评论中已经指出的那样,p和Q在您的示例中不是谓词,它们只是布尔变量。如果您键入术语P,您将只得到bool。由于HOL类型是非空的,∃十,。P

我是伊莎贝尔的初学者,学习基础知识。令我惊讶的是,我刚刚证明了这一点

lemma "⟦ ( ∃ x. P ) ∧ ( ∃ x. Q ) ⟧ ⟹  ∃ x. (P ∧ Q)"
apply ( auto )
done
在伊莎贝尔/霍尔。现在假设P和Q的范围在任意谓词上,这是错误的,只需实例化P到x=1和Q到x=2


当然错误肯定在我这边,但我的误解在哪里呢?

正如评论中已经指出的那样,
p
Q
在您的示例中不是谓词,它们只是布尔变量。如果您键入
术语P
,您将只得到
bool
。由于HOL类型是非空的,
∃十,。P
相当于
P
Q
,因此你的假设迫使
P
Q
,这显然意味着你证明的陈述

你的意思是

lemma "⟦(∃x. P x) ∧ (∃x. Q x)⟧ ⟹  ∃x. P x ∧ Q x"
这是错误的,只要写下引理,quickcheck就会自动为您提供一个反例

还请注意,括号⟦…⟧ 一个单一的假设(如您的情况)不需要。此外,使用HOL连接运算符是不常见的∧ 结合假设。你通常会说这个引理是

lemma "⟦∃x. P x; ∃x. Q x⟧ ⟹ ∃x. P x ∧ Q x"


此表单比带有HOL的表单更易于处理∧, 因为您可以实例化特定的假设。

我对isabelle的语法不太了解。但是
P
Q
不应该对
x
敏感吗?换句话说
P(x)
Q(x)
,否则无论
x
的值是多少,这些语句都是真的?
lemma "∃x. P x ⟹ ∃x. Q x ⟹ ∃x. P x ∧ Q x"