Skip to content
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

Dynamical Systems On Berkovich Space #29949

Closed
EnderWannabe opened this issue Jun 23, 2020 · 39 comments
Closed

Dynamical Systems On Berkovich Space #29949

EnderWannabe opened this issue Jun 23, 2020 · 39 comments

Comments

@EnderWannabe
Copy link
Contributor

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.

CC: @bhutz @pfili

Component: dynamics

Author: Alexander Galarraga

Branch/Commit: 94b3c8d

Reviewer: Ben Hutz

Issue created by migration from https://trac.sagemath.org/ticket/29949

@EnderWannabe EnderWannabe added this to the sage-9.2 milestone Jun 23, 2020
@EnderWannabe
Copy link
Contributor Author

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 25, 2020

Commit: e1e7732

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 25, 2020

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

7ed429f29844: trivial fix
46259d4Merge remote-tracking branch 'trac/develop' into t/29844/berkovich
af306dbMerge branch 'u/saraedum/berkovich' of git://trac.sagemath.org/sage into 29844
2dc9a45Merge branch '29844' into berkovich_dynamical
1633f5829949: seperated systems over projective and affine space
2e4a10029844: can pass padic field to projective space
40f6519Merge branch '29844' into berkovich_dynamical
3231a7629844: base_ring for projective now returns a ring
0a24e2cMerge branch '29844' into berkovich_dynamical
e1e773229949: image of Type II and III points under polynomial

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 29, 2020

Changed commit from e1e7732 to 5434d54

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 29, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

5434d5429949: preliminary image of Type II points + constructor funcationality

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 29, 2020

Changed commit from 5434d54 to 016f058

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 29, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

016f05829949: added image of Type II for all cases

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 30, 2020

Changed commit from 016f058 to d54619e

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 30, 2020

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

e77c1a129844: fixed git merge issues
513050029949: restored some functionality after git crash
b3ea2e829949: reformated classcalls, docs
71c3fd329949: added image of type III points for number fields
af1b33929949: better check for poles in type III disk in padic case
1327b8a29844 doc clean-up
eaa636c29844: deleted duplicate functions. added element file to docs
b72d17829844: fixed parent error in involution map
c1becdb29844: minor doc updates
d54619e29949: Merge branch 'berkovich_revisions' into berkovich_dynamical

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 30, 2020

Changed commit from d54619e to 67feb5d

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 30, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

67feb5d29949: better check for poles in type III call

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 31, 2020

Changed commit from 67feb5d to 2261e04

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 31, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

2261e0429499: added as_scheme_dynamical_system and fixed radius for image of type III

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 3, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

db6089029949: added 'ideal' parameter and fixed dehomogenize + homogenize
b8f1a5629949: better check for poles in image of type III

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 3, 2020

Changed commit from 2261e04 to b8f1a56

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 5, 2020

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

f640e2129844: fixed minor spacing
c83784a29844: polynomial ring can be passed to projective Berkovich
780b1d729844: added affine space as option for affine berk space
2b5d6ed29844: deleted trailing whitespace
c5ced6429844: added note in scheme overview
32b42aa29949: Merge branch 'berkovich_revisions' into berkovich_dynamical
3887c4d29949: Merge branch 'develop' into berkovich_dynamical
691031d29949: fixed broken constructor
a15755f29949: fixed conjugate
72f9c7d29949: more examples and new_ideal for conjugate

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 5, 2020

Changed commit from b8f1a56 to 72f9c7d

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 6, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

18cddd929949: added resultant and base_ring methods

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 6, 2020

Changed commit from 72f9c7d to 18cddd9

@bhutz
Copy link

bhutz commented Aug 14, 2020

comment:11

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: z^2 + 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

@bhutz
Copy link

bhutz commented Aug 14, 2020

Reviewer: Ben Hutz

@bhutz
Copy link

bhutz commented Aug 14, 2020

comment:12

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.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 14, 2020

Changed commit from 18cddd9 to 1523bd4

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 14, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

1b0616329949: fixed prime_above in conjugate
ad55ab729949: added matrix imports
ae3400aMerge branch 'u/gh-EnderWannabe/berkovich' of git://trac.sagemath.org/sage into berkovich_number_field
614bed929844: fixed equality for Berkovich Space, added hashing for Berkovich Space, and added test suites
fbfef60Merge branch 'berkovich_number_field' into berkovich_dynamical
2f7742bMerge branch 'develop' into berkovich_dynamical
1523bd429949: fixed spacing issues, better error messages

@EnderWannabe
Copy link
Contributor Author

comment:14

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.

@EnderWannabe
Copy link
Contributor Author

Author: Alexander Galarraga

@bhutz
Copy link

bhutz commented Aug 19, 2020

comment:16

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.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 19, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

65fd85bMerge branch 'develop' into berkovich_number_field
15a3b0929844: fixed hash example
228e2fe29844: removed unused variables and added examples
e7b86f729844: added examples
650212629844: added more examples
cb0b8c6Merge branch 'berkovich_number_field' into berkovich_dynamical
3878f2e29949: added tests, removed unused imports
42ed3abMerge branch 'u/gh-EnderWannabe/berkovich_dynamical' of git://trac.sagemath.org/sage into berkovich_dynamical

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 19, 2020

Changed commit from 1523bd4 to 42ed3ab

@EnderWannabe
Copy link
Contributor Author

comment:18

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.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 9, 2020

Changed commit from 42ed3ab to 0cdf6e4

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 9, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

c274cbeMerge branch 'develop' into berkovich_dynamical
0cdf6e429949: fixed patchbot errors

@bhutz
Copy link

bhutz commented Sep 16, 2020

comment:20

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

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 16, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

94b3c8d29949: fixed test failure caused by 30165

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 16, 2020

Changed commit from 0cdf6e4 to 94b3c8d

@mkoeppe mkoeppe modified the milestones: sage-9.2, sage-9.3 Oct 24, 2020
@mkoeppe
Copy link
Member

mkoeppe commented Feb 13, 2021

comment:23

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

@mkoeppe mkoeppe modified the milestones: sage-9.3, sage-9.4 Feb 13, 2021
@mkoeppe
Copy link
Member

mkoeppe commented Jul 19, 2021

comment:24

Setting a new milestone for this ticket based on a cursory review.

@mkoeppe mkoeppe modified the milestones: sage-9.4, sage-9.5 Jul 19, 2021
@bhutz
Copy link

bhutz commented Aug 23, 2021

comment:25

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.

@vbraun
Copy link
Member

vbraun commented Aug 31, 2021

Changed branch from u/gh-EnderWannabe/berkovich_dynamical to 94b3c8d

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants