Closed
Description
Consider, from Algebra.Structures
record IsNearSemiring (+ * : Op₂ A) (0# : A) : Set (a ⊔ ℓ) where
field
+-isMonoid : IsMonoid + 0#
*-isSemigroup : IsSemigroup *
distribʳ : * DistributesOverʳ +
zeroˡ : LeftZero 0# *
+-isMonoid
and *-isSemigroup
both contain a field isEquivalence : IsEquivalence _≈_
. There is nothing forcing these to be equal (which might matter if _≈_
is proof-relevant). Also, it makes it a pain to implement a ring-like structure "top-down" (writing out nested records explicitly).