我在规范中使用mach.int
library(另请参阅this question),我尝试定义int32
类型的常量:< / p>
let constant_out1: int32 = 1 in
…
但是,在分析时,why3会返回消息:
This term has type int, but is expected to have type int32
我注意到Bounded_int
(Int32
实例化类型int32
)中包含以下内容:
val of_int (n:int) : t
requires { "expl:integer overflow" in_bounds n }
ensures { to_int result = n }
但是,我似乎无法使用此功能将1
投射到int32
。例如,如果我使用:
let constant_out1: int32 = Int32.of_int(1) in
…
我收到消息unbound symbol 'Int32.of_int'
。我已经尝试了很多这方面的排列,但都没有取得任何成功。任何人都可以提供指导,告诉我为什么我希望1
属于int32
类型吗?