-
Notifications
You must be signed in to change notification settings - Fork 239
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Drop equivalence relation from Algebra.Bundles.Raw
structures?
#2506
Comments
We're using the |
Why are these part of the structures as opposed to being parameters of homomorphism? |
Thanks @carlostome for the (challenging!) questions. I hope the rambling discussion below helps... I'd make two observations before going away to try to think a bit harder about this (and probably nudge @JacquesCarette and @MatthewDaggitt for comment...):
For better or worse (and certainly, pre the development of HoTT/cubical ideas around making equality a global/ambient property of types), The (not an exact one, though!) analogy from universal algebra (I think! UA experts please correct me if not) is whether or not equality is taken as explicit part of the relational signature, or presupposed. Making equality part of the The 'dirty' reason underlying such a choice is precisely (?) to avoid marshalling and unmarshalling an explicit Lastly, I'm always reluctant to take too seriously any comparison with haskell typeclasses, precisely because, by not having to take laws seriously, they avoid all the hard work in figuring out a workable design for 'real' algebraic structure (never mind the compromises entailed by having type-checking based on (unique) instance inference...) |
Under propositions-as-types, I'd be tempted to go out on a limb and say that the 'operational signature' ('syntax') of an algebra includes/should include the 'relational signature', since together they define the language in which the equations ('semantics') can be stated as properties expressed relative to such a vocabulary... but that's probably a reach too far, philosophically at least? After all, the ordered structures under TL;DR: I think the orthodox first-order model theory distinction between function symbols and relations is artificial, just as is that between 'expressions' and 'terms' as to well-formedness wrt a possibly non-context-free grammar. |
And... finally: what would we do if we went beyond purely first-order algebraic signatures to essentially algebraic, where equality plays a role in even defining well-formedness of terms (eg specifying pullbacks as a 'function' of conical data)? |
Structures currently defined in
Algebra.Bundles.Raw
(RawMagma
,RawMonoid
,...) include as part of their definitions the "underlying equality" relation. For example,The rationale behind
Raw
structures (cf.README.Design.Hierarchies
) seems to be that they ought to only bundle algebraic operations (e.g._∙_ : Op₂ Carrier
above) in a spirit similar to Haskell's typeclasses.Wouldn't it make sense to drop the
_≈_
relation from these structures?As a point of comparison, the
Raw
structure for functor does not include such relation (Effect.Functor
):The text was updated successfully, but these errors were encountered: