edgarcosta / endomorphisms

Rigorous computation of the endomorphism ring of a Jacobian
GNU General Public License v2.0
10 stars 8 forks source link

GeometricEndomorphismRepresentationCC(S) and HeuristicEndomorphismDescription(S) #33

Closed gmarus77 closed 4 years ago

gmarus77 commented 4 years ago

I have issues when trying to execute functions from Buttons.m, I am using hcperiods for the curve y^3=x^5-1 and it results in this error:

`GeometricEndomorphismRepresentationCC(S);

GeometricEndomorphismRepresentationCC( X: Complex superelliptic curve of genus 4 defined as degree 3 c... ) PeriodMatrix( X: Complex superelliptic curve of genus 4 defined as degree 3 c... ) In file "/Applications/Magma/package/endomorphisms/endomorphisms/magma/heuristi\ c/Periods.m", line 62, column 60:

F := BaseRing(Parent(XDefiningPolynomial)); CC := Parent(Fiota); ^ Runtime error in : Attribute 'iota' for this structure is valid but not assigned

edgarcosta commented 4 years ago

Did you use RationalsExtra?

See: https://github.com/edgarcosta/endomorphisms/issues/30

On Tue, 11 Feb 2020 at 12:14, gmarus77 notifications@github.com wrote:

I have issues when trying to execute functions from Buttons.m, I am using hcperiods for the curve y^3=x^5-1 for the curve and it results in this error:

`GeometricEndomorphismRepresentationCC(S);

GeometricEndomorphismRepresentationCC( X: Complex superelliptic curve of genus 4 defined as degree 3 c... ) PeriodMatrix( X: Complex superelliptic curve of genus 4 defined as degree 3 c... ) In file "/Applications/Magma/package/endomorphisms/endomorphisms/magma/heuristi c/Periods.m", line 62, column 60:

F := BaseRing(Parent(XDefiningPolynomial)); CC := Parent(Fiota); ^ Runtime error in : Attribute 'iota' for this structure is valid but not assigned

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/edgarcosta/endomorphisms/issues/33?email_source=notifications&email_token=AACO2BUGF2PTYA2ZABW7CPLRCLMFFA5CNFSM4KTE53L2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IMUDGUA, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACO2BXJ7YVNMRDYWJF4MKDRCLMFFANCNFSM4KTE53LQ .

gmarus77 commented 4 years ago

@edgarcosta I just tried to run with RationalsExtra and it provides a different error:

` Q := PolynomialRing(RationalsExtra());

f:=x^5-1; m:=3; Prec := 200; S:=SE_Curve(f,m:Prec:=Prec); HeuristicEndomorphismDescription(S); sh: gp: command not found

HeuristicEndomorphismDescription( X: Complex superelliptic curve of genus 4 defined as degree 3 c... ) GeometricEndomorphismRepresentation( X: Complex superelliptic curve of genus 4 defined as degree 3 c... ) GeometricEndomorphismRepresentation( P: [3.802183132590319647030144811670206218529742412747038064883..., F: Rational Field ) SplittingFieldExtra( aCCs: [ 1.00000000000000000000000000000000000000000000000000000000..., K: Rational Field ) ExtendSplittingFieldExtraStep( K: Rational Field, tupsa: [ <1, 1.0000000000000000000000000000000000000000000000000000..., anewCC: 0.5000000000000000000000000000000000000000000000000000000000... ) ExtendSplittingFieldExtraStepQQ( K: Rational Field, tupsa: [ <1, 1.0000000000000000000000000000000000000000000000000000..., anewCC: 0.5000000000000000000000000000000000000000000000000000000000... ) MinimalPolynomialExtra( aCC: 0.5000000000000000000000000000000000000000000000000000000000..., K: Rational Field ) RootsPari( f: x^2 - x + 1, K: Rational Field ) In file "/Applications/Magma/package/endomorphisms/endomorphisms/magma/roots.m"\ , line 10, column 10:

s := Pipe("gp -q -D timer=0", cmd); ^ Runtime error in 'Pipe': Subprocess failed with exit status 127`

gmarus77 commented 4 years ago

Executing HeuristicEndomorphismAlgebra(S) results in this error:

HeuristicEndomorphismAlgebra(S); sh: gp: command not found

HeuristicEndomorphismAlgebra( X: Complex superelliptic curve of genus 4 defined as degree 3 c... ) GeometricEndomorphismRepresentation( X: Complex superelliptic curve of genus 4 defined as degree 3 c... ) GeometricEndomorphismRepresentation( P: [3.802183132590319647030144811670206218529742412747038064883..., F: Rational Field ) SplittingFieldExtra( aCCs: [ 1.00000000000000000000000000000000000000000000000000000000..., K: Rational Field ) ExtendSplittingFieldExtraStep( K: Rational Field, tupsa: [ <1, 1.0000000000000000000000000000000000000000000000000000..., anewCC: 0.5000000000000000000000000000000000000000000000000000000000... ) ExtendSplittingFieldExtraStepQQ( K: Rational Field, tupsa: [ <1, 1.0000000000000000000000000000000000000000000000000000..., anewCC: 0.5000000000000000000000000000000000000000000000000000000000... ) MinimalPolynomialExtra( aCC: 0.5000000000000000000000000000000000000000000000000000000000..., K: Rational Field ) RootsPari( f: x^2 - x + 1, K: Rational Field ) In file "/Applications/Magma/package/endomorphisms/endomorphisms/magma/roots.m"\ , line 10, column 10:

s := Pipe("gp -q -D timer=0", cmd); ^ Runtime error in 'Pipe': Subprocess failed with exit status 127

edgarcosta commented 4 years ago

@gmarus77, do you by some chance have Sage installed on your computer?

JRSijsling commented 4 years ago

Please pull the new changes, which remove an unnecessary restriction. After this, superelliptic curves should (hopefully!) work once you follow the README.md: You need a Pari installation accessible as gp in your terminal. (This is annoying, but needed to make the number fields involved small.)

After that you can go

F := Rationals();
R<x,y> := PolynomialRing(F, 2);
f := y^3 - (x^5 - 1);
X := PlaneCurve(f);

and then follow the example file example/Buttons.m from line 72 onward. This does not need any RationalsExtra. You do need this base field when using GeometricEndomorphismRepresentationCC. However, that is not a function defined in endomorphisms/magma/heuristic/Buttons.m, but rather a more niche routine that can normally be avoided. The functions outside endomorphisms/magma/heuristic/Buttons.m that do not start with Heuristic are not yet very user-friendly and need a more hairy input.

Following the route above gives:

Curve:
Curve over Rational Field defined by
$.1^5 - $.2^3*$.3^2 - $.3^5

Heuristic endomorphism description:
<[ <1, 1> ], [
    <1, 1, [ -1, 1 ], 1, 4>
], <1, -1>, 1>

Heuristic endomorphism algebra:
Associative Algebra of dimension 1 with base ring Rational Field

Heuristic endomorphism ring:
Order of Associative Algebra of dimension 1 with base ring Rational Field
with coefficient ring Integer Ring

Heuristic endomorphism representation:
[ [*
    [1 0 0 0]
    [0 1 0 0]
    [0 0 1 0]
    [0 0 0 1],

    [1 0 0 0 0 0 0 0]
    [0 1 0 0 0 0 0 0]
    [0 0 1 0 0 0 0 0]
    [0 0 0 1 0 0 0 0]
    [0 0 0 0 1 0 0 0]
    [0 0 0 0 0 1 0 0]
    [0 0 0 0 0 0 1 0]
    [0 0 0 0 0 0 0 1]
*] ]

Heuristic field of definition of the endomorphisms:
Number Field with defining polynomial x^8 - x^7 + x^5 - x^4 + x^3 - x + 1 over
the Rational Field

Heuristic endomorphism lattice:
<[ <1, 2>, <1, 2>, <1, 2>, <1, 2> ], <8, 2>, [
    <<1, 1>, [ 1, -1, 0, 1, -1, 1, 0, -1, 1 ], [ <1, 2>, <1, 2>, <1, 2>, <1, 2>
    ], [
        <1, 8, [ 1, -1, 0, 1, -1, 1, 0, -1, 1 ], 1, 4>
    ], <1, -1>, 4>,
    <<2, 1>, [ 1, -1, 1, -1, 1 ], [ <1, 2>, <1, 2> ], [
        <1, 4, [ 1, -1, 1, -1, 1 ], 1, 4>
    ], <1, -1>, 2>,
    <<2, 1>, [ 1, 1, 2, -1, 1 ], [ <1, 2>, <1, 2> ], [
        <1, 4, [ 1, 1, 2, -1, 1 ], 1, 4>
    ], <1, -1>, 2>,
    <<2, 1>, [ -5, -15, -10, 0, 1 ], [ <1, 1>, <1, 1>, <1, 1>, <1, 1> ], [
        <1, 4, [ -5, -15, -10, 0, 1 ], 1, 4>
    ], <1, -1>, 4>,
    <<4, 1>, [ 4, -1, 1 ], [ <1, 2> ], [
        <1, 2, [ 4, -1, 1 ], 1, 4>
    ], <1, -1>, 1>,
    <<4, 1>, [ 1, -1, 1 ], [ <1, 2> ], [
        <1, 2, [ 1, -1, 1 ], 1, 4>
    ], <1, -1>, 1>,
    <<4, 2>, [ -1, -1, 1 ], [ <1, 1>, <1, 1> ], [
        <1, 2, [ -1, -1, 1 ], 1, 4>
    ], <1, -1>, 2>,
    <<8, 2>, [ -1, 1 ], [ <1, 1> ], [
        <1, 1, [ -1, 1 ], 1, 4>
    ], <1, -1>, 1>
]>

Heuristic GL_2-determination:
false
gmarus77 commented 4 years ago

@edgarcosta Yes, I have both Sage and Pari installed. @JRSijsling It seems the problem is that my Pari installation is not accessible as gp in my MacOS terminal. I am trying to figure out how to do it and will update on my progress. (hopefully, it won't take me too long)

Once again huge thanks for your help!

edgarcosta commented 4 years ago

you can make it acessible with a symlink, something like:

ln -s  /Applications/sage-dev/local/bin/gp /usr/local/bin/

On Tue, 11 Feb 2020 at 13:47, gmarus77 notifications@github.com wrote:

@edgarcosta https://github.com/edgarcosta Yes, I have both Sage and Pari installed. @JRSijsling https://github.com/JRSijsling It seems the problem is that my Pari installation is not accessible as gp in my MacOS terminal. I am trying to figure out how to do it and will update on my progress. (hopefully, it won't take me that long)

Once again huge thanks for your help!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/edgarcosta/endomorphisms/issues/33?email_source=notifications&email_token=AACO2BQ4EBVUR3D7DQ6DUMTRCLXABA5CNFSM4KTE53L2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELNTDOY#issuecomment-584790459, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACO2BU2A4M2D3Z5ZADNT7LRCLXABANCNFSM4KTE53LQ .

gmarus77 commented 4 years ago

@edgarcosta and @edgarcosta Now everything works like magic -- thank you guys! `HeuristicEndomorphismDescription(X); <[ <1, 1> ], [ <1, 1, [ -1, 1 ], 1, 4> ], <1, -1>, 1>

HeuristicEndomorphismAlgebra(X); Associative Algebra of dimension 1 with base ring Rational Field`

gmarus77 commented 4 years ago

Actually, some of the functions result in a different error, e.g. HeuristicJacobianFactors(X), IsogenyInformation(X) output the same error:

F := Rationals();
R<x,y> := PolynomialRing(F, 2); f:=y^2-(x^6-2*x^2+1); X := PlaneCurve(f);

HeuristicJacobianFactors(X);

HeuristicJacobianFactors( X: Curve over Rational Field defined by $.1^6 - 2$.1^2$.3^4 -... ) ReconstructionFromComponent( P: [2.824375141959113799483789549043428123401412424671512524842..., Q: [2.824375141959113799483789549043428123401412424671512524842..., mor: [ [1 0], [1 1 0 0] [0 0 1 1] ] ) ReconstructionFromComponentG1( P: [2.824375141959113799483789549043428123401412424671512524842..., Q: [2.824375141959113799483789549043428123401412424671512524842..., mor: [ [1 0], [1 1 0 0] [0 0 1 1] ] ) In file "/Applications/Magma/package/curve_reconstruction/magma/reconstruction.\ m", line 531, column 15:

f, aut := TernaryQuarticFromDixmierOhnoInvariants(I);

^ Runtime error: Undefined reference 'TernaryQuarticFromDixmierOhnoInvariants' in package "/Applications/Magma/package/curve_reconstruction/magma/reconstruction.\ \ m"

JRSijsling commented 4 years ago

The problem here is that the file curve_reconstruction/magma/reconstruction. m in the dependency gets read, which needs https://github.com/JRSijsling/quartic_reconstruction. You do not even need that in fact, it just gets confused by the use of the name, so that prerequisite still needs to be added.

gmarus77 commented 4 years ago

@JRSijsling Thank you once again! After updating spec with the quartic_reconstruction both functions work.