-
Notifications
You must be signed in to change notification settings - Fork 40
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
Euclidean rings #128
Comments
@Bodigrim Sorry, minor nitpick: where there's Eucledian, there should be |
@Bodigrim this is probably outside the scope of this package, but what do you think of the viability of this issue being part of a larger plan of including class inclusions from commutative rings and integral domains all the way to fields? |
It seems every Haskell developer gets this temptation at some moment, fascinated by divine simplicity of My opinion is that certainly there are algebraic structures, which fits programming idioms nicely and they are the simplest one. Everything else, starting from rings, has so many different species, that the full hierarchy has little added value for practice. Unless there is a solid reason to distinguish some special structure (e. g., Euclidean ring). With regards to |
@Bodigrim Heh, I admit I've done that before, although this time it was because I've noticed |
I'm unsure about |
Valid point. Up to my understanding even in Gaussian ring there are more than two ways to define division with remainder, truncating to different directions by both axis. So may be it is worth to define only |
Yes, I think defining only Additionally, Euclidean domains are unique factorisation domains, so it may be possible to extend in that direction also. |
I agree with defining only |
On one side I do not think that someone used For now let us implement both The difference may be stated as follows: |
@Bodigrim Makes sense. I'll start working on this. |
…l a => Euclidean a`
This is to avoid messy
div{E,G}
,mod{E,G}
,gcd{E,G}
(cf. the implementation of Gaussian integers and #121) and unify them withdiv
,mod
,gcd
for usualIntegral
types.Then we can replace
Integral
constraint withEuclidean
inMath.NumberTheory.GCD
,Math.NumberTheory.Prefactored
andMath.NumberTheory.SmoothNumbers
, making them both more general and applicable to quadratic fields.https://en.wikipedia.org/wiki/Euclidean_domain
The text was updated successfully, but these errors were encountered: