零类型的方程式定律是什么?


13

免责声明:虽然我很关注类型理论,但我并不认为自己是类型理论的专家。

在简单类型的lambda演算中,零类型没有构造函数,并且具有唯一的消除符:

ΓM:0Γinitial(M):A

从种属的观点来看,方程式 initial(M1)=initial(M2)是显而易见的(当类型有意义时)。

但是,从这个角度来看,我还可以推断出,当M,M:0,:M=M。这种推论似乎更强,尽管显示它的特定模型使我难以理解。

(尽管我有一些证明理论上的直觉:您使用哪种矛盾来获得居民并不重要,但是可能会有不同的矛盾证明。)

所以我的问题是:

  1. 零类型的标准方程式是什么?
  2. 它们中的任何一个被归类为ηβ定律吗?

Answers:


12
  1. 为空的类型的标准方程式规则是,当你推测,。考虑一下标准的集理论模型,其中集由类型解释:和类型是不相交的并集,而空类型是空集。因此,任何两个函数e e Γ 0也必须相等,因为它们具有共同的图(即空图)。。Γe=e:0e,e:Γ0

  2. 空类型没有规则,因为它没有引入形式。它唯一的方程式规则是η规则。但是,根据您希望解释标准规则的严格程度,您可能希望将其分解为η加通勤转换。严格的η规则是:βηηη

    e=initial(e)

    通勤范围是:

    C[initial(e)]=initial(e)

编辑:

这就是为什么零类型的分布意味着所有映射相等的原因。A0

要修正符号,让我们写是从0A的唯一映射,让我们写e A 0是从A0的某个映射。!A:0A0Ae:A0A0

i:0A×0A×0A

A×0π1:A×0A!Aπ2

A0e:A0!A:0Ae!A=id0!Ae=idA

e!A=id000

idA=π1(idA,e)Product equations=!Aπ2(idA,e)Since A×0 is initial=!AeProduct equations

A0AA0e,e:A0e=e

编辑2:事实证明情况比我最初想象的要好。我从乌尔里希·布霍尔茨(Ulrich Bucholz)了解到,每个biCCC都是分布式的,这在数学上是“可追溯的”。这是一个可爱的小证据:

Hom((A+B)×C,(A+B)×C)Hom((A+B)×C,(A+B)×C)Hom((A+B),C(A+B)×C)Hom(A,C(A+B)×C)×Hom(B,C(A+B)×C)Hom(A×C,(A+B)×C)×Hom(B×C,(A+B)×C)Hom((A×C)+(B×C),(A+B)×C)

1
关于1:我认为零类型是初始对象。初始对象可以具有多个箭头它们,但只能有一个箭头它们。换句话说,我没有立即看到任何理由说明为什么使用双CCC表示0是子终端。有一个吗?
Ohad Kammar

是的:具有和的STLC需要一个分布式双CCC()来解释它,并且0的唯一性类型作为该类型的无效版本。(尝试写下对总和的消除规则的解释,您会看到它的。)(X×A)+(X×B)X×(A+B)
Neel Krishnaswami

我不懂 分配率等于具有倒数。为什么这意味着是子端子?initial:0A×00
Ohad Kammar

啊哈!谢谢你的证明!还要有耐心!
Ohad Kammar

关于编辑2:左伴随保留边界。如果类别是笛卡尔闭合,则是左伴随至所以总和。()×C()C(A+B)×C A×C+B×C
Ohad Kammar 2011年

8

等式仅反映了最多具有一个元素的事实,因此我认为Neel不能捕获整个故事。我将按如下所示将空类型公理化。e=e:000

没有介绍规则。排除规则为等式为其中和。整个是任何类型。该公式的动机如下:如果你成功地形成术语,然后是由居住,但是这是荒谬的,因此所有等式成立。因此,获得相同效果的另一种方法是设置等式

e:0magicτ(e):τ.
magicτ(e)=e:τ
e:0e:ττmagicτ(e)0e
x:0,Γe1=e2:τ
可能不是那么好,因为它摆弄了上下文。另一方面,它更清楚地表明,我们正在说明一个事实,即从到任何两个态射都是相等的(在CCC中是一种干扰。)0τΓ

1
嗨安德烈(Andrej),您建议的方程式可以从我给出的通勤转换中得出。源自,因为实际上不一定要发生在左项。类比为,如果您在两个分支中都这样做,则不使用案例分析的结果也是可以的。magic(e)=eC[magic(e)]=magic(e)magic(e)C[case(e,x.e,y.e)]=case(e,x.C[e],y.C[e])
Neel Krishnaswami

不过,我应该补充一点,就是我更喜欢具有上下文的演示文稿-的确,我认为,总的来说,如果您实际上允许在上下文中求和值方程,那是最干净的!对于实际的证明,这比具有通勤转换的游戏好得多。(IIRC,这等同于增加了稳定副产品的附加假设,但对于所有模型,我都可以合理地看到存在这种情况。)
Neel Krishnaswami

嗯,太好了。对我而言,考虑通勤转换为时已晚,因此我假装您没有写那部分。现在,Ohaad可以选择他。
Andrej Bauer

1
我正在验证模型模型中的一些结构性规则(,等)。虽然我知道我给出的方程组还不完整(您需要具有复杂值和堆栈的CBPV),但我想至少捕获标准方程组,如果我确实有足够的方程组,它们将用来证明完整性。换句话说,我想要零类型的标准方程定律。ηβ
Ohad Kammar 2011年

1
没有零类型的标准方程式定律。逻辑学家一直害怕话语的空虚,而计算机科学家一直害怕空虚的类型。他们甚至将非空类型命名为“ void”以拒绝空类型。
安德烈·鲍尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.