Import 不要导入coq中的符号

Import 不要导入coq中的符号,import,module,coq,notation,Import,Module,Coq,Notation,我有两个外部模块(最好不要交替使用它们的源代码),它们定义了相同的符号。其结果是,由于以下错误,我现在无法同时导入两个模块: Error: Notation _ ~ _ is already defined at level 27 with arguments at level 27, at next level while it is now required to be at level 50 with arguments at next level, at next level. 有什么

我有两个外部模块(最好不要交替使用它们的源代码),它们定义了相同的符号。其结果是,由于以下错误,我现在无法同时导入两个模块:

Error: Notation _ ~ _ is already defined at level 27 with arguments at level 27,
at next level while it is now required to be at level 50 with arguments at next level,
at next level.
有什么出路吗?我可以想象要么不从一个模块导入符号,要么只进行选择性导入。然而,浏览文档并没有说明太多


我有没有看过?或者您会推荐什么解决方案?

很遗憾,简短的回答是否定的。上游意识到这一局限性,在将来的某个时候(Coq 8.9?),您将有望使用“解析表”来实现这一点

但是,有一个可接受的解决方法:使用节来限制导入的范围。假设模块
ab
定义了一个冲突的符号,那么您可以执行以下操作:

Require a b.

Section WithNotationA.
Import a.
...
End WithNotationA.

Section WithNotationB.
Import b.
...
End WithNotationB.