diff --git a/diophantine_classifier/data/families/s-unit.yaml b/diophantine_classifier/data/families/s-unit.yaml new file mode 100644 index 0000000..dc5edc2 --- /dev/null +++ b/diophantine_classifier/data/families/s-unit.yaml @@ -0,0 +1,21 @@ +# Family: S-unit 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: s-unit +name: S-unit equation +priority: 2 +status: algorithmic +class: expdioph +form: a*u + b*v = c, u, v S-units +parents: +- exponential-diophantine +matcher: true +methods: +- Baker + LLL (de Weger) +software: + sage: K.solve_S_unit_equation(S) (number fields) +references: +- key: deWeger1987 + why: the practical LLL-based algorithm +- key: Alvarado2021 + why: the Sage implementation for arbitrary number fields diff --git a/docs/FAMILIES.md b/docs/FAMILIES.md index 86434cf..2c47b50 100644 --- a/docs/FAMILIES.md +++ b/docs/FAMILIES.md @@ -257,6 +257,16 @@ perfect power). **References.** Schinzel–Tijdeman 1976; Erdős–Selfridge 1975; Shorey–Tijdeman, *Exponential Diophantine Equations* (1986) — the standard reference for this whole section. +### `s-unit` — S-unit equations — P2, algorithmic +**Form.** ax + by = c with x, y S-units (over ℤ: ± products of fixed primes; +generally in a number field K with finite S). +**Status.** Finite (Siegel–Mahler), effective (Baker); practical algorithm +de Weger 1987 (LLL); implemented in Sage for arbitrary K, S. The workhorse +that many other families reduce to (Thue–Mahler, curves via étale covers). +**Software.** Sage: `K.solve_S_unit_equation(S)`; Magma: S-unit machinery. +**References.** Mahler 1933; de Weger 1987; Evertse–Győry, *Unit Equations* (2015); +Alvarado et al. 2019 (Sage implementation). + ### `exponential-diophantine` — Purely exponential equations — P2, effective (few terms) **Form.** c₁·b₁^{n₁} + ⋯ + c_k·b_k^{n_k} = c (fixed bases, unknown exponents); e.g. 2ᵃ + 3ᵇ = 5ᶜ, Goormaghtigh-type, Jeśmanowicz conjecture instances. diff --git a/tests/test_classify.py b/tests/test_classify.py index e3d6386..25dbf85 100644 --- a/tests/test_classify.py +++ b/tests/test_classify.py @@ -40,6 +40,7 @@ ("x^4 + y^4 + z^4 = w^4", "", "equal-sums-like-powers"), # Elkies # polynomial-exponential ("x^3 - 4 = y^n", "", "power-values"), + ("2^a + 3^b = 5^c", "", "s-unit"), # unit fractions ("1/x + 1/y + 1/z = 1", "", "egyptian-fractions"), ]