Opened 3 years ago
Closed 17 months ago
#29949 closed enhancement (fixed)
Dynamical Systems On Berkovich Space
Reported by: | gh-EnderWannabe | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-9.5 |
Component: | dynamics | Keywords: | |
Cc: | bhutz, paulfili | Merged in: | |
Authors: | Alexander Galarraga | Reviewers: | Ben Hutz |
Report Upstream: | N/A | Work issues: | |
Branch: | 94b3c8d (Commits, GitHub, GitLab) | Commit: | 94b3c8d9db44471ea98ca727c26f60ef66d51b44 |
Dependencies: | Stopgaps: |
Description
The goal of this ticket is to implement basic dynamical system functionality on Berkovich space over Cp
. The immediate goal is to be able to compute the image of points. Type I points can be computed with the existing functionality in Sage. Type II, III and IV points will require additional functionality, to be implemented in this ticket.
This ticket relies heavily on the implementation of Berkovich space in #29844.
Change History (26)
comment:1 Changed 3 years ago by
Branch: | → u/gh-EnderWannabe/berkovich_dynamical |
---|
comment:2 Changed 3 years ago by
Commit: | → e1e7732e190b3d520e17d919f6123949a58fe2b7 |
---|
comment:3 Changed 3 years ago by
Commit: | e1e7732e190b3d520e17d919f6123949a58fe2b7 → 5434d5424eb9c3abee0bf37f1f654083b1f99c87 |
---|
Branch pushed to git repo; I updated commit sha1. New commits:
5434d54 | 29949: preliminary image of Type II points + constructor funcationality
|
comment:4 Changed 3 years ago by
Commit: | 5434d5424eb9c3abee0bf37f1f654083b1f99c87 → 016f058c56d27555e0c09bf400d025db1ed27c44 |
---|
Branch pushed to git repo; I updated commit sha1. New commits:
016f058 | 29949: added image of Type II for all cases
|
comment:5 Changed 3 years ago by
Commit: | 016f058c56d27555e0c09bf400d025db1ed27c44 → d54619e058abdd801f7dba97ce60fff415292ac9 |
---|
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
e77c1a1 | 29844: fixed git merge issues
|
5130500 | 29949: restored some functionality after git crash
|
b3ea2e8 | 29949: reformated classcalls, docs
|
71c3fd3 | 29949: added image of type III points for number fields
|
af1b339 | 29949: better check for poles in type III disk in padic case
|
1327b8a | 29844 doc clean-up
|
eaa636c | 29844: deleted duplicate functions. added element file to docs
|
b72d178 | 29844: fixed parent error in involution map
|
c1becdb | 29844: minor doc updates
|
d54619e | 29949: Merge branch 'berkovich_revisions' into berkovich_dynamical
|
comment:6 Changed 3 years ago by
Commit: | d54619e058abdd801f7dba97ce60fff415292ac9 → 67feb5d1159167e55f7f1b682ae0bb639bd76858 |
---|
Branch pushed to git repo; I updated commit sha1. New commits:
67feb5d | 29949: better check for poles in type III call
|
comment:7 Changed 3 years ago by
Commit: | 67feb5d1159167e55f7f1b682ae0bb639bd76858 → 2261e04c76d35c43f82e7c005370e319f7faff8d |
---|
Branch pushed to git repo; I updated commit sha1. New commits:
2261e04 | 29499: added as_scheme_dynamical_system and fixed radius for image of type III
|
comment:8 Changed 3 years ago by
Commit: | 2261e04c76d35c43f82e7c005370e319f7faff8d → b8f1a566a53da789ac641c2ed262932c6b93db35 |
---|
comment:9 Changed 3 years ago by
Commit: | b8f1a566a53da789ac641c2ed262932c6b93db35 → 72f9c7d15fca816ad573f6dd81f3f6dee97d4b20 |
---|
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
f640e21 | 29844: fixed minor spacing
|
c83784a | 29844: polynomial ring can be passed to projective Berkovich
|
780b1d7 | 29844: added affine space as option for affine berk space
|
2b5d6ed | 29844: deleted trailing whitespace
|
c5ced64 | 29844: added note in scheme overview
|
32b42aa | 29949: Merge branch 'berkovich_revisions' into berkovich_dynamical
|
3887c4d | 29949: Merge branch 'develop' into berkovich_dynamical
|
691031d | 29949: fixed broken constructor
|
a15755f | 29949: fixed conjugate
|
72f9c7d | 29949: more examples and new_ideal for conjugate
|
comment:10 Changed 3 years ago by
Commit: | 72f9c7d15fca816ad573f6dd81f3f6dee97d4b20 → 18cddd996044fde4c5f4d9e84e8ba4d86edaf9bb |
---|
Branch pushed to git repo; I updated commit sha1. New commits:
18cddd9 | 29949: added resultant and base_ring methods
|
comment:11 Changed 2 years ago by
Reviewers: | → Ben Hutz |
---|
btw, you should mark this as "needs-review" and mark yourself as author.
I'm still waiting for compilation to finish, but here is some comments from a code review. Nothing really major here.
need to include latest 29844
do you really needs the ._polys data as this is already contained in ._system._polys?
14: date needed
58: should give the class dynamical system
60: p-adic
95: affine dynamical system
98: z2 + 1
129: extra words
172: You seem to be trapping the error in creating the dynamical system, which would give information about what failed in trying to create the dynamical system. It seems like that information would be helpful rather than the more generic error you display
175: What if you have a dynamical system defined on a subscheme?
_eq_, _neq_: you have no tests that check that two systems are unequal
256: ending .
274: need ' - '
319: shouldn't this be relative dimension? Although I'd be inclined to just say 'dimension' as the base will be a field anyway.
318: class of dynamical system
348: trailing whitespace
370: The error is really that you cannot convert not that you know it is affine. Again you masking the more specific initialization error. I can somewhat see why that might be desirable here.
374: the should be projective not affine
375: dimension_absolute. So this will fail for the base being say ZZ
379: p-adic
405: Perhaps name this as_projective_dynamical_system. There is no a cooresponding function for affine. Looking at the documentation, it seems like this function is meant to be in the class:DynamicalSystem_Berkovich. In which case the name is fine.
455: What is you scale by p?
473: extra line
505,512,536,538: ending .
524: , adjugate
The _call_ documentation isn't visible to the user, so these description need to be moved. Perhaps to the class documentation.
650: isn't that error that the point is not in the domain? again, why is the error message from the coercion not better?
652: backed
654: are defined
667: some spaces for readability
719: space - space
798: this input seems more descriptive than for the other classes
849: Wouldn't homogenization be faster that calling the constructor. Also, what if you get something other than affine/projective?
847: dimensional absolute again
874: projective Berkovich space?
898: , space
918: same as before
need blank line at the end
comment:12 follow-up: 14 Changed 2 years ago by
A couple more things:
- 808+. An action is defined for matrices and dynamical systems: F = F*M
- for 808-816. Why don't you do
dehomogenize_hom = list((F*M).dehomogenize(1))
I didn't try it, but doesn't that do the same thing?
- 813: R.gen(0) also works
- 872 #add comment that this is the start of Type III
- Seems like this should work, since the equivalent call works for projective
sage: Q.<z> = QQ[] sage: A.<a> = NumberField(z^3 + 20) sage: ideal = A.prime_above(3) sage: P.<z> = AffineSpace(A, 1) sage: B = Berkovich_Cp_Affine(A, ideal) sage: f = DynamicalSystem_Berkovich([z^2], domain=B)
- This is what I mean by the subscheme examples
P.<x,y>=ProjectiveSpace(QQ,1) X=P.subscheme([x-y]) f=DynamicalSystem_projective([x^2,y^2],domain=X) DynamicalSystem_Berkovich(f)
Your error message does not make any sense for this one.
- I also ran a few of Benedetto's image examples from his exercises and got all correct answers.
comment:13 Changed 2 years ago by
Commit: | 18cddd996044fde4c5f4d9e84e8ba4d86edaf9bb → 1523bd42785752408deb6224bcb85d5c9bd45208 |
---|
Branch pushed to git repo; I updated commit sha1. New commits:
1b06163 | 29949: fixed prime_above in conjugate
|
ad55ab7 | 29949: added matrix imports
|
ae3400a | Merge branch 'u/gh-EnderWannabe/berkovich' of git://trac.sagemath.org/sage into berkovich_number_field
|
614bed9 | 29844: fixed equality for Berkovich Space, added hashing for Berkovich Space, and added test suites
|
fbfef60 | Merge branch 'berkovich_number_field' into berkovich_dynamical
|
2f7742b | Merge branch 'develop' into berkovich_dynamical
|
1523bd4 | 29949: fixed spacing issues, better error messages
|
comment:14 Changed 2 years ago by
Replying to bhutz:
- This is what I mean by the subscheme examples
P.<x,y>=ProjectiveSpace(QQ,1) X=P.subscheme([x-y]) f=DynamicalSystem_projective([x^2,y^2],domain=X) DynamicalSystem_Berkovich(f)Your error message does not make any sense for this one.
Changed the error message slightly. The key point I'm trying to get across is the is_ProjectiveSpace() must return True when called on the domain.
Replying to bhutz:
Deleted the ._polys data, switched to dimension relative. As for the error messages in the try catch blocks, in the notebook all the error messages are displayed, so the failed conversion error messages are still shown.
comment:15 Changed 2 years ago by
Authors: | → Alexander Galarraga |
---|---|
Status: | new → needs_review |
comment:16 Changed 2 years ago by
Status: | needs_review → needs_work |
---|
A few things here:
- look at the pyflakes plug-in for unused imports
- you're missing a few doctests for coverage (the _init_ functions)
- typo in docs:
The image of type III points can be computed has long as the
- add reference in comment
# point is now type III, so we compute using Proposition 7.6 [of Benedetto]
- I'm also getting no tab completion for Berkovich dynamical systems. I have no idea why the tab completion isn't working. Might have to ask sage-devel that one.
comment:17 Changed 2 years ago by
Commit: | 1523bd42785752408deb6224bcb85d5c9bd45208 → 42ed3ab6b6c51d13061add94a7e197c733b456e7 |
---|
Branch pushed to git repo; I updated commit sha1. New commits:
65fd85b | Merge branch 'develop' into berkovich_number_field
|
15a3b09 | 29844: fixed hash example
|
228e2fe | 29844: removed unused variables and added examples
|
e7b86f7 | 29844: added examples
|
6502126 | 29844: added more examples
|
cb0b8c6 | Merge branch 'berkovich_number_field' into berkovich_dynamical
|
3878f2e | 29949: added tests, removed unused imports
|
42ed3ab | Merge branch 'u/gh-EnderWannabe/berkovich_dynamical' of git://trac.sagemath.org/sage into berkovich_dynamical
|
comment:18 Changed 2 years ago by
Added the necessary examples for 100% coverage, and fixed the unused imports. I asked on the sage-devel google group about how to fix the auto complete.
comment:19 Changed 2 years ago by
Commit: | 42ed3ab6b6c51d13061add94a7e197c733b456e7 → 0cdf6e4e55607fd2ebe1f5ec05634cde7f6dd88c |
---|
comment:20 Changed 2 years ago by
I went to check tab completion on the newest beta, and I'm sill getting no tab completion here.
Note that I had a doctest failure:
sage -t --warn-long 57.6 --random-seed=0 berkovich_ds.py # 1 doctest failed
comment:21 Changed 2 years ago by
Commit: | 0cdf6e4e55607fd2ebe1f5ec05634cde7f6dd88c → 94b3c8d9db44471ea98ca727c26f60ef66d51b44 |
---|
Branch pushed to git repo; I updated commit sha1. New commits:
94b3c8d | 29949: fixed test failure caused by 30165
|
comment:22 Changed 2 years ago by
Milestone: | sage-9.2 → sage-9.3 |
---|
comment:23 Changed 2 years ago by
Milestone: | sage-9.3 → sage-9.4 |
---|
Setting new milestone based on a cursory review of ticket status, priority, and last modification date.
comment:24 Changed 19 months ago by
Milestone: | sage-9.4 → sage-9.5 |
---|
Setting a new milestone for this ticket based on a cursory review.
comment:25 Changed 18 months ago by
Status: | needs_work → positive_review |
---|
Everything builds and passes for me.
The tab complete does seem to be purely a jupyter issue. For me, disabling jedi with
%config Completer.use_jedi = False
caused tab completion to function properly.
comment:26 Changed 17 months ago by
Branch: | u/gh-EnderWannabe/berkovich_dynamical → 94b3c8d9db44471ea98ca727c26f60ef66d51b44 |
---|---|
Resolution: | → fixed |
Status: | positive_review → closed |
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
29844: trivial fix
Merge remote-tracking branch 'trac/develop' into t/29844/berkovich
Merge branch 'u/saraedum/berkovich' of git://trac.sagemath.org/sage into 29844
Merge branch '29844' into berkovich_dynamical
29949: seperated systems over projective and affine space
29844: can pass padic field to projective space
Merge branch '29844' into berkovich_dynamical
29844: base_ring for projective now returns a ring
Merge branch '29844' into berkovich_dynamical
29949: image of Type II and III points under polynomial