mach.int库是why3的默认部分吗?

时间:2017-04-12 18:50:38

标签: why3

我试图在Simulink模型的Why3规范中使用32位整数,并且我发现mach.int library,即至少在一个地方,被描述为standard library的一部分。但是,当我尝试使用以下导入命令时:

  use import mach.int.Int32

我收到消息:

Library file not found: mach.int

这是我的第一个带有"和#34;的图书馆。在其中,所以我不确定我的语法是否错误,或者这个库实际上不是标准库的一部分,或者我是否做错了。

使用mach.int.Int32模块的正确方法是什么?

其他细节

我的why3版本为0.87.3:

▶ why3 --version
Why3 platform, version 0.87.3

我查看了我的〜/ .why3.conf文件并找到了这些行:

[main]
loadpath = "/opt/gps/share/why3/theories"
loadpath = "/opt/gps/share/why3/modules"
loadpath = "/opt/gps/share/spark/theories"

我查看了/opt/gps/share/why3/modules(以及/opt/gps/share/why3/theories/opt/gps/share/spark/theories)并找不到mach.int.*,因此我在mach.int.mlw中创建了一个/opt/gps/share/why3/modules文件,并确保why3可以使用它:

▶ why3 prove -P z3 mach.int.mlw        
mach.int.mlw Int WP_parameter infix / : Valid (0.01s)
mach.int.mlw Int WP_parameter infix % : Valid (0.01s)
mach.int.mlw Refint63 WP_parameter incr : Valid (0.02s)
mach.int.mlw Refint63 WP_parameter decr : Valid (0.02s)
mach.int.mlw Refint63 WP_parameter infix += : Valid (0.02s)
mach.int.mlw Refint63 WP_parameter infix -= : Valid (0.02s)
mach.int.mlw Refint63 WP_parameter infix *= : Valid (0.02s)
mach.int.mlw MinMax63 WP_parameter min : Valid (0.01s)
mach.int.mlw MinMax63 WP_parameter max : Valid (0.02s)

结果是一样的。

1 个答案:

答案 0 :(得分:0)

事实证明,为什么3在mach.int.Int32子目录中的模块int.mlw中寻找mach

mach.int library放在/opt/gps/share/why3/modules/mach/目录中可以解决找不到库的问题(/opt/gps/share/why3/modules在我的loadpath中定义为~/.why3.conf的一部分}文件)。