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