指定在Coq中导出文件的路径?

时间:2020-06-12 18:19:06

标签: coq

我正在编写自己的第一个Coq文件,但是在导出另一个用户定义文件(由Software Foundations定义)时遇到麻烦。

问题是我当前的Coq文件具有路径Coq/NWA.v,而我要导入的文件具有路径Coq/SoftwareFoundations/lf/Rel.v。我尝试了以下语法:

From Coq/SoftwareFoundations/lf Require Import Rel.v

From Coq.SoftwareFoundations.lf Require Import Rel.v

From ./../SoftwareFoundations/lf Require Import Rel.v

所有这些都给出语法错误。如何导入Rel.v文件?

1 个答案:

答案 0 :(得分:1)

tl; dr:正确的语法是

From LF Require Import Rel.

要管理Coq文件,需要注意两种路径:

  • 物理路径:您惯用的常用文件路径,例如Coq/SoftwareFoundations/lf

  • 逻辑路径:完全限定的模块名称,由Coq编译器映射到文件。

-Q my/path/to/lf LF选项(最终需要传递给coqc)的作用是将逻辑路径(LF)映射到物理路径(my/path/to/lf)。

在Coq文件中,Require Import命令(包括From _ Require Import _)可用于逻辑路径。经验法则是,.v文件的内容仅涉及逻辑路径,尽管有一些例外(例如Add LoadPath和提取)。

Logical Foundations卷是使用逻辑路径LF.ModuleName构建的,这就是在Coq/NWA.v中用于导入Rel的内容:

From LF Require Import Rel.

(* or *)

Require Import LF.Rel.
相关问题