-
-
Notifications
You must be signed in to change notification settings - Fork 480
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
Basic implementation of one- and twosided ideals of non-commutative rings, and quotients by twosided ideals #11068
Comments
This comment has been minimized.
This comment has been minimized.
Work Issues: Add examples; move code from ring.py to rings.py |
This comment has been minimized.
This comment has been minimized.
comment:2
Depends on #10961 The patch is incomplete, since proper examples are missing. Proper examples will be provided by #7797, but Nicolas promised to try and find some "small" example. Really, all what we need is a non-commutative ring and something that inherits from Also, that patch is preliminary, since it copies some code from sage/rings/ring.pyx to sage/categories/rings.py, rather than moving it. |
comment:3
Concerning examples. I suggest to make a standard example out of the following emulation of a certain very simple ideals of a free algebra, without letterplace:
I think I would be able to add this example as doc test tomorrow, also removing the whole ideal and quotient stuff from |
comment:4
Nice! That sounds like a perfect example indeed. Thanks for removing this item from my TODO list :-) |
comment:5
Replying to @simon-king-jena:
Apparently it took a lot longer. The problem is "moving the whole ideal and quotient stuff from That problem is solved at #11115. Moreover, So, the question is: Can we accept the slow-down that would result from moving code from the ring class to the ring category? Or is it easier to accept some duplication of code? |
comment:6
Replying to @simon-king-jena:
Any answer? Probably one would first need to see how much of a slow-down we will really find. |
comment:7
Currently I work on the following technical problem: The category of a quotient ring is not properly initialised. Thus, a proper So, that mess needs to be cleaned up. |
comment:8
I think it should be part of this ticket to properly use categories and the new coercion model for
That has not been done in #9138, but I think it fits here as well, since "quotients" is mentioned in the ticket title, and free algebras could provide nice examples, if they would use the category framework. |
comment:9
Replying to @simon-king-jena:
+1
That's precisely the issue that stopped me starting the refactoring of
I personally prefer the former, first from a syntactical point of Note: at first sight, it seems easy to make the change in this Do you mind running this dicussion on sage-devel? Cheers, |
comment:10
Replying to @nthiery:
I think the object oriented mantra implies that the correct syntax for lifting an element x of P to the ambient space of P is On the other hand, Moreover:
As you state, it is the "lifting morphism", not the "lift". The term "lifting morphism" is used in the documentation as well. So, explicit being better than implicit, "P.lift()" as it is used in sage.rings.quotient_rings, should be renamed as "P.lifting_morphism()". So, I tend towards using the notions from the subquotient framework.
Not at all. I just hope that people will answer. |
comment:11
It was suggested on sage-devel to have both: By making I think I will go for that solution. Unfortunately, I was not told yet whether I shall duplicate the code, or move it... |
comment:12
I updated my patch, now as the background work in #9138 seems settled from my point of view. In that patch, I went for the "duplicate code for speed's sake" approach. I don't mind beig asked to change it, though (i.e., it seems possible to delete the ideal stuff from sage.rings.ring and move it over to sage.categories.rings). |
Changed work issues from Add examples; move code from ring.py to rings.py to Shall one move code from ring.pyx to rings.py? |
This comment has been minimized.
This comment has been minimized.
comment:13
I noticed that the ticket description stated an incomplete list of dependencies |
Author: Simon King |
comment:16
I just found one problem that should be fixed. In unpatched Sage, we have
Shouldn't the result rather be the same as With my patch as it currently is, the example fails with a type error. But I think I can make it work, so that the result will be "Ring of integers modulo 2". |
comment:61
The trouble with #11339 has been resolved: #11339 can in fact only be used in conjunction with #10903. The patches here can remain as they are now. #10903 should be added as a new dependency (#11339 is a dependency of #10903). All doc tests succeeded with sage-4.7.2.alpha3 plus #11339, #10903, #11856, #11115 and #11068. So, I hope that it is alright that I now reinstate the positive review. Apply trac11068_nc_ideals_and_quotients.patch trac11068_quotient_ring_without_names.patch trac11068_lifting_map.patch |
comment:62
Replying to @simon-king-jena:
I gave the positive review, and I am fine with that. I can run the doctests on my own machine if someone likes, but since I'm working on something else, I'm unable to do it at the moment. Out of curiosity, why was the milestone changed to 4.7.3? |
comment:63
Replying to @johnperry-math:
Mainly because I would like to finish the sage-4.7.2 release. I do not see a compelling reason for this to be merged quickly, so it will be in sage-4.7.3. |
comment:65
This will eventually need to be rebased to #11900. |
comment:66
Replying to @jdemeyer:
I just did so. Only the first patch has changed. For me, all tests pass, and thus I keep the positive review. But I would appreciate if someone could test it. Apply trac11068_nc_ideals_and_quotients.patch trac11068_quotient_ring_without_names.patch trac11068_lifting_map.patch |
comment:67
Replying to @simon-king-jena:
I will try this at some point. Do I need to download the latest alpha, or mere #11900? |
comment:68
Replying to @johnperry-math:
There is an "inofficial" sage-4.7.3.alpha1, which actually contains #11068. So, you may test with this, if you like. If all tests pass with sage-4.7.3.alpha1, then (I think) it is justified to keep your original positive review. |
comment:69
On sage.math, all short and long tests pass. If all Simon did was an obvious rebase (I did not check this), then it is certainly okay to keep the positive_review. |
comment:70
Replying to @simon-king-jena:
Yes, but keep in mind that this 4.7.3.alpha1 contains much more than just this ticket. If all tests pass, that's great but if not, you wouldn't know that it's because of this ticket. So for actually testing this ticket, it would be better to use sage-4.7.2 (which is now official) and apply the dependencies of this ticket: #9138, #11900, #11115. |
comment:71
Since apparently sage-4.7.3.alpha1 is not relevant, I took into account sage-4.8.alpha0 instead. I worked on top of #11935, but I hope I did the rebase (yes, really not more than a trivial rebase) such that it should not matter whether one has #11935 applied or not. I will test this in two hours... Apply trac11068_nc_ideals_and_quotients.patch trac11068_quotient_ring_without_names.patch trac11068_lifting_map.patch |
comment:72
Meanwhile I have updated my patches both here and at #11943. I just verified that the new patches do commute, so that it does not matter whether this ticket is merged before or after #11943 and #11935. Again, the change was trivial (actually involving a blank space that I had accidentally introduced at #11943). Apply trac11068_nc_ideals_and_quotients.patch trac11068_quotient_ring_without_names.patch trac11068_lifting_map.patch |
This comment has been minimized.
This comment has been minimized.
Attachment: trac11068_nc_ideals_and_quotients.patch.gz Non-commutative ideals and quotient rings |
comment:75
Patch rebased to latest version of #11900. |
Merged: sage-5.0.beta1 |
comment:77
The reduce function of the two doctests All failures will probably be fixed if these three tests pass
and
Added by this ticket both do not satisfy the condition on
This issue is now tracked at #23621 |
comment:78
Wrong ticket? This one was closed six years ago... Replying to @koffie:
|
It was suggested that my patch for #7797 be split into several parts.
The first part shall be about ideals in non-commutative rings. Aim, for example:
It was suggested to also add quotients by twosided ideals, although it will be difficult to provide examples before having letterplace ideals.
Apply:
Depends on #9138
Depends on #11900
Depends on #11115
CC: @nthiery @jhpalmieri
Component: algebra
Keywords: onesided twosided ideal noncommutative ring sd32
Author: Simon King
Reviewer: John Perry
Merged: sage-5.0.beta1
Issue created by migration from https://trac.sagemath.org/ticket/11068
The text was updated successfully, but these errors were encountered: