我试图证明:
(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)
我的推导系统无法暂时引入未经证明的假设,正如您在自然演绎系统中所预期的那样。
答案 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个限制。
现在这是证据:
~b -> ((a -> b) -> ~ a)
(重言式)。forall(x, ~b -> ((a -> b) -> ~a))
(来自第1步)。forall(x, ~b -> ((a -> b) -> ~a)) -> (forall(x, ~b) -> (forall(x, (a -> b) -> ~a)))
(规则3)。forall(x, ~b) -> forall(x, (a -> b) -> ~a)
(来自步骤2和3的ModusPonens)。forall(x, (a -> b) -> ~a) -> (forall(x, a -> b) -> forall(x, ~a))
(规则3)。(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)。(forall(x, ~b) -> forall(x, (a -> b) -> ~a)) /\ (forall(x, (a -> b) -> ~a) ->
(forall(x, a -> b) -> forall(x, ~a)))
(连项介绍步骤4和5)。forall(x, ~b) -> (forall(x, a -> b) -> forall(x, ~a))
(ModusPonens步骤6和7)。(forall(x, ~b) -> (forall(x, a -> b) -> forall(x, ~a))) -> (~(forall(x, a -> b) -> forall(x, ~a)) -> ~forall(x, ~b))
(Contrapositive)。~(forall(x, a -> b) -> forall(x, ~a)) -> ~forall(x, ~b)
(ModusPonens步骤8和9)。exists(x, b) <-> ~forall(x, ~b)
(ExistsDefined)。exists(x, a) <-> ~forall(x, ~a)
(ExistsDefined)。(exists(x, a) <-> ~forall(x, ~a)) /\ (exists(x, b) <-> ~forall(x, ~b))
(连项介绍步骤11和12)。(~(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)。(~(a -> b) -> ~c) /\ (e <-> ~b) /\ (d <-> ~c) -> (a /\ e -> d)
(Tautology Meta-Theorem)。(~(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步)。forall(x, a -> b) /\ exists(x, a) -> exists(x, b)
(ModusPonens步骤14,16)。