Skip to content

Conversation

@MatthewDaggitt
Copy link
Collaborator

So I was trying to fit ring exponentiation into the new library design for auxiliary definitions over different types of algebraic bundles (multiplication/summation/divisibility etc.), finishing off the reorganisation started in #1351 and #1377. However, it turns out that the design isn't general enough as solvers need access to the operation even when they don't have access to the accompanying ring axioms. Hence this reorganisation:

  • A new set of modules Algebra.Definitions.(RawMagma/RawMonoid/RawSemiring) each now contain all the auxiliary definitions that can be defined for the corresponding raw bundle. This gets rid of the Algebra.Primality and Algebra.Divisibility modules.

  • The modules Algebra.Properties.(Magma/Semigroup/Monoid/Semiring).(Multiplication/Summation/Divisibility) now each re-export the relevant auxiliary definition and contain the properties about it for each bundle respectively.

This should provide enough flexibility to add more theory about algebraic structures in future.

This PR doesn't yet deprecate Algebra.Operations.Ring.

@MatthewDaggitt
Copy link
Collaborator Author

Pinging @mechvel as it touches code they've been working on recently.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants