-
-
Notifications
You must be signed in to change notification settings - Fork 503
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
categories of lazy series #34470
Comments
Changed keywords from none to LazyPowerSeries |
This comment has been minimized.
This comment has been minimized.
comment:3
Indeed, a valuation ring is not simply the ring version of a valuation field. Something in UFDs does not need to be constructive, although it does make it somewhat useless to be in that category. I cannot seem to find much of anything on factoring multivariate FPS. I suspect we can do something recursive and take advantage of the group of units being so large. Although I don’t know of a way to do this after thinking about it for the past 20 minutes. However, it is known to be a UFD (with finitely many products?). |
comment:4
(the typo should be a ticket I'll open shortly) |
comment:5
I see. I don’t agree with that definition (there could be ambiguity about what constructively means) as the ability for something to actually do the properties specified in the category is always an implicit requirement. Anyways, it is explicitly requiring it to be done, so it shouldn’t be in UFD for now. |
Author: Martin Rubey |
Dependencies: #32367 |
comment:8
Shouldn't all of these actually be in
instead of a clumsy list with Last 10 new commits:
|
Commit: |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:10
Replying to Martin Rubey:
This I agree with overall, but Matthias made a good point that most of the default evaluation morphisms would not be as rings but as graded algebras, which have quite strong restrictions. There are ways around this for various special cases, but For the lazy graded algebras, that definitely should be in there.
Strong -1 on this for graded algebras in general because in CFM elements, We can support that for the lazy graded algebras, although from the above, it creates the same tension with something that should, generically speaking, act like the underlying algebra element. There is some justification for allowing the difference since the user should be aware that it is a completely different type. I didn’t quite think this through so thoroughly when we were first doing this… I see this as a judgement call with which behavior would be better to support, and I don’t have too strong of an opinion either way. (I might even be a bit contrarian either way you chose to make sure the choice is sound, but quite likely not.) Somewhat related: There was an agreement to explicitly move away from allowing slices for (univariate) polynomials. New commits:
|
comment:11
Replying to Travis Scrimshaw:
OK, too bad. I could not think of a sensible example where the indices are integers, but I agree that there might be. Could we at least have it for symmetric functions and similar stuff, interpreting integer and slice arguments as specifying degrees, and all the rest as indices? And, perhaps more importantly, for polynomials?
Yes, I find that this is a very impractical decision for me, because I work a lot with coefficients, and I keep forgetting how to obtain them. Doing Remembering stuff is even harder when implementations of basic functions are so different:
|
comment:12
Replying to Martin Rubey:
The free monoid/group with one generator comes to mind. The exterior algebra is another if we realize subsets as binary representation of integers (this was originally the GSoC project Trevor was working on until we found it better to continue working with subsets through a different implementation).
I am a -1 on doing it for symmetric functions as they are not grouped together by degree like how the implementation is here. I also don’t like such a special case. In principle, considering the input This is a good chunk of the reason why I am rethinking the behavior of
Well, I would probably do
Ouch, that is a bit unfortunate. It is generally a good thing to make the API uniform for these things. |
comment:13
OK, we disagree slightly. I guess there is nothing we can do about it, so let it be. Just a few minor observations:
In summary: The fundamental problem I see is that there may be ZZ-graded algebras where the index set is a subset of the integers, but the degree is something else. I agree that this is a problem. I disagree that this is a problem for symmetric functions. The current behaviour of |
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
|
comment:15
Replying to Martin Rubey:
Indeed, it also returns
That is fine (and even desirable) since it would make it compatible with other graded algebras (with basis).
This is a good argument for adding functionality on top of those for the corresponding polynomial ring for at least the lazy Laurent )and Dirichlet) series. This would also be consistent with iteration over the elements too.
It is initially surprising. Yet, you already have to know it is a way to pull coefficients of an indexed element, which means you should know it is not a partition that you are passing. Thus, with a moment of thought, it is consistent behavior (as the coefficient of the integer I am okay with doing stuff for the lazy series since they are different objects/implementations, but not for classical symmetric functions. It creates too much tension with the |
comment:16
Replying to Travis Scrimshaw:
Yes, provided that Let me stress that for my daily experimental work with sage, aliases are a major problem, because they are listed in the tab completion just as any other method. They even appear twice in the documentation. It happens very frequently that I am looking for a particular functionality, and cannot find it, so I page through the tab completion. As an example, for SymmetricFunctions(QQ).s(), this list has currently 148 elements, even if I remove the underscore methods. '' (if you happen to know how to make emacs and sage-shell-mode (optionally) omit the underscore methods, please let me know) Again, this is a major problem for me. Related to this, less severe, is that tab-completion stops working after methods. So I have to assign names to things, and in the end I am surprised because I accidentally used the same name in a computation for two different things.
I don't understand your proposal here? How would
Hm, I don't see that: my proposal (modulo the fundamental problem of integer indices, which probably kills the proposal anyway) is exclusively for algebras with a ZZ-grading. |
comment:17
It is actually a bit strange that we do not include the Similarly,
is actually quite inconsistent. So, how about turning things around and make Of course, this is a bit impractical, because for univariate power series I am not interested at all in the |
comment:18
I just realised that I am confusing two different instances of
Clearly, the first one should only take partitions. However, for the second, it might actually be more consistent, to only take integers and slices. |
comment:19
Replying to Martin Rubey:
This would be a bad practice. We agree that things in the category should not assume that
I agree that such pollution can be difficult at times. I usually know possible first letters, so that significantly narrows down my search (e.g., doing
Unfortunately I have no idea as I don't use emacs.
I don't think there is too much anyone can do about this. It is better to have things discoverable by tab completion, and we want methods that are useful for other people to be included to.
I don't understand this. Do you mean it does not work for attributes? I have those intermingled in my tab completion lists.
They don't, and that is a benefit to me. You don't fall into the pitfalls of the polynomials.
I am focusing on just the symmetric function part now. The ring of symmetric functions has a ZZ-grading, but not every basis consists of homogeneous elements (i.e., is naturally ZZ-graded). What should I expect if I use a basis such as In particular, consider NB: Our implementation only works for graded bases. |
comment:20
Replying to Travis Scrimshaw:
I miscommunicated. My problem is when I actually do not know whether some sort of functionality exists. For example, I'd like to get all elements of a given degree in a multivariate polynomial. So I do
Now, emacs offers me 97 methods. Fortunately, I can search in the list of completions, where I find I am not saying that this can be made much better easily. However, I am saying that this can be made much worse, by introducing more aliases. I am guessing that it would be extremely difficult for emacs to detect whether one method is an alias of another. |
comment:21
Replying to Travis Scrimshaw:
Why would it be strange for
Yes, I can think of some places where things might go wrong. Do you have an example in sage (or is there an easy way to define a basis) such that I can experiment? |
comment:22
Answering my own question:
is a basis which is not homogeneous. I am guessing that there is some trouble here:
|
comment:82
Ah, right, we do use the graded property. In fact, we even need it: it an algebra was (lower) filtered, we could have accumulation in the constant coefficient. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:85
Patchbot here was morally green (something seems broken with its giac and unrelated to this ticket) up to the pyflakes things I just fixed. I think anything further can be done on subsequent tickets and we are at a good cutoff point. If you're happy as well, we feel free to set a positive review. |
comment:87
This has no additional conflict with the changes I made in #34413. |
Changed branch from u/tscrim/categories_lazy_series-34470 to u/mantepse/categories_lazy_series-34470 |
Branch pushed to git repo; I updated commit sha1 and set ticket back to needs_review. Last 10 new commits:
|
comment:90
trivial (automatic) merge, necessary to make the patchbots happy. |
Branch pushed to git repo; I updated commit sha1 and set ticket back to needs_review. New commits:
|
comment:92
Trivial merge, done because I keep switching between 9.8.beta0 and 9.8.beta1, which is a waste of time. |
Changed branch from u/mantepse/categories_lazy_series-34470 to |
We should check the categories of our lazy rings:
is wrong. It is not even a 'valuation ring' , see https://en.wikipedia.org/wiki/Valuation_ring, because neither
x/y
noty/x
is inL
. I doubt it should be inUniqueFactorizationDomains
, because this category is reserved for constructive UFD's.In the univariate case, the uniformizer is the generator "x", but this is not yet implemented:
Similarly, we have
which is also wrong.
Depends on #32367
CC: @tscrim
Component: categories
Keywords: LazyPowerSeries
Author: Martin Rubey
Branch/Commit:
56cef07
Reviewer: Travis Scrimshaw
Issue created by migration from https://trac.sagemath.org/ticket/34470
The text was updated successfully, but these errors were encountered: