(forall x,a - > b)/ \(存在x,a) - >的证明。 (存在x,b)

时间:2014-09-25 00:15:58

标签: logic

我试图证明:     (forall x, a -> b) /\ (exists x, a) -> (exists x, b)

我知道如何在给出更宽容的公理和推导规则的情况下证明这一点,但我所拥有的是有点限制。

我可用的推理规则包括modus-ponens:     a, a->b |- b

和概括:     a(x) |- forall(x, a(x))

还包括标准替换规则。

我的公理:
1)句子逻辑中的任何重言式,有3个或更少的布尔变量    (假设布尔运算的标准定义:〜,/ \,V, - >,< - >)。
2)(forall x, a(x)) -> a(t)(其中t对于a中的x是'可替代')
3)forall(x, a -> b) -> ((forall x, a) -> (forall x, b))
4)a -> (forall x, a)(如果x在a中不是空闲的)
5)forall(x, a) <--> ~exists(x, ~a)

我已经推导出的一些当前定理可能会有所帮助:
(forall x, a /\ b) <--> (forall x, a) /\ (forall x, b)
(forall x, a) -> (exists x, b)

我的推导系统无法暂时引入未经证明的假设,正如您在自然演绎系统中所预期的那样。

1 个答案:

答案 0 :(得分:1)

似乎我找到了自己的解决方案。对于它的价值,这个问题实际上应该已经发布到https://math.stackexchange.com/,但是已经完成了。对于那些可能很好奇的人来说,这就是解决方案。顺便提一下,这些规则借用了Enderton的逻辑公理&#34; A Mathematical Introduction to Logic&#34;。然而,公理并不完全相同。

在继续定理之前,我应该介绍一些其他定理和我用这些公理证明的元定理。 (我将在下面的推导中使用这些)。

首先:(a -> b) /\ (b -> c)) -> (a -> c)(假设思维学:重言式) 第二:exists(x, a) -> ~forall(x, ~a)(ExistsDefined。使用规则5得出) 第三:(a->b) -> (~b -> ~a)(矛盾:重言式) 下一篇:alpha, beta |- alpha /\ beta(连词介绍元定理) 元定理可以从下面的重言式结合模态观察中观察到:
(a->(b->(a /\ b)))
最后:任何重言式,无论有多少变量,都可以使用3个变量作为时间推导出来。但是,证明的长度通常会随着变量的数量而迅速增长(假设NP!= coNP)。我在下面的演绎的第15步中使用了这个事实,我使用了5个变量而不是我的3个限制。

现在这是证据:

  1. ~b -> ((a -> b) -> ~ a)(重言式)。
  2. forall(x, ~b -> ((a -> b) -> ~a))(来自第1步)。
  3. forall(x, ~b -> ((a -> b) -> ~a)) -> (forall(x, ~b) -> (forall(x, (a -> b) -> ~a)))(规则3)。
  4. forall(x, ~b) -> forall(x, (a -> b) -> ~a)(来自步骤2和3的ModusPonens)。
  5. forall(x, (a -> b) -> ~a) -> (forall(x, a -> b) -> forall(x, ~a))(规则3)。
  6. (forall(x, ~b) -> forall(x, (a -> b) -> ~a)) /\ (forall(x, (a -> b) -> ~a) -> (forall(x, a -> b) -> forall(x, ~a))) -> (forall(x, ~b) -> (forall(x, a -> b) -> forall(x, ~a)))(来自HypotheticalSyllogism)。
  7. (forall(x, ~b) -> forall(x, (a -> b) -> ~a)) /\ (forall(x, (a -> b) -> ~a) -> (forall(x, a -> b) -> forall(x, ~a)))(连项介绍步骤4和5)。
  8. forall(x, ~b) -> (forall(x, a -> b) -> forall(x, ~a))(ModusPonens步骤6和7)。
  9. (forall(x, ~b) -> (forall(x, a -> b) -> forall(x, ~a))) -> (~(forall(x, a -> b) -> forall(x, ~a)) -> ~forall(x, ~b))(Contrapositive)。
  10. ~(forall(x, a -> b) -> forall(x, ~a)) -> ~forall(x, ~b)(ModusPonens步骤8和9)。
  11. exists(x, b) <-> ~forall(x, ~b)(ExistsDefined)。
  12. exists(x, a) <-> ~forall(x, ~a)(ExistsDefined)。
  13. (exists(x, a) <-> ~forall(x, ~a)) /\ (exists(x, b) <-> ~forall(x, ~b))(连项介绍步骤11和12)。
  14. (~(forall(x, a -> b) -> forall(x, ~a)) -> ~forall(x, ~b)) /\ (exists(x, a) <-> ~forall(x, ~a)) /\ (exists(x, b) <-> ~ forall(x, ~b))(ConjunctionIntroduction步骤10,13)。
  15. (~(a -> b) -> ~c) /\ (e <-> ~b) /\ (d <-> ~c) -> (a /\ e -> d)(Tautology Meta-Theorem)。
  16. (~(forall(x, a -> b) -> forall(x, ~a)) -> ~forall(x, ~b)) /\ (exists(x, a) <-> ~forall(x, ~a)) /\ (exists(x, b) <-> ~forall(x, ~b)) -> (forall(x, a -> b) /\ exists(x, a) -> exists(x, b))(来自第15步)。
  17. forall(x, a -> b) /\ exists(x, a) -> exists(x, b)(ModusPonens步骤14,16)。