Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions diophantine_classifier/data/families/binary-qf-representation.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Family: Representation by a binary quadratic form
# Schema: see data/families/README.md; prose documentation in docs/FAMILIES.md.
# References are keys into data/references.bib, each with a 'why' annotation.
slug: binary-qf-representation
name: Representation by a binary quadratic form
priority: 1
status: algorithmic
class: quadratic
form: a*x^2 + b*x*y + c*y^2 = n
parents:
- binary-quadratic
matcher: true
methods:
- reduction theory
- Cornacchia
- class groups
software:
sage: BinaryQF([a,b,c]).solve_integer(n)
pari: qfbsolve, qfbcornacchia
code:
sage: BinaryQF([{a}, {b}, {c}]).solve_integer({n})
pari: qfbsolve(Qfb({a}, {b}, {c}), {n}, 1)
examples:
- 3*x^2 + 7*y^2 = 19
references:
- key: Cox1989
why: 'which n are represented: the class field theory of x^2 + ny^2'
- key: Cornacchia1908
why: the classical algorithm for representations by definite forms
36 changes: 36 additions & 0 deletions diophantine_classifier/data/families/elliptic-weierstrass.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Family: Elliptic curve in Weierstrass form
# Schema: see data/families/README.md; prose documentation in docs/FAMILIES.md.
# References are keys into data/references.bib, each with a 'why' annotation.
slug: elliptic-weierstrass
name: Elliptic curve in Weierstrass form
priority: 1
status: algorithmic
class: genus1
form: y^2 + a1*x*y + a3*y = x^3 + a2*x^2 + a4*x + a6
parents:
- genus-one-curve
matcher: true
lmfdb: ec.q
methods:
- Mordell-Weil descent
- elliptic logarithms for integral points
software:
sage: EllipticCurve(...).gens(); .integral_points(); .S_integral_points()
pari: ellrank, ellratpoints
magma: MordellWeilShaInformation; IntegralPoints
code:
sage: |
E = EllipticCurve({ainvs})
E.gens(); E.integral_points(both_signs=True)
magma: |
E := EllipticCurve({magma_ainvs});
IntegralPoints(E);
examples:
- y^2 + y = x^3 - x^2 - 10*x - 20
references:
- key: Cremona1997
why: descent algorithms (mwrank) for the Mordell-Weil group
- key: StroekerTzanakis1994
why: the elliptic-logarithm method for integral points
- key: GebelPethoZimmer1994
why: independent introduction of the elliptic-logarithm method
29 changes: 29 additions & 0 deletions diophantine_classifier/data/families/hyperelliptic.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Family: Hyperelliptic curve
# Schema: see data/families/README.md; prose documentation in docs/FAMILIES.md.
# References are keys into data/references.bib, each with a 'why' annotation.
slug: hyperelliptic
name: Hyperelliptic curve
priority: 1
status: effective
class: curve
form: y^2 = f(x), deg f >= 5
parents:
- superelliptic
matcher: true
methods:
- Baker (integral points)
- Chabauty-Coleman + MW sieve (rational points)
software:
magma: IntegralPoints (genus 2); Chabauty
pari: hyperellratpoints
code:
magma: |
C := HyperellipticCurve(Polynomial({magma_coeffs}));
J := Jacobian(C); RankBound(J);
examples:
- y^2 = x^7 + 3
references:
- key: Baker1969
why: effective bounds for integral points
- key: McCallumPoonen2012
why: the Chabauty-Coleman method for rational points
30 changes: 30 additions & 0 deletions diophantine_classifier/data/families/legendre.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Family: Legendre equation (diagonal ternary quadratic)
# Schema: see data/families/README.md; prose documentation in docs/FAMILIES.md.
# References are keys into data/references.bib, each with a 'why' annotation.
slug: legendre
name: Legendre equation (diagonal ternary quadratic)
priority: 1
status: algorithmic
class: quadratic
form: a*x^2 + b*y^2 + c*z^2 = 0
parents:
- quadratic-form-zero
- diagonal-form
matcher: true
methods:
- Legendre criterion
- Holzer bounds
- conic parametrization
software:
sage: Conic([a,b,c]).has_rational_point(point=True)
pari: qfsolve
magma: HasRationalPoint
code:
sage: Conic(QQ, [{a}, {b}, {c}]).rational_point()
examples:
- x^2 + y^2 = 2*z^2
references:
- key: CremonaRusin2003
why: efficient algorithms for finding a rational point on a conic
- key: Holzer1950
why: existence of solutions of small height (Holzer's bound)
25 changes: 25 additions & 0 deletions diophantine_classifier/data/families/pell-like.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Family: Generalized Pell equation
# Schema: see data/families/README.md; prose documentation in docs/FAMILIES.md.
# References are keys into data/references.bib, each with a 'why' annotation.
slug: pell-like
name: Generalized Pell equation
priority: 1
status: algorithmic
class: quadratic
form: x^2 - D*y^2 = N
parents:
- binary-qf-representation
matcher: true
methods:
- continued fractions
- automorph orbits
software:
pari: qfbsolve(Qfb(1,0,-D), N, 1)
sage: solve_diophantine
code:
pari: qfbsolve(Qfb(1, 0, -{D}), {N}, 1)
examples:
- x^2 - 61*y^2 = 5
references:
- key: Matthews2000
why: exposition of the LMM continued-fraction algorithm for x^2 - Dy^2 = N
33 changes: 33 additions & 0 deletions diophantine_classifier/data/families/thue.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Family: Thue equation
# Schema: see data/families/README.md; prose documentation in docs/FAMILIES.md.
# References are keys into data/references.bib, each with a 'why' annotation.
slug: thue
name: Thue equation
priority: 1
status: algorithmic
class: curve
form: F(x, y) = m, F irreducible of degree >= 3
parents:
- binary-form
matcher: true
methods:
- Baker bounds + LLL (Tzanakis-de Weger
- Bilu-Hanrot)
software:
pari: thue(thueinit(f), m)
sage: gp interface to thue
magma: Thue
code:
pari: thue(thueinit({fx}, 1), {m})
magma: Solutions(Thue(Polynomial({magma_coeffs})), {m});
examples:
- x^3 + 2*y^3 = 11
references:
- key: Baker1968
why: effective bounds via linear forms in logarithms, making the finiteness algorithmic
- key: Thue1909
why: the original finiteness theorem
- key: TzanakisDeWeger1989
why: the first complete practical solution method
- key: BiluHanrot1996
why: the high-degree algorithm implemented in PARI
Loading