Questions tagged «curry-howard»

2
Y组合器是否与Curry-Howard对应矛盾?
Y组合器的类型为。根据库里·霍华德 Curry-Howard)的对应关系,因为类型被居住,所以它必须对应于一个真定理。但是始终为真,因此似乎Y组合器的类型对应于定理,但并不总是正确的。怎么会这样?(a → a )→ a(一种→一种)→一种(a \rightarrow a) \rightarrow a(a → a )→ a(一种→一种)→一种(a \rightarrow a) \rightarrow a一→ 一一种→一种a \rightarrow a一种一种a

1
测试任意证明是否为圆形?
我当时在考虑证明,然后遇到了一个有趣的观察。因此,证明与通过Curry-Howard同构的程序等效,而圆形证明对应于无限递归。但是从暂停问题中我们知道,在一般测试中,任意程序是否会永久递归是不确定的。用柯里·霍华德(Curry-Howard)表示,这是否意味着没有“证明检查器”可以确定证明是否使用循环推理? 我一直认为,证明应该由容易检查的步骤(与推理规则的应用相对应)组成,检查所有步骤可以使您确信结论是正确的。但是现在我在想:也许实际上不可能编写这样的证明检查器,因为没有办法解决暂停问题并检测循环推理?

1
范畴论(子集)和关系代数之间是否存在同构?
它来自大数据角度。基本上,许多框架(如Apache Spark)通过提供类似Functor / Monad的接口来“补偿”缺乏关系操作,并且向cats到SQL的转换也有类似的趋势(Scala中的Slick)。例如,我们需要自然联接(假设索引上没有重复),以便从SQL角度对向量进行元素zip + map(multiply) 逐次乘法,这ElementwiseProduct在类别理论的应用程序中可以被视为(但Spark的MLib已经拥有)。 简单地说(以下示例在Scala中): 引用的join子案例可以看作是应用函子(在有序集合上),这反过来又给我们zip:List(1,2,3).ap(List(2,4,8).map(a => (b: Int) => a * b))-> (List(1,2,3) zip List(2,4,8)).map(x => x._1 * x._2)。此外,假设进行一些预处理(groupBy算符或仅仅是外推,或者通常是一种同形),我们可以将其引入其他联接。 其他联接和选择可以认为是monad。例如,WHERE只是:List(1,2,2,4).flatMap(x => if (x < 3) List(x) else List.empty)->List(1,2,2,4).filter(_ < 3) 数据本身就是ADT(GADT也是吗?),它又看起来像一个简单的Set类别(或更笼统地说-笛卡尔封闭),因此(我想)它应该涵盖基于Set的操作(由于Curry- Howard-Lambek本身)以及类似的操作RENAME(至少在实践中如此)。 聚集对应于fold/reduce(变形) 所以,我要问的是,我们可以在类别理论(也许是子类别理论)和(整个)关系代数之间建立同构吗?还是有发现的东西?如果可行,类别的什么同构子集与relalgebra同构? 您会看到我自己的假设是相当广泛的,而诸如逻辑-猫-lambda的Curry-Howard-Lambek对应之类的形式化解则更为精确-因此,实际上,我要求参考已完成的研究(该研究表明了直接的关系),以及Scala / Haskell中的更多示例。 编辑:接受的答案使我认为我将连接和条件表示为monad太过分了(尤其是使用有效实例化FALSE的空值),我认为回调至少应足以满足SQL的relegebra子集。Monad更适合诸如GROUP BY的高阶(嵌套)内容,这不是relalgebra的一部分。

1
类型系统可以用作外部功能的证明助手吗?
鉴于: 具有非常有表现力的类型系统的语言(例如Idris)也可以具有转义机制,例如外部函数接口/ unsafePerformIO。 有一些证明助手可以用来证明用某种语言编写的程序的某些特性,而该语言没有能够表达这些特性的类型系统。 Curry-Howard的对应关系表明,具有给定类型的函数的类型检查成功实现是该类型所表示内容的证明。 可以在母语的类型系统中表达外语代码某些属性的非平凡的证明吗? 例如,假设我有一个名为stable_qsort的C函数,该函数以非常巧妙和高效的方式对数字进行排序,同时保持已经相等的元素的顺序,还有一个Idris程序通过其FFI调用stable_qsort,但是我不相信这种相对晦涩的方法C函数。我可以证明该函数不会在我的Idris代码中对所有输入重新排序相等的元素,而不是使用单独的证明助手吗?
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.