【发布时间】:2016-07-26 09:27:19
【问题描述】:
我在 Coq 的规范文件中有以下定义。我需要一个比较两个“int”类型值的命题。这两个是 't' 和 'Int.repr (i.(period1))'。(i.period1) 和 (i.period2) 的类型为 'Z'。
这是我的代码 sn-p:
Definition trans_uni_r_reject (i: invariant) (om os: block) (rid roff rval t: int) (m: mem) :=
( t > (Int.repr (i.(period1)))
/\ t < (Int.repr (i.(period2)))
/\ master_eval_reject i om os rid roff rval m).
这给了我以下错误:
术语“t”的类型为“int”,而预期的类型为“Z”。
我也试过了:
(Int.cmpu Cgt t (Int.repr (i.(period1))))
/\ (Int.cmpu Clt t (Int.repr (i.(period2))))
/\ (master_eval_reject i om os rid roff rval m).
但它给了我这个错误:
术语“Int.cmpu Cgt t (Int.repr (period1 i))”的类型为“bool”,而预期的类型为“Prop”。
有什么方法可以比较这两种“int”类型或将它们转换为其他类型并返回“prop”类型?
谢谢,
【问题讨论】: