Если вы выбрали запись, это
Require Import Coq.Numbers.Cyclic.Abstract.CyclicAxioms.
ZquotZ8.ops.(@ZnZ.succ _)
(* equivalent to *)
@ZnZ.succ _ ZquotZ8.ops
Но дело в том, что ZnZ.Ops
это Class
, а не просто запись, ZquotZ8.ops
это Instance
и ZnZ.succ
может найти ZquotZ8.ops
неявно, потому что вы использовали Export ZquotZ8
. Так что это просто
ZnZ.succ
Однако, я думаю, вам также нужно изменить заголовок Positive8
на
(* NOT : *)
Module Positive8 <: PositiveNotOne.
В противном случае, Positive8.p
непрозрачен, и вы не можете вычислить сЭто. Как только это будет сделано, вы получите
Compute (ZnZ.compare (ZnZ.succ 255%Z) 0%Z).
(* = Eq *)
Обратите внимание, что succ
не переворачивается;здесь возвращается 256%Z
. ZnZ.to_Z
фактически вычислит остаток, или вы можете использовать succ_c
.