Dafny中的进口,包括和验证之间有什么关系?

时间:2018-01-28 21:08:30

标签: dafny

我知道一个Dafny源文件可以包含在另一个中,导致在验证之前对文件进行文本连接。但是我没有明确的包含,导入和哪些文件在何时验证之间关系的心理模型。也许专家可以详细说明。感谢。

1 个答案:

答案 0 :(得分:0)

至少部分记录在Dafny Reference Manual的各个部分中。

第2.0节讨论了include

  

包含的文件也遵守Dafny语法。 Dafny解析并处理原始源文件和所有包含文件的传递闭包,但不会在这些文件上调用验证器,除非它们已在命令行中明确列出。

(强调我的)

3.1节讨论了import,这是Dafny模块系统的一个特性。您只能在模块内部使用import,以便在另一个模块中提供定义。请注意,与其他语言不同,Dafny模块系统与文件存储在磁盘上的方式无关。因此,如果要导入的模块在另一个文件中定义,则可能必须包含该文件(如果尚未包含该文件)。

import对导入的模块是否经过验证没有直接影响。除非在命令行中列出其文件,否则不会验证其他文件中的模块。始终验证当前文件中的模块(无论是否由任何人导入)。