在Coq中,如何从命名空间中删除已定义的变量?

时间:2017-10-19 21:53:13

标签: coq

coqtop互动终端中,如何删除我定义的名称?

例如,我可以使用以下内容定义bool类型。

Coq < Inductive my_bool : Type :=
Coq < | my_true : my_bool
Coq < | my_false : my_bool.

这有效,我得到以下输出。

my_bool is defined
my_bool_rect is defined
my_bool_ind is defined
my_bool_rec is defined

但是,如果我想重新定义my_bool字词,我会Error: my_bool already exists.

> Inductive my_bool : Type :=
> | my_true : my_bool
> | my_false : my_bool
> | neither : my_bool.
Error: my_bool already exists.

我可以在不退出my_bool会话的情况下删除并重新定义coqtop字词吗?

1 个答案:

答案 0 :(得分:2)

您可以使用Reset my_bool.将其从环境中删除。

参考:https://coq.inria.fr/refman/proof-engine/vernacular-commands.html#coq:cmd.reset

  

Reset ident 删除自引入 ident 以来环境中的所有对象,包括 ident ident 可以是已定义或声明的对象的名称,也可以是节的名称。不能重设模块或模块内部对象的名称。