如何从归纳型Coq获取数据

时间:2017-04-28 18:01:31

标签: coq theorem-proving language-theory

我对Coq有点新意,我正在尝试对Coq中的常规语法进行一些形式化。假设我有一个归纳类型如下:

Inductive rules : non_terminal -> list(non_terminal + terminal) -> Type :=
  rule1 : rules S [inr a; inl S] 
| rule2 : rules S [inr b;inl S] 
| rule3 : rules S [].

表示(a* b*)语法的派生规则。假设我想提取它们以供以后使用。有什么方法可以做到这一点并将其存储在列表列表中吗?例如,我想要一个让我回复[[S [inr a; inl S];S [inr b;inl S];[]]的程序。任何其他想法将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Ltac2,它可以通过编程方式获取有关归纳类型的信息吗?您还可以使用template-coq包/插件。这些可能实际上并不是你想在这里做的,因为它有点令人费解。