我在Coq的規範文件中有以下定義。我需要有一個比較兩個「int」類型值的命題。這兩個是't'和'Int.repr(i。(period1))'。(i.period1)和(i.period2)的類型爲'Z'。如何在Coq中比較兩個'int'類型的命題?
這是我的代碼片段:
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噸(Int.repr(間隔1 I))」有類型「布爾」,而它預計有類型「支柱」。
有沒有什麼辦法可以比較這兩個'int'類型或將它們轉換爲其他類型並返回'prop'類型?
謝謝,
感謝亞瑟!正如你所建議的那樣,我宣佈了一種強制,它解決了我的問題。 :) –
除了亞瑟的出色答卷,我想指出的是,以證明'is_true'導致與重寫證明的風格,事實上你可以重寫'A = TRUE'爲'真= TRUE'。 – ejgallego