Questions tagged «type-theory»

类型结构是用于强制抽象级别的语法学科。

3
我们可以通过在超序数上归纳来证明系统F的弱归一化吗
可以通过对归纳证明简单类型的lambda演算的弱规范化(图灵)。具有自然数递归的扩展Lambda演算(Gentzen)通过在上归纳,具有较弱的归一化策略。ω2ω2\omega^2ϵ0ϵ0\epsilon_0 那么系统F(或更弱的系统)呢?这种样式是否存在弱的归一化证明?如果没有,那完全可以做到吗?

3
为什么建构主义者似乎不太在乎通话/抄送
所以不久前,我第一次有人告诉我,通过实现皮尔士定律,call / cc可以允许证明对象成为经典证明。我最近对这个话题做了一些思考,但似乎找不到任何缺陷。但是我似乎看不到其他人在谈论它。似乎没有讨论。是什么赋予了? 在我看来,如果您在某种情况下具有这样的构造,那么两件事中的一件是正确的。您可以在当前上下文中以某种方式访问实例,在这种情况下,控制流将永远无法到达这里,并且鉴于意味着的唯一途径可以返回是通过构建的一个实例和应用的两项它的参数(实例。在这种情况下,已经有一些构造实例的方法f:¬(¬P)f:¬(¬P)f : \neg(\neg P)⊥⊥\botf:¬(¬P)f:¬(¬P)f : \neg(\neg P)f:(P→⊥)→⊥f:(P→⊥)→⊥f : (P \to \bot) \to \botfff⊥⊥\botPPPP→⊥)P→⊥)P \to \bot)PPP; call / cc为我撤出此构造似乎是合理的。我的推理在我看来有些令人怀疑,但我的困惑仍然存在。如果call / cc不仅仅是凭空创建的实例(我不知道它是怎么回事),那是什么问题?PPP 某些不包含call / cc的类型正确的术语是否没有正常形式?此类表达式是否还有其他属性使它们令人怀疑?有什么明显的理由为什么建构主义者不喜欢call / cc?



2
双产品的证明理论?
一类具有双积时相同的对象都是产品和副产品。有没有人研究过双产品范畴的证明理论? 也许最著名的例子是向量空间的类别,其中直接和和直接乘积构造给出相同的向量空间。这意味着向量空间和线性映射是线性逻辑的稍微退化的模型,我很好奇接受这种退化的类型理论会是什么样子。

1
线性类型的编程语言中的数据结构
假设我们正在使用一种支持线性类型的编程语言(可以说,线性类型的术语最多可以使用一次)。这允许以某种对语言有问题的方式来处理某些计算效果(例如,变异,甚至更改操作数的类型),而语言的类型系统仅对“永恒的真理”起作用。 许多数据结构可以用归纳类型来表征(列表和树是典型示例)。如果将线性归纳类型添加到混合,我们还可以处理可变数据结构。 但是,我尚不清楚如何用线性类型的编程语言来表示表现出共享和循环引用的数据结构(此类数据结构的示例是DAG和其他图,由邻接表或其他东西(循环列表)表示)。我们能做到吗?如果不可能,我们应该以哪种方式扩展语言以适应这种数据结构? 到目前为止,我发现的最复杂的示例是一个双向链接列表。还有其他例子吗?

3
如何激发关系参数化?
是否有某种自然的方式来理解参数多态性的关系语义的本质? 我刚刚开始阅读有关关系参数性的概念,这是约翰·雷诺兹(John Reynolds)的“类型,抽象和参数多态性”,但我在理解关系语义是如何激发动机方面遇到了麻烦。设置语义对我来说很有意义,我意识到设置语义不足以描述参数多态性,但是跃向关系语义似乎是魔术,完全是天马行空。 是否有某种方式可以按照“假设基本类型和术语之间的关系,然后对派生术语的解释只是……在这种编程语言中……这样的自然事物之间的自然关系”的方式进行解释。“?还是其他一些自然的解释?

2
在霍特书中,大多数类型创建者是多余的吗?如果是这样,为什么?
在Hott的第1章和附录A中,介绍了几种基本类型族(宇宙类型,从属函数类型,从属对类型,副产品类型,空类型,单位类型,自然数类型和标识类型)以构成基础用于同伦类型理论。 但是,在给定的Universe类型和相关函数类型看来,您可以构造所有其他“原始”类型。例如,Empty类型可以改为 ΠT:U.T 我认为其他类型的构造也可以类似于它们在纯CC中的构造(即,仅从定义的归纳部分派生类型)。 在第5章和第6章中介绍的归纳/ W类型明确地使其中许多类型变得多余。但是归纳/ W类型似乎是该理论的可选部分,因为存在关于它们如何与HoTT相互作用的公开问题(参见至少在本书出版时)。 因此,我对为什么将这些附加类型表示为原始类型感到非常困惑。我的直觉是,基础理论应尽可能少,并且将冗余的Empty类型重新定义为该理论中的原始元素似乎非常武断。 做出这个选择了吗 出于某些我不知道的元理论原因? 由于历史原因,要使类型理论看起来像过去的类型理论(不一定是基础理论)? 计算机接口的“可用性”? 对于我不知道的证据搜索有什么好处? 类似于:Martin-Löf类型理论的最低要求,https: //cs.stackexchange.com/questions/82810/reducing-products-in-hott-to-church-scott-encodings/82891#82891

1
谓语元理论中祈使系统的逻辑关系。
像系统F这样的命令性语言的逻辑关系似乎严重依赖于环境逻辑的命令性。具体来说,将根据所有类型的关系来定义forall类型的解释。在强制性系统(如CiC / Coq)中很好,但在谓词系统(如Agda)中似乎是不可能的。 如何才能做到这一点?例如,您将如何证明Agda中系统F的规范化?您是否必须建立自己的命令性宇宙?

1
PA的相对一致性和一些类型理论
对于类型理论,通过一致性,我的意思是说它具有一个无人居住的类型。从拉姆达立方体的强范式,它遵循系统和系统˚F ω是一致的。MLTT +归纳类型也具有归一化证明。但是,这些都应足够强大以构建PA模型,这从这些理论证明PA是一致的。系统F的功能非常强大,因此我希望它能够通过使用教堂数字构建模型来证明PA的一致性。MLTT + IT具有自然数归纳类型,还应证明其一致性。FFFFωFωF_\omegaFFF 这一切都意味着这些理论的归一化证明不能在PA中内部化。所以: CAN系统,系统˚F ω和MLTT + IT实际上证明了PA的一致性?FFFFωFωF_\omega 如果可以,需要什么,然后向元理论证明了系统规范化,˚F ω和MLTT + IT?FFFFωFωF_\omega 一般而言,类型理论的证明理论,尤其是其中的某些类型理论,是否有很好的参考?

1
Martin-Löf型理论的最小规范
我正在阅读Martin-Löfs类型理论的正式介绍(HoTT书的附录)。作者介绍宇宙,那么一个层次和也W¯¯ -types以及自然数Ñ(感应通过0和š Ù Ç Ç)。最终,它们也添加了更高的归纳类型。Π ,Σ ,+ ,0,1Π,Σ,+,0,1\Pi, \Sigma,+, {\bf 0}, {\bf 1}w ^WWNN\mathbb N000succsuccsucc 但是然后我想知道为什么在理论规范中必须做1和+以及代数数据类型是否具有W-类型就足以进行设置?例如,采用初始代数方法。(或者至少在我们从MLTT传递到HoTT之后,具有归纳类型-毕竟,整数Z在理论中以圆环类型S的同伦基团出现。)NN\mathbb N11{\bf 1}+++WWWZZ\mathbb ZSS\mathbb S 还是与我们从一开始就具有原始递归(在演示文稿中紧挨定义)有关?我之所以有这个主意,是因为我不太了解该框架中的“定义是如何定义的”,还是不正式地扩展语言的工作方式。我可能要补充一点,我认识到定义了宇宙的层次结构时,至少已经使用了一个非正式的数字和“更大”的概念。NN\mathbb N 如果可以保留且规格不是最小,那么原则上还有其他项目可以丢弃吗?例如,我可以想像2,然后+从某种组合来Π ,Σ ,0,1,但我没能做到这一点。NN\mathbb N22\bf 2+++Π,Σ,0,1Π,Σ,0,1\Pi, \Sigma, {\bf 0}, {\bf 1}

2
依拉类型演算的Church-Rosser属性?
这是众所周知的是,教会罗塞属性会为 -reduction在简单类型的演算。在并非所有涉及λ-项的方程都是可导数的意义上,这意味着演算是一致的:例如,K ≠ I,因为它们不共享相同的范式。βηβη\beta \etaλλ\lambda≠≠\neq 还已知可以将结果扩展到对应于产品类型的对。 但是我想知道是否可以进一步扩展具有多态类型的依存类型lambda微积分(也许)的结果,例如构造微积分? 任何参考也将很棒! 谢谢

1
为什么马丁·洛夫需要创建直觉类型理论?
我一直在阅读直觉类型理论(ITT),它确实有意义。但是我要努力理解的是“为什么”首先创建了它? 一般而言,直觉逻辑(IL)和简单型演算(STLC)和类型论早于Martin-Löf本人的存在!似乎可以在STLC中完成ITT中可以做的所有事情(我可能错了,但至少感觉是这样)。 λλ\lambda 那么,关于ITT的“新颖”是什么?它如何(或确实)促进了计算理论?据我了解,他介绍了“依赖类型”的概念,但似乎在某种程度上它们已经存在于STLC中。他的ITT是否试图抽象地理解STLC和IL的基本原理?但是STLC尚未举行吗?那么,为什么要首先创建ITT?重点是什么? 这是Wikipedia的摘录:但是我仍然不知道其创建背后没有的原因。 马丁·洛夫(Martin-Löf)关于类型理论的第一篇草稿可追溯到1971年。这种具有约束性的理论概括了吉拉德的系统F。但是,由于吉拉德在研究系统U时发现了吉拉德的悖论,而这一悖论是由吉拉德发现的,该矛盾是系统的不一致性扩展。 F.这种经历促使PerMartin-Löf开发了类型理论的哲学基础,他的意义解释,一种证明理论语义的形式,这为他在1984年的Bibliopolis书中提出的谓词类型理论提供了依据... 从摘录中看来,原因是要发展“ 类型理论的哲学基础 ”-我认为该基础已经存在(或者也许我以为已经存在)。那是主要原因吗?

3
用公理扩展CIC有什么负面影响?
将公理添加到CIC确实会对定义和定理的计算内容产生负面影响吗?我的理解是,在该理论的正常行为,任何封闭来看会减少它的规范形式,例如,如果是真实的,那么ñ必须降低到窗体的一个术语(S ^ ü Ç Ç 。。。(小号ü c c (0 )))。但是,当假设一个公理时(例如函数扩展性公理),我们只是向系统添加一个新常数。n:Nn:Nn : \mathbb{N}nnn(succ...(succ(0)))(succ...(succ(0)))(succ ... (succ (0)))funext funext:Πx:Af(x)=g(x)→f=gfunext:Πx:Af(x)=g(x)→f=g funext : \Pi_{x : A} f (x) = g (x) \to f = g 这将只是“神奇”产生的一个证明从任何证明Π X :一个 ˚F (X )= g ^ (X ),没有在所有任何计算的意义(在这个意义上,我们不能提取他们的任何代码?)f=gf=gf = gΠx:Af(x)=g(x)Πx:Af(x)=g(x)\Pi_{x : A} f (x) = g (x) 但是为什么这个“坏”呢? …

4
依赖类型理论中的对象建模(OOP)
我对依赖类型理论中的面向对象编程中的对象建模感兴趣。作为一个可能的应用程序,我希望有一个模型,可以描述命令式编程语言的不同功能。 我只能找到一篇关于依赖类型理论中的对象建模的论文,即: A. Setzer(2006)的依赖类型理论中的面向对象编程。 是否有我遗漏的主题的更多参考文献,或者是否有更新的参考文献? 是否可以为定理证明者(例如Coq或Agda)提供实现(即证明)?

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.