要求模块在同一目录中

时间:2018-03-18 00:57:08

标签: coq

我不知道管理大型项目和加载路径的推荐方法是什么,但我通常在一个目录上工作,我有不同的文件应该可以一起工作。我通常做的是使用A.v从命令行编译coqc A.v。然后,在同一目录中的B.v中,我想Require A并在CoqIDE或其他IDE中交互式地尝试一些事情(我经常使用vscode的插件)。问题是我必须明确地将当前目录添加到负载以使其工作:Add LoadPath "/absolute/path/to/my/project". Require A.。有更简单的方法吗?至少我希望能够在Add LoadPath中编写相对路径,因此在重命名目录时,我不必更改每个文件。

1 个答案:

答案 0 :(得分:1)

要开始使用,我建议您使用_CoqProject文件设置Coq项目。 想象一下你的coq项目名为project。然后,要添加文件A.vB.v,您需要将以下内容放入_CoqProject文件中:

-R . project
./A.v
./B.v

通过这种方式,您可以使用Coq makefile生成器来获得所需的一切:

coq_makefile -f _CoqProject -o Makefile

然后,emacs ProofGeneral和CoqIDE都应该只使用Require Import A.加载您的文件。根据{{​​3}},可能会出现CoqIDE抱怨库project.A位于文件A.v而不是库A的情况。这可以通过启动coqide -R . project来解决。

正如评论中所建议的,如果你想真正了解如何使用这种机器,我建议阅读关于Coq项目文件的手册部分和this question