我已经定义了一个嵌套的归纳数据类型,并为它定义了一个自定义归纳原理。但是,我正在使用的库中的自动化策略(具体来说,DBLib用于de Bruijn索引)期望归纳基于通常的归纳原理。由于我从不打算使用最初生成的归纳原理,是否有任何方法可以替代自动生成的原理?或者,如果没有,是否有办法暂时关闭此自动生成功能?
答案 0 :(得分:3)
您可以使用Elimination Schemes
选项进行操作。例如,
Unset Elimination Schemes.
Inductive nat_tree : Set :=
| NNode' : nat -> list nat_tree -> nat_tree.
Set Elimination Schemes.
此外,如果您有一个更简单的(非递归)归纳类型,则可以使用Variant
关键字来使Coq不生成归纳原理:
Variant foo : Type := Foo.