从OCaml检查感应式元件

从OCaml检查感应式元件,ocaml,coq,Ocaml,Coq,我想写一个Coq插件,它将接受一个归纳类型的元素,递归地对元素进行模式匹配,并在每次迭代中进行一些计算。这听起来很简单,但我真的不知道从哪里开始 我设法找到了一些Coq插件,编译并运行它们。但是我还没有找到任何关于COQAPI的概述来了解基本概念 到目前为止,我发现了一些有用的资源: 简单的例子: 让我们有一个简单的归纳类型,用一个二进制操作表示表达式 Inductive expr : Type := | var : nat -> expr | op : expr ->

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

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

到目前为止,我发现了一些有用的资源:


简单的例子:

让我们有一个简单的归纳类型,用一个二进制操作表示表达式

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++代码,但我认为这对于问题/答案并不重要。

< P>现代的规范源是官方,而最新的,需要一些帮助谷歌FU [因此它出现在搜索中]和格式化/呈现。 我会说从这里开始,如果你想得到一些其他类型的例子,请毫不犹豫地在中打开bug


对于插件开发人员来说,它们也是非常有用的设备。

这是我第一次看到Coq插件教程,尽管我花了相当长的时间在谷歌上搜索类似的东西。在文档页面上应该有一个指向它的链接的确@tom,请毫不犹豫地报告有关文档问题的错误,我们将非常乐意改进它。