Coq中关闭自动感应原理

Turn off automatic induction principle in Coq

我已经定义了一个嵌套的归纳数据类型,并为它定义了一个自定义的归纳原则。但是,我正在使用的库(特别是用于 de Bruijn 索引的 DBLib)的自动化策略期望归纳法是基于通常的归纳法则。由于我从来没有打算使用原始生成的归纳原理,那么有没有办法替换自动生成的原理?或者,如果没有,有没有办法暂时关闭这个自动生成?

您可以使用 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.