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.
我已经定义了一个嵌套的归纳数据类型,并为它定义了一个自定义的归纳原则。但是,我正在使用的库(特别是用于 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.