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
Witt Vectors #11457
Comments
Attachment: witt.patch.gz |
Attachment: witt.2.patch.gz |
Attachment: witt.3.patch.gz |
Attachment: witt.4.patch.gz |
Attachment: witt.5.patch.gz |
comment:1
Attachment: witt.6.patch.gz This is what it can do right now
|
comment:2
Attachment: witt.7.patch.gz Witt Vectors! Yes! That would be awesome. I will stay tuned. By the way, you should feel free to "Replace existing attachment of the same name" so that you aren't attaching a million files. It could get sizeable after a while. |
comment:3
roed314: the coercion system catches other problems and doesn't forward them all on NameError: global name 'divisors' is not defined me: so you have to do like nn=Integer(n) roed314: that would work too |
This was made during sage days 44. It runs. Unless I someone messed up when I uploaded this which is a real possibility. |
Attachment: witt.8.patch.gz Attachment: witt.9.patch.gz |
comment:4
There is a problem in the division by p in characteristic p.
|
Attachment: pwittvectors.patch.gz Hopefully I'm using mercurial right... |
comment:5
It looks like the newest patch is formatted fine. Does coercion from the integers into a ring of Witt Vectors work right? What is the image of p? |
comment:6
Replying to @roed314:
Coercion is not implemented. I'd also like to implement coercions for padics but I first need to deal with this division by p thing. Also, I have some modifications that It won't let me refresh. I'm having trouble with these "phases". It's not letting me refresh the patch
I tried modifying my .hg/hgrc in my working branch of sage ~/sage-whatever like so
this isn't working. |
comment:7
Replying to @tdupu:
Weird. I have no idea what's going on there. Perhaps you should e-mail sage-devel? |
comment:8
There are at least two issues with this implementation of Witt vectors:
I fear that fixing the issues requires rewriting the methods from scratch. I am also wondering whether anything speaks against implementing Witt vectors for general nests as well (including the nest of all positive integers, leading to "big Witt vectors"). |
comment:9
On an unrelated note, it would be helpful to know which (all? just the last two?) patches here are to be applied, and perhaps to make one big "master" patch as well, if relevant. @darijgr: would it be possible to "fix" the issues you raise by appropriate documentation about allowable base rings (or even try/except or assert for inappropriate ones)? I do agree that whatever infrastructure is here should be robust enough to eventually support at least the big Witt vectors, if not even other sets. Maybe a placeholder class to inherit from... Another thought - is there really any reason to have the functions Finally, there are various formatting issues, but that's not worth fixing until a more final patch, likely. |
comment:10
Restricting the base ring? I don't think so. If we wanted to fix both issues at the same time this way, we'd have to restrict R to the zero ring, which is definitely not the intention ;) but even restricting to char-p or char-coprime-to-p only makes Witt vectors a lot less powerful. |
comment:11
The reply button doesn't seem to be working. Re Darij's Comments:
Re: kcrisman's comments: -Also, the big witt vectors can not be implemented using what i did since I used that w_{n-1}(a^p) + p^n a_n = w_n(a) in the recurrence. -The witt sums and witt additions should be excluded because they may be used for Greenberg transforms (which will have applications to say lifting J-invariants). I have talked a little bit to Luis Finotti about this. There are snippets of big witt vectors code in the original patches (not the pWittVectors patch) that can be used but the indexing is off in that code I think. I will try and make a list of other issues soon. It might be better to make something on github. |
comment:12
Replying to @darijgr:
darij actually means in characteristic p base ring. The correct form of the p-frobenius has the ghost component equation w_{n}(f_p) = w_{n+1} See Hazewinkel (5.27).
The following two suggestions have been made:
I'm not sure what you mean here. Could you explain more or provide a link? Suggestions for implementations of Witt-Burnside functors are also welcome. |
comment:13
The fix I mentioned to darij's comments also has the drawback of not being able to implement Greenberg transforms. We would like to be able to take a polynomial and simple take a Greenberg transform of them (i.e. just the computation written out in witt components). It would be nice to be able to do this "abstractly" i.e. without specifying a particular p. Do people have opinions on this? Should we just implement this for a particular p? Should we make this a whole other ticket? |
comment:14
Hi Taylor,
I don't think any of these would help compute Witt vector addition over an arbitrary commutative ring. When you take ghost components over a ring in which p is a zero-divisor, you lose information; you can't gain it back by lifting as far as I know. What I meant by "big Witt vectors" are Witt vectors that are not p-typical (Section 9 of Hazewinkel). We should be able to use some of the extensive symmetric functions implementation we have in Sage (including Witt coordinates since #14775). While I'd love to play around with Witt-Burnside, too, I don't know enough about this generalization to implement it well (though I can learn). When you say "specifying a particular p", does p mean the polynomial or the prime? It might be interesting to do it on a generic polynomial, though I wasn't thinking of that; having addition, negation and multiplication would already be a wonderful start. Best regards, Darij |
comment:15
Replying to @darijgr:
I need to think if something like this can be well-defined. This isn't clear to me right now.
oooh, I didn't know about this. I need to take a look at this. Do you have any suggestions? I'm not too familiar with what has been done there.
I means p as a prime. I would like to be able to leave p unspecialized (so you can see formulas with the symbol 'p' rather than an actual prime). I vaguely recall mathematica being able to do things like this. It is probably too much to ask. |
comment:17
Here are some suggested that I'm copy-pasting from the emails to fix the division problems. The formatting is a little weird, but I think people can read it if they need to. Here is the link to the symmetric polynomials patch that darij wrote #14775 FIRST IMPLEMENTATION: Try the "lifting and dividing" procedure. I have broken it up into subcases. Are there other objects we could consider? Here are the cases we could consider:
TODO:
SECOND IMPLEMENTATION: Recall: {{ At any rate, I think the suggestion of Darij is as follows: use the isomorphism between power series functor and the big Witt functor to derive the sum and addition polynomials. I outline it the idea for the multiplication polynomials
Am I stating this correct? Are there simplifications that one can make in doing this? I haven't tried to do this in sage so I don't know if solving these equations is actually faster than solving for the witt addition and multiplication polynomials "by hand". Is there a simpler way of factoring these power series? |
comment:21
I have been working an implementation of Witt vectors using Luis Finotti's work in this paper. I'd like to take over this ticket and begin merging this work, but I want to be careful about credit. Also, I'm new to the Trac server, and don't want to make changes hastily. If/when I accept this ticket, should I change the "Authors" field to just my name? Or my name and the previous authors? I'm not really building on the previous work (as I've just discovered it). |
comment:22
Good questions! Two thoughts.
|
comment:23
Replying to Karl-Dieter Crisman:
Thanks for your prompt reply! Crazy timing on my part, seeing as that vote started yesterday. Looks like the new plan is the (typical?) fork-then-pull-request structure. Does this mean it would perhaps be better to go ahead and fork? Or should I also create a temporary branch, as you suggested? The code is (mostly) functional, so the temp branch could be useful, but it's not clear to me what happens after the move to GitHub. Would I scrap the branch and then make a PR marked as Draft? |
comment:24
I've deleted Taylor and my names from Authors; once you have a branch on here that's ready for review feel free to replace it with your own. As for Github, the plan is to convert branches on trac tickets into branches on the sagetrac-mirror, together with PRs from there. If you want to work on this project before the transition, you should do so here on trac (there's no way that's yet supported to develop Sage on github). Of course, you can also wait and create a fork and PR once Sage transitions, but we don't have an explicit timeline for when that will be (aside from definitely more than two weeks from now, since that's when the voting ends). |
Changed author from Taylor Dupuy, David Roe to none |
comment:25
Okay, great. Thanks for your clear answers! Code to come soon. |
Branch: u/gh-nielrenned/witt_vectors |
Last 10 new commits:
|
Author: Jacob Dennerlein |
Commit: |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
An implementation of the ring of witt vectors and their elements for any commutative ring
Component: padics
Keywords: witt vectors, rings
Author: Jacob Dennerlein
Branch/Commit: u/gh-nielrenned/witt_vectors @
d195667
Issue created by migration from https://trac.sagemath.org/ticket/11457
The text was updated successfully, but these errors were encountered: