def Ops.rem
import bend-collections-laws-crypto@1.0.0.0/spec/math/instances.bend as Instancesimport Base
import bend-collections-laws-crypto@1.0.0.0/src/math/num.bend as N
63def Ops.rem(~T: Data, ~op: N.Op<T> -> T, ~val: T -> Nat, +a: T, +b: T, +h: {Nat.is_eq(val(b), 0n) == False{} : Bool}) -> Type:
64 {val(op(N.Rem{a, b})) == Nat.mod(val(a), val(b)) : Nat}