You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* the PR itself draws attention to the fact that `Symmetric _#_` is in fact a redundant part of the definition of `IsHeytingCommutativeRing`, so it *might* be worth having an `Algebra.Apartness.Structures.Biased` smart constructor which puts the pieces together, but this could be developed downstream;
* the whole definition of HCR now seems a bit odd (compared to HCF?): why should a `Ring` admit inverses of elements apart from `0`? As opposed to simply being a `CommutativeRing` with a `Tight` apartness relation?
making the stdlib conventional choice exposes one of the conjuncts simply as ∀ x y → (x ≈ y → ¬ x # y), i.e Irreflexive _≈_ _#_, so there's a DRY issue, in that a Tight instance of Relation.Binary.Structures.IsApartnessRelation reduplicates this irrefl property; (eg. in Algebra.Apartness.Structures.IsHeytingField)
the Heyting structures and bundles should be reorganised:
there's no reason for a HeytingCommutativeRing to admit inverses; but the apartness probably should be declared to be Tight (so... a Tight apartness should probably only have the one conjunct, as an 'extension' of the existing irrefl property...)
a HeytingField should probably be a HeytingCommutativeRing admitting inverses, ie. the tight field moves to HCR, while invertibility moves from HCR to HF
These would all be breaking changes, so v3.0, but well worth doing IMNSVHO. See #2588
The text was updated successfully, but these errors were encountered:
jamesmckinna
changed the title
[ refactor ] Definitions of Relation.Binary.Apartness and Algebra.*.*HeytingCommutativeRing
[ refactor ] Definitions of Relation.Binary.Apartness and Algebra.*.*Heyting*Feb 18, 2025
Excepted from original post by @jamesmckinna in #2576 (comment)
There are several things to (re-)consider here:
Relation.Binary.Definitions.Tight
makes the conventional, but non-stdlib
-conventional, design decision, to universally quantify a pair of properties, rather than consider the conjunction of two universally quantified properties (cf. [ refactor ] ReconcileRelation.Binary.Definitions.Adjoint
andFunction.Definitions.Inverse*
#2581 )stdlib
conventional choice exposes one of the conjuncts simply as∀ x y → (x ≈ y → ¬ x # y)
, i.eIrreflexive _≈_ _#_
, so there's a DRY issue, in that aTight
instance ofRelation.Binary.Structures.IsApartnessRelation
reduplicates thisirrefl
property; (eg. inAlgebra.Apartness.Structures.IsHeytingField
)Heyting
structures and bundles should be reorganised:HeytingCommutativeRing
to admit inverses; but the apartness probably should be declared to beTight
(so... aTight
apartness should probably only have the one conjunct, as an 'extension' of the existingirrefl
property...)HeytingField
should probably be aHeytingCommutativeRing
admitting inverses, ie. thetight
field moves toHCR
, while invertibility moves fromHCR
toHF
These would all be
breaking
changes, so v3.0, but well worth doing IMNSVHO. See #2588The text was updated successfully, but these errors were encountered: