Questions tagged «lambda-calculus»

Church的形式系统用于可计算性,编程语言和证明理论,以表示有效的功能,程序及其计算和证明。

3
是否有任何已知的CCC在概率功率域操作下关闭?
等效地,是否存在已知的概率高阶函数编程语言的指称语义?具体而言,是否存在通过对称随机二元选择运算扩展的纯无类型演算的域模型。λλ\lambda 动机 笛卡尔封闭类别为高阶计算提供了语义。概率功率域为随机程序提供语义。在概率功率域操作下关闭的CCC将为随机的高阶函数编程语言提供语义。λλ\lambda 相关工作 Tix,Keimel和Plotkin(2004)[1]给出了下,上和凸幂域运算的现代结构,但请注意 是否存在在概率幂域的构造下闭合的连续域的笛卡尔闭合类别仍然是一个未解决的问题。 Mislove(2013)[2,3]以一阶语言给出了连续随机变量的语义,但指出 即使概率幂域使有向完整姿态集(简称dcpos)和Scott连续映射的CCC不变,也没有笛卡尔封闭域域-满足通常逼近假设的dcpos-在以下情况下已知不变这个构造。众所周知,在概率选择单子[4]下,相干域的类别是不变的,但该类别不是笛卡尔封闭的。 参考文献 里贾纳·泰克斯(Regina Tix),克劳斯·凯米尔(Klaus Keimel)和戈登·普洛特金(Gordon Plotkin)(2004年) “将概率和非确定性相结合的语义领域”。 Michael Mislove(2013) “连续随机变量I的域的剖析” Michael Mislove(2013) “连续随机变量II域的剖析” Jung,A。和R. Tix(1998) “麻烦的概率幂域”

1
仿射Lambda演算可以解决P中的每个问题吗?
在“类型和编程语言的高级主题”中,在有关子结构类型系统的章节中,提到了“精心设计的”带有递归组合器的仿射Lambda演算,它只能使用具有多项式运行时间的项(它不会键入)由于复杂性,请提供证明)。如果我们还可以解决P中的每个问题,这将非常有趣。我可以尝试使用由我提供的演算来找到P完全问题的解决方案,但我不确定这是否能证明一切。在我看来,这并不是说它可以执行使用P完全问题的解决方案所需的所有缩减(尽管确实可以实现)。 如果不知道仿射Lambda演算能够精确地解决P中的问题,是否有已知的演算可以精确地解决P中的问题?

1
PCF中连续模量的不确定性参考?
有人可以指出PCF中连续模量函数的不可定义性吗? \newcommand{\N}{\mathbb{N}} \newcommand{\bool}{\mathsf{bool}} 安德烈·鲍尔(Andrej Bauer)写了一篇非常不错的博客文章,更详细地探讨了一些问题,但是我将总结一下他的文章中的一部分,以为该问题提供一些背景信息。Baire空间是自然数序列的集合,或者等效地是从自然数到自然数N → N的函数集。对于此问题,我们将仅将注意力集中在可计算的流上。BBBN→NN→N\N \to \N 现在,一个函数是连续的,如果对于每个X 小号∈ 乙,的值˚F (X 小号)仅依赖的元件的有限数量的X 小号,它的computably连续如果我们实际上可以计算需要x s的元素的上限。在计算的某些型号,它实际上可以写一个程序 米Ø d ü 升ü š:(乙→ b Øf:B→boolf:B→boolf : B \to \boolxs∈Bxs∈Bxs \in Bf(xs)f(xs)f(xs)xsxsxsxsxsxs这需要在Baire空间和Baire空间的元件的可计算函数,并给出背面上界流的元素的数量。modulus:(B→bool)→B→Nmodulus:(B→bool)→B→N\mathsf{modulus} : (B \to \bool) \to B \to \N 实现此目的的一个技巧是使用本地存储将最大索引记录到所看到的流中: let modulus f xs = let r = ref 0 in let …

1
编程语言理论试图回答的“问题”是什么?
我一直对诸如组合逻辑,Lambda微积分,函数式编程等各种主题感兴趣,并一直在研究它们。但是,与试图回答“可计算性”问题(即可以/不能在各种约束条件下进行计算的问题)的“计算理论”不同,我努力寻找“编程理论”的类似物 维基百科将其描述为: 编程语言理论(PLT)是计算机科学的一个分支,致力于编程语言及其各个功能的设计,实现,分析,表征和分类。 这就像说“一切”,这并不是很具体。 主题的共同进展通常是这样的: 组合逻辑>演算>马丁·洛夫类型理论>类型lambda积分>(有什么在这里发生)>编程语言开发的-有很少与CL连接/λλ\lambda 我可以看到与CL /相关的底层“数学”λλ\lambda以及由此产生的有趣证明,包括Church-Rosser定理,这很简洁。但是,我正在努力了解所有这些工作的“最终目标”吗?什么是圣杯 PLT的,如果你愿意?就目前而言,这似乎只是在刮擦知识分子的痒,但我真的无法跨过研究/理论到任何实际的桥梁。 注意:在使用 λλ\lambda-calc用于不确定性证明。但是,除了它对“可计算性”的适用性之外,我只是不了解它,甚至很难从这种狭窄的POV理解PLT研究的需要。是否有任何现有的书籍,参考文献可以阐明PLT的“大局”?

1
了解构造演算的强规范化证明
我很难理解构造演算的强归一化证明。我尝试遵循Herman Geuvers论文中的证明“构造微积分的强规范化的简短而灵活的证明”。 我可以很好地遵循推理的主线。每种类型的Geuvers构造TTT 解释 [[T]]ξ[[T]]ξ[\![T]\!]_\xi 基于对类型变量的一些评估 ξ(α)ξ(α)\xi(\alpha)。然后他构造一些术语解释(|M|)ρ(|M|)ρ(\!|M|\!)_\rho 基于对术语变量的一些评估 ρ(x)ρ(x)\rho(x) 并证明对于有效评估,该断言 (|M|)ρ∈[[T]]ξ(|M|)ρ∈[[T]]ξ(\!|M|\!)_\rho \in [\![T]\!]_\xi 对所有人 Γ⊢M:TΓ⊢M:T\Gamma\vdash M:T 持有。 我的问题:对于简单类型(如系统F类型),类型解释 [[T]]ξ[[T]]ξ[\![T]\!]_\xi 确实是一组术语,所以断言 (| 中号|)ρ∈ [[ T]]ξ(|M|)ρ∈[[T]]ξ(\!|M|\!)_\rho \in [\![T]\!]_\xi说得通。但是对于更复杂的类型,解释[[ T]]ξ[[T]]ξ[\![T]\!]_\xi不是一组术语,而是一些适当功能空间的一组功能。我认为,我几乎了解函数空间的构造,但是它不能为(| 中号|)ρ∈ [[ T]]ξ(|M|)ρ∈[[T]]ξ(\!|M|\!)_\rho \in [\![T]\!]_\xi 对于更复杂的类型 ŤTT。 任何人都可以解释或给出一些更易于理解的证明表示的链接吗? 编辑:让我尝试使问题更清楚。上下文ΓΓ\Gamma 有类型变量的声明 α :Aα:A\alpha:A和对象变量。如果适用于所有类型,则类型评估有效(α :甲)∈ Γ(α:A)∈Γ(\alpha:A) \in \Gamma 与 Γ ⊢ 甲:□Γ⊢A:◻\Gamma\vdash A:\square 然后 ξ(α …

1
哥德尔第二不完全性定理与CIC的Church-Rosser属性之间存在矛盾?
一方面,哥德尔的第二不完全性定理指出,任何足以表达任何基本算术表达式的一致形式理论都不能证明其自身的一致性。另一方面,形式(重写)系统的Church-Rosser属性告诉我们它是一致的,因为并不是所有方程都是可导数,例如K≠≠\neqI,因为它们没有相同的范式。 然后,归纳构造演算(CIC)明确规定了这两个条件。它足以表示算术命题(实际上,λ βηλβη\lambda\beta\eta-微积分本身已经能够编码教堂数字并代表所有原始递归函数)。而且,CIC还具有汇合或Church-Rosser属性。但: CIC不能不能通过第二不完全性定理证明自己的一致性吗? 还是只是说CIC无法证明其在系统内部的一致性,并且融合特性是一个元定理?还是CIC的融合特性不能保证其一致性? 如果有人可以阐明这些问题,我将不胜感激! 谢谢!


2
Krivine表示法的好处是什么?
我看到有些人在介绍函数的语法时使用Krivine的符号表示功能 λλ\lambda-结石。例如,λλ\lambda-术语 λ ˚F。λ X 。λ ÿ。F X ÿ λF。λX。λÿ。F X ÿ\lambda f . \lambda x . \lambda y . f\ x\ y(按照函数应用程序与左侧关联的常规约定,因此它实际上表示)写为(按照类似的约定,它实际上是指)。我看不出在最里面的周围有另一对括号的意义。人们为什么使用Krivine的符号而不是通常的符号?λ ˚F。λ X 。λ ÿ.((f x) y)λf.λx.λy.((f x) y)\lambda f . \lambda x . \lambda y . ((f\ x)\ y)λf.λx.λy.(f) x yλf.λx.λy.(f) x y\lambda f . \lambda x …

1
一个简单的证明,证明系统F()具有可判定性
假设我们不知道Joe B.Wells从1994年得出的结果,即系统F(AKA)中的可打字性和类型检查都无法确定 λ2λ2\lambda 2)。在Barendregt的Lambda Calcula with types(1992)中,我发现由于Malecki 1989的证明,类型检查意味着可打字性。这是因为 存在 σσ\sigma 这样 M:σM:σM:\sigma 相当于 (λxy.y)M:(α→α)(λxy.y)M:(α→α)(\lambda xy.y)M : (\alpha\rightarrow\alpha) (这是因为如果某个术语在系统F中是可键入的,则其所有子术语都可以。) 反过来有没有简单的证明呢?就是说,证明可打字性意味着在系统F中进行类型检查?

2
数百个还原步骤是否太多而无法获得Y fac⌜3⌝的正常形式?
由于我最近一直在教授λ微积分的基础,因此我在Common Lisp中实现了一个简单的λ微积分评估器。当我问正常Y fac 3阶约简的正常形式时,它需要619个步骤,这似乎有点多。 当然,每次我在纸上进行类似的简化时,我都从未使用过无类型的λ微积分,而是增加了对其进行运算的数量和函数。在这种情况下,fac的定义如下: fac = λfac.λn.if (= n 0) 1 (* n (fac (- n 1))) 在这种情况下,考虑到=,*并-为讨好的功能,只需要大约50个步骤,以获得Y fac 3其正常形态6。 但是在评估人员中,我使用了以下方法: true = λx.λy.x false = λx.λy.y ⌜0⌝ = λf.λx.x succ = λn.λf.λx.f n f x ⌜n+1⌝ = succ ⌜n⌝ zero? = λn.n (λx.false) true mult = λm.λn.λf.m (n …

1
双色构造微积分的作用是什么?
因此,我正在阅读一些有关阐述的内容,特别是基于双色构造演算的算法,我有些困惑。我不明白该广告的确切目的是什么CCbiCCbiCC^{bi}是。似乎与CCCCCC函数的隐式参数和显式参数之间有区别。特别是,我看不到它如何允许您编写(id0)(id0)(id\; 0) 代替 (idN0)(idN0)(id\; \mathbb{N}\; 0)。如果我们假设一个用于全局定义的系统,那么, id:(ΠA|Type.(Πx:A.A))id:(ΠA|Type.(Πx:A.A))id : (\Pi A\; |\; \mathsf{Type}\; . (\Pi x : A\; . A)) 和 id=(λA|Type.(λx:A.x))id=(λA|Type.(λx:A.x))id = (\lambda A\; |\; \mathsf{Type}\; . (\lambda x : A . x))。 规则真的允许吗 (id0)(id0)(id\; 0)?当然语法可以,但是我在键入关系中看不到它。我想念什么吗?我是否了解角色CCbiCCb一世CC^{bi} 错误地? 另外,会合的财产不会丢失吗?我想我的问题是,我在阅读有关精心制作的文章时,并没有读太多关于CCbiCCbiCC^{bi}在这之前。介绍它的好论文是什么? 编辑:更具体地说,我问(id0)(id0)(id\; 0) 被接受代替 (idN0)(idN0)(id\; \mathbb{N}\; 0) 当明确和隐含的规则 ΠΠ\Pi应用程序是相同的模语法。我认为两者之间没有区别::: 和 ||| 两者的规则似乎相同。 编辑:我不是在谈论构造的隐式演算,这是一个不同的理论,对于显式有不同的规则ΠΠ\Pi的(应用程序与生成。) …
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.