Isomorphisms

Isomorphisms and automorphisms of plane quartics have been implemented following the covariant method due to van Rijnswou [vR01] that is also used in another form in the reconstruction algorithms. Let C1 and C2 be two plane quartic curves over a field k. The present algorithm first checks for equality of normalized Dixmier--Ohno invariants of C1 and C2, since if this equality does not hold, no isomorphisms can exist.

If this condition is satisfied, the algorithms first try to find the actual isomorphisms C1 to C2 under the assumption that I12 != 0. In this case, [vR01] shows that the use of a suitable covariant reduces this question to finding transformations between certain binary forms associated to C1 and C2, which leads us to the same computation of elements in GL2 (k). In non-generic cases, a direct Gröbner basis method due to Michael Stoll is used.

Once again the algorithms admit both a version over the base field and a geometric version, with the latter finding the isomorphisms over the algebraic closure of k. Both versions are very efficient over finite fields, and the version over the base field is also reasonably fast for k = Q. By contrast, finding geometric isomorphisms between plane quartic curves over the rationals can still take a fair amount of time. For more general fields, the implementation still takes too long, and our functions therefore restrict considerations to the cases where k is either finite or the rational field.

IsIsomorphicPlaneQuartics(X1, X2) : CrvPln , CrvPln -> BoolElt, SeqEnum
IsIsomorphicTernaryQuartics(f1, f2) : RngMPolElt , RngMPolElt -> BoolElt, SeqEnum
    geometric: BoolElt                  Default: false
Determine if the plane quartic curves X1 and X2 or the ternary quartics f1 and f2 are isomorphic, and return the isomorphism between them. If the flag geometric is set to true, then test is performed over the algebraic closure of the base field, over which the isomorphisms are then determined as well.
IsomorphismsOfPlaneQuartics(X1, X2) : CrvPln , CrvPln -> SeqEnum
IsomorphismsOfTernaryQuartics(f1, f2) : RngMPolElt , RngMPolElt -> SeqEnum
    geometric: BoolElt                  Default: false
Return the isomorphisms between the plane quartic curves X1 and X2 or between then ternary quartic forms f1 and f2. If the flag geometric is set to true, then the isomorphisms over the algebraic closure of the base field are returned.
AutomorphismsOfPlaneQuartic(X) : CrvPln -> SeqEnum
AutomorphismsOfTernaryQuartic(f) : RngMPolElt -> SeqEnum
    geometric: BoolElt                  Default: false
Return the automorphisms of the plane quartic curve X or the ternary quartic form f as matrices. If the flag geometric is set to true, then the automorphisms over the algebraic closure of the base field are returned.
AutomorphismGroupOfPlaneQuartic(X) : CrvPln -> GrpPerm, Map
AutomorphismGroupOfTernaryQuartic(f) : RngMPolElt -> GrpPerm, Map
    geometric: BoolElt                  Default: false
    explicit: BoolElt                   Default: false
Return the automorphisms of the plane quartic curve X or the ternary quartic form f as an abstract group, along with a map from said group to a matrix group if the flag explicit is set to true. If the flag geometric is set to true, then the automorphisms over the algebraic closure of the base field are returned.

Example CrvG3_auts-ex (H133E4)

We determine the automorphisms of a plane quartic over the rationals.
> P<x,y,z> := PolynomialRing(Rationals(), 3);
> PP := ProjectiveSpace(P);
> C := Curve(PP, x^3*y+y^3*z+z^3*x);
> aut, phi := AutomorphismGroupOfPlaneQuartic(C : geometric:=true,
>                  explicit := true);
> aut;
Permutation group aut acting on a set of cardinality 8
Order = 168 = 2^3 * 3 * 7
    (2, 3, 4)(5, 8, 7)
    (2, 4, 5)(3, 6, 7)
    (1, 2)(3, 7)(4, 5)(6, 8)
> GroupName(aut);
PSL(2,7)
> [phi(aut.i) : i in [1..Ngens(aut)]];
[
    [0 0 1]
    [1 0 0]
    [0 1 0],
    [0 0 -r1^5 - r1^4 - r1^3 - r1^2 - r1 - 1]
    [1 0 0]
    [0 r1^4 0],
    [1 r1^2 + r1 -r1^5 - r1^4 - r1^3]
    [-r1^4 - r1^3 - r1^2 - r1 - 1 r1^5 + r1^4 + r1^3 + r1^2 -r1^5 - r1^4 - r1^3
        - r1^2 - r1 - 1]
    [-r1^4 - r1^3 - r1^2 r1 r1^4 + r1^3]
]
AutomorphismGroupOfPlaneQuartic(X, Autos) : CrvPln , SeqEnum -> GrpPerm, Map
AutomorphismGroupOfTernaryQuartic(f, Autos) : RngMPolElt , SeqEnum -> GrpPerm, Map
    explicit: BoolElt                   Default: false
Return the automorphisms Autos of the plane quartic curve X or the ternary quartic form f as an abstract group, along with a map from said group to a matrix group if the flag explicit is set to true.
GeometricAutomorphismGroup(C) : Crv -> GrpPerm
Compute the geometric automorphism group of the elliptic, hyperelliptic, or plane quartic curve C.
V2.28, 13 July 2023