Changes between Initial Version and Version 6 of Ticket #12880


Ignore:
Timestamp:
04/08/14 00:22:34 (5 years ago)
Author:
pbruin
Comment:

It should be very easy to fix in principle:

  • src/sage/schemes/elliptic_curves/ell_curve_isogeny.py

    diff --git a/src/sage/schemes/elliptic_curves/ell_curve_isogeny.py b/src/sage/schemes/e
    index 5cdbbdf..a729d3a 100644
    a b class EllipticCurveIsogeny(Morphism): 
    13221322        self._codomain = self.__E2
    13231323
    13241324        # sets up the parent
    1325         parent = homset.Hom(self.__E1(0).parent(), self.__E2(0).parent())
     1325        parent = homset.Hom(self.__E1, self.__E2)
    13261326        Morphism.__init__(self, parent)
    13271327
    1328         return
    1329 
    1330 
    13311328    # initializes the base field
    13321329    def __init_algebraic_structs(self, E):
    13331330        r"""

The only problem is that this breaks testing for equality of isogenies, due to #11474. Suppose E -> E1 is an isogeny and E2 is an elliptic curve that is equal but not identical to E1. Then Hom(E, E1) and Hom(E, E2) will also be equal but not identical; since the coercion model assumes uniqueness of parents, it will never regard corresponding elements of Hom(E, E1) and Hom(E, E2) as equal.

For some reason the Hom sets between the groups of points, on the other hand, are identical, which explains why equality testing currently is not broken.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #12880

    • Property Cc pbruin added
    • Property Component changed from number theory to elliptic curves
    • Property Priority changed from major to minor
    • Property Dependencies changed from to #11474
    • Property Milestone changed from sage-5.11 to sage-6.2
    • Property Owner changed from was to cremona
  • Ticket #12880 – Description

    initial v6  
    1 In the following example, the domain and codomain of phi does not match with that of its parent::
    2 
     1In the following example, the domain and codomain of phi do not match those of its parent::
    32{{{
    4     sage: sage: E = EllipticCurve(j=GF(7)(0))
    5     sage: phi = EllipticCurveIsogeny(E, [E(0), E((0,1)), E((0,-1))])
    6     sage: phi.parent()
    7     Set of Morphisms from Abelian group of points on Elliptic Curve defined by y^2 = x^3 + 1 over Finite Field of size 7 to Abelian group of points on Elliptic Curve defined by y^2 = x^3 + 1 over Finite Field of size 7 in Category of hom sets in Category of Schemes
    8     sage: phi.parent().domain()
    9     Abelian group of points on Elliptic Curve defined by y^2 = x^3 + 1 over Finite Field of size 7
    10     sage: phi.domain()
    11     Elliptic Curve defined by y^2 = x^3 + 1 over Finite Field of size 7
    12     sage: phi.parent().codomain()
    13     Abelian group of points on Elliptic Curve defined by y^2 = x^3 + 1 over Finite Field of size 7
    14     sage: phi.codomain()
    15     Elliptic Curve defined by y^2 = x^3 + 1 over Finite Field of size 7
     3sage: E = EllipticCurve(j=GF(7)(0))
     4sage: phi = EllipticCurveIsogeny(E, [E(0), E((0,1)), E((0,-1))])
     5sage: phi.parent()
     6Set of Morphisms from Abelian group of points on Elliptic Curve defined by y^2 = x^3 + 1 over Finite Field of size 7 to Abelian group of points on Elliptic Curve defined by y^2 = x^3 + 1 over Finite Field of size 7 in Category of hom sets in Category of Schemes
     7sage: phi.parent().domain()
     8Abelian group of points on Elliptic Curve defined by y^2 = x^3 + 1 over Finite Field of size 7
     9sage: phi.domain()
     10Elliptic Curve defined by y^2 = x^3 + 1 over Finite Field of size 7
     11sage: phi.parent().codomain()
     12Abelian group of points on Elliptic Curve defined by y^2 = x^3 + 1 over Finite Field of size 7
     13sage: phi.codomain()
     14Elliptic Curve defined by y^2 = x^3 + 1 over Finite Field of size 7
    1615}}}