Skip to content
This repository has been archived by the owner on Jan 30, 2023. It is now read-only.

Commit

Permalink
Made the ramification type compute over a sufficiently large field by…
Browse files Browse the repository at this point in the history
… definition.
  • Loading branch information
aodesky committed Nov 18, 2019
1 parent b9b2029 commit f7ec202
Showing 1 changed file with 17 additions and 7 deletions.
24 changes: 17 additions & 7 deletions src/sage/dynamics/arithmetic_dynamics/projective_ds.py
Original file line number Diff line number Diff line change
Expand Up @@ -3085,19 +3085,26 @@ def critical_points(self, R=None):
crit_points = [P(Q) for Q in X.rational_points()]
return crit_points

def ramification_type(self,R=None):
def ramification_type(self,R=None,stable=True):
r"""
Return the ramification type of endomorphisms of
`\mathbb{P}^1`. Only branch points defined over ``R``
contribute to the ramification type if specified,
otherwise ``R`` is the ring of definition for self.
Note that branch points defined over ``R`` may not
be geometric points.
be geometric points if stable not set to True.
If ``R`` is specified, ``stable`` is ignored.
If ``stable``, then this will return the ramification
type over an extension which splits the Galois orbits
of critical points.
INPUT:
- ``R`` -- ring or morphism (optional)
- ``split`` -- boolean (optional)
OUTPUT:
Expand All @@ -3118,7 +3125,7 @@ def ramification_type(self,R=None):
sage: P.<x,y> = ProjectiveSpace(QQ, 1)
sage: F = DynamicalSystem_projective([(x + y)^4, 16*x*y*(x-y)^2])
sage: F.ramification_type()
[[2], [2], [4]]
[[2], [2, 2], [4]]
sage: P.<x,y> = ProjectiveSpace(QQ, 1)
sage: F = DynamicalSystem_projective([(x + y)*(x - y)^3, y*(2*x+y)^3])
Expand All @@ -3127,15 +3134,18 @@ def ramification_type(self,R=None):
sage: F = DynamicalSystem_projective([x^3-2*x*y^2 + 2*y^3, y^3])
sage: F.ramification_type()
[[2], [3]]
sage: L,phi = F.field_of_definition_critical(return_embedding=True)
sage: F.ramification_type(phi)
[[2], [2], [3]]
sage: F.ramification_type(R=F.base_ring())
[[2], [3]]
"""
# Change base ring if specified.
if R is None:
F = self
if stable:
L,phi = self.field_of_definition_critical(return_embedding=True)
F = self.change_ring(phi)
else:
F = self
else:
F = self.change_ring(R)

Expand Down

0 comments on commit f7ec202

Please sign in to comment.