在农民宇航员中制定逻辑
Formualting a logic in farmer astronaught
电影中有这种逻辑,我不能完全形式化(例如在 Coq 中)。
有人想在他的农场上发射一枚火箭,监视该站点的 FBI 人员正在互相讨论他们为什么在那里。一个人说:
Because if we are not here and he launches, we will look like as*s.
然后另一个人回复了
what if we are here and he launches?
答案:
we'll still look like as*s.
看来这里的逻辑是这样的:
给定:
A = we look foolish
B = he launches
C = we are not here.
我们有
B /\ C -> A and
B /\ ~C -> A
此外,C
(我们在这里)是否成立似乎并不重要。结论归结为B -> A
。 (如果他发射,我们会看起来很愚蠢)。
我们能证明这个推理吗?
我试过:
Theorem farmer: forall A B C:Prop,
(B /\ C -> A) -> (B /\ ~C -> A) -> (B -> A).
Proof.
intros. tauto.
然后卡住了。我尝试添加排除的中间,但 tauto
仍然无法证明。
另一方面,在做布尔代数时,我们有:
(~B + ~C + A)(~B + C + A) =
(~B + A)C + (~B + A)~C + (~B +A) =
~B + A.
即
(B /\ C -> A) /\ (B /\ ~C -> A) = B -> A.
这在 Coq 的逻辑中如何证明,还是我推导错误?
如果你的命题没有可判定性,我不确定你能否证明你想要的:你仍然需要知道 C
是否为真。但是你的陈述需要复杂的命题相等性,我建议你更确切地说:
forall A B C:Prop, ((B /\ C) -> A) /\ ((B /\ ~C) -> A) -> (B -> A).
不知道你为什么用排中律失败了,因为它足以证明命题:
Axiom LEM: forall P:Prop, P \/ ~P.
Theorem farmer: forall A B C:Prop,
(B /\ C -> A) -> (B /\ ~C -> A) -> (B -> A).
intros.
destruct (LEM C); tauto.
Qed.
电影中有这种逻辑,我不能完全形式化(例如在 Coq 中)。
有人想在他的农场上发射一枚火箭,监视该站点的 FBI 人员正在互相讨论他们为什么在那里。一个人说:
Because if we are not here and he launches, we will look like as*s.
然后另一个人回复了
what if we are here and he launches?
答案:
we'll still look like as*s.
看来这里的逻辑是这样的: 给定:
A = we look foolish
B = he launches
C = we are not here.
我们有
B /\ C -> A and
B /\ ~C -> A
此外,C
(我们在这里)是否成立似乎并不重要。结论归结为B -> A
。 (如果他发射,我们会看起来很愚蠢)。
我们能证明这个推理吗?
我试过:
Theorem farmer: forall A B C:Prop,
(B /\ C -> A) -> (B /\ ~C -> A) -> (B -> A).
Proof.
intros. tauto.
然后卡住了。我尝试添加排除的中间,但 tauto
仍然无法证明。
另一方面,在做布尔代数时,我们有:
(~B + ~C + A)(~B + C + A) =
(~B + A)C + (~B + A)~C + (~B +A) =
~B + A.
即
(B /\ C -> A) /\ (B /\ ~C -> A) = B -> A.
这在 Coq 的逻辑中如何证明,还是我推导错误?
如果你的命题没有可判定性,我不确定你能否证明你想要的:你仍然需要知道 C
是否为真。但是你的陈述需要复杂的命题相等性,我建议你更确切地说:
forall A B C:Prop, ((B /\ C) -> A) /\ ((B /\ ~C) -> A) -> (B -> A).
不知道你为什么用排中律失败了,因为它足以证明命题:
Axiom LEM: forall P:Prop, P \/ ~P.
Theorem farmer: forall A B C:Prop,
(B /\ C -> A) -> (B /\ ~C -> A) -> (B -> A).
intros.
destruct (LEM C); tauto.
Qed.