在范畴论 8.2的结尾,Bartosz Milewski 展示了一些逻辑、范畴论和类型系统之间对应关系的例子。
我在徘徊什么对应于逻辑异或运算符。我知道
a xor b == (a ∨ b) ∧ ¬(a ∧ b) == (a ∨ b) ∧ (¬a ∨ ¬b)
所以我只解决了部分问题:a xor b
对应于(Either a b, Either ? ?)
. 但是这两种缺失的类型是什么?
看来怎么写xor
其实归结为怎么写not
。
那么是什么¬a
?我的理解是,a
如果存在 type 的元素(至少一个),这是合乎逻辑的a
。所以为了not a
是真的,a
应该是假的,即它应该是Void
。因此,在我看来,有两种可能性:
(Either a Void, Either Void b) -- here I renamed "not b" to "b"
(Either Void b, Either a Void) -- here I renamed "not a" to "a"
但在最后一段中,我觉得我只是弄错了狗的结局。
(在此处跟进问题。)