除了Caledon之外,还有其他基于haskell的HOL编程语言吗?

Are there other HOL programming languages besides Caledon that are based on haskell?

有编程语言和基于高阶逻辑 (HOL) 的定理证明器。示例包括 Twelf, lambda prolog, Isabelle。例如Twelf既是一种编程语言又是一个定理证明器,而Isabelle主要是一个定理证明器,但是对于Isabelle代码提取是可用的。

我正在寻找一种基于 haskell 的 HOL 编程语言。原因是我非常喜欢,例如,lambda prolog,但它并不是一种实用的编程语言。 Lambda prolog 缺少标准库,与外部库的接口似乎并不简单。问题是如果你需要一些功能,比如为文本文件编写解析器,你不能与 haskell 的许多可用的现有库进行交互,而且,没有标准库,所以你开始从头开始。

今天我遇到了 Caledon 编程语言,它似乎是作为硕士论文实现的。来自 github 页面:

Caledon is a dependently typed, polymorphic, higher order logic programming language.

这很有趣,因为它是用 haskell 编写的,所以它应该很容易扩展并与现有的 haskell 库交互。但似乎该项目处于早期阶段,我不确定是否实现了输入输出(IO)。由于我今天才了解 Caledon,我想我可能错过了一些进一步的项目。 (顺便说一句,我对像 prolog 这样的标准逻辑编程语言不感兴趣)。

除了Caledon之外,是否还有基于高阶逻辑的编程语言在haskell中实现?

(我要求 "implemented in haskell",因为连接可以提取到 haskell 或在 haskell 中实现的编程语言相当容易。例如,Agda 编程语言可以编译为 haskell 代码和 haskell 库可以方便地使用并且非常容易使用 haskell 库如果你知道如何。许多其他编程语言(例如,ATS)我相信只提供最小的公分母这是一个基于 C 的外部函数接口 (FFI)。在我看来,通过各自基于 C 的 FFI 接口连接两种高级编程语言非常麻烦。因此 "it should be implemented in haskell" 看似随意的部分。此外,作为旁注一些用户过去曾对我将 Agda 描述为一种编程语言表示反对,但这当然不是真的,即考虑 Curry-Howard )

简短回答:我不知道。长答案:你很少有机会找到纯粹的学术语言,有数以千计的图书馆和工具。如果您出于某种原因需要针对某些特定问题的特定语言,则仅将其用于该问题。不适用于解析文件、计算税收或发射火箭。创建库并 link 与其他程序一起使用。甚至更好:创建一个微服务或以不需要太多努力的其他方式(例如标准 input/output)连接程序。总是使用最好的工具来完成工作

"Haskabelle is a converter from Haskell source files to Isabelle/HOL theories implemented in Haskell itself."

Haskabelle

奇怪的语句: Haskell'是一种基于Haskell的高阶逻辑编程语言。 Haskell 中的类型推理与多参数类型 类、类型族、不可判定推理等等实际上形成了一种高阶逻辑编程语言。这可能对您帮助不大,因为:

  1. 规范确实在不断变化(我有一些软件包兼容性不佳,因为它们基于获得 "fixed" 的黑客攻击)
  2. 类型系统本身没有 IO(还?)
  3. 它不能真正从类型推断中调用其他 Haskell 库
  4. 不是很快。
  5. 逻辑编程语义并不十分清晰或稳定。
  6. 它不允许您与 lambda 或其他类型统一 类,尽管它允许与函数统一。

遗憾的是,我所知道的完整 HOL 语言非常少,更不用说在 Haskell 中实现的语言了——事实证明,实现高阶统一是一个巨大的痛苦。