Coq の spec ファイルに次の定義があります。2 つの「int」型の値を比較する命題が必要です。これらの 2 つは 't' と 'Int.repr (i.(period1))' です。(i.period1) と (i.period2) の型は 'Z' です。
これは私のコードスニペットです:
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))」という用語は、「Prop」型を持つことが期待されているのに対し、「bool」型を持ちます。
これら 2 つの 'int' 型を比較したり、別のものに変換して 'prop' 型を返す方法はありますか?
ありがとう、