【问题标题】:Inspecting elements of an inductive type from OCaml从 OCaml 检查感应类型的元素
【发布时间】:2019-11-19 23:02:16
【问题描述】:

我想编写一个 Coq 插件,它将采用归纳类型的元素并在元素上递归地进行模式匹配,并在每次迭代中执行一些计算。这听起来很简单,但我真的不知道从哪里开始。

我设法找到了一些 Coq 插件,编译并运行它们。但是我还没有找到任何关于 Coq API 的概述来了解基本概念。

到目前为止我发现的有用资源:


简单例子:

让我们有一个简单的归纳类型,用一个二元运算来表示表达式

Inductive expr : Type :=
| var : nat  -> expr
| op  : expr -> expr -> expr

我想定义一个新的白话命令InspectExpression,它将递归地遍历表达式并执行一些计算。

InspectExpression (op (op (var 0) (var 1)) (var 2)). (* expression: "(x+y)+z" *)

我的最终目标是根据这些表达式生成一些 C++ 代码,但我认为这对于问题/答案并不重要。

【问题讨论】:

    标签: ocaml coq


    【解决方案1】:

    这些天的规范来源是官方的Coq Plugin Tutorial,虽然它是最新的,但在 Google fu [因此它首先出现在搜索中] 和格式/演示方面都需要一些帮助。

    我会说从那里开始,如果您想获得其他类型的示例,请不要犹豫在 Coq issue tracker 中打开错误。

    Coq's discourseGitter channel 对于插件开发者来说也是非常有用的设备。

    【讨论】:

    • 这是我第一次看到 Coq 插件教程,尽管我花了很多时间在谷歌上搜索类似的东西。文档页面上应该有指向它的链接coq.inria.fr/documentation
    • 确实@tom,请不要犹豫报告有关文档问题的错误,我们将非常乐意改进它。
    猜你喜欢
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 2011-08-12
    • 1970-01-01
    • 2011-07-05
    • 2019-05-10
    • 1970-01-01
    相关资源
    最近更新 更多