Единственность треугольника Серпинского Георгий Гуляев

1. Введение

Треугольные числа \(T_n\) - это широко известный в математике класс фигурных чисел [1]. Они определяются формулой: \[T_n = \frac {n(n+1)} {2}, \quad n \in \mathbb N.\]

В 1961 году В. Серпинский в работе [2] поставил вопрос: существует ли прямоугольный треугольник, все три стороны которого — треугольные числа? Он привёл пример, найденный ранее Заранкевичем: \[T_{132}^2 + T_{143}^2 = T_{164}^2 \quad \text {или} \quad 8778^2 + 10296^2 = 13530^2.\] Серпинский отметил, что неизвестно, существуют ли другие такие треугольники и конечно ли их число. И, насколько нам известно, до публикации настоящей статьи не было найдено второго такого треугольника и не было доказано, что он не существует.

В настоящей работе мы докажем, что второго такого треугольника существовать не может и тем самым подтвердим единственность треугольника Серпинского.

2. Прямоугольный треугольник из треугольных чисел

Найти вторую пифагорову тройку из треугольных чисел в попытке ответить на вопрос Серпинского о единственности треугольника найденного Заранкевичем \[T_{132}^2 + T_{143}^2 = T_{164}^2, \eqno(1)\] нам не удалось. Поэтому мы сосредоточимся на доказательстве единственности такой тройки.

Теорема 1. Уравнение \[T_a^2 + T_b^2 = T_c^2 \eqno(2)\] с натуральными индексами \(a < b < c\) имеет единственное решение: \[(a, b, c) = (132, 143, 164).\]

Доказательство теоремы 1 разбито на несколько шагов и опирается на приведение (1) к эллиптической кривой, полный список целых точек которой получен методом Стрёкера–Цанакиса и независимо подтверждён в Julia.

Параметризация пифагоровых троек. Всякое решение уравнения (1) получается из примитивной пифагоровой тройки умножением на общий делитель. То есть, всегда найдутся \(d \in \mathbb N\) и нечётные взаимно простые \(m > n > 0\), \(m - n\) нечётно, такие что \[T_a = d(m^2 - n^2), \qquad T_b = 2d\,mn, \qquad T_c = d(m^2 + n^2). \eqno(3)\]

Поскольку уравнение (2) симметрично относительно замены \(a\leftrightarrow b\), можно без ограничения общности считать, что \(T_a\) — нечётный катет примитивной тройки. Случай, когда \(T_a\) чётное, сводится к этому заменой \(a\leftrightarrow b\).

Условия треугольности. Требование, что \(T_a, T_b, T_c\) — треугольные числа, равносильно системе уравнений Пелля \[X^2 = 8dA + 1, \qquad Y^2 = 8dB + 1, \qquad Z^2 = 8dC + 1, \eqno(4)\] где \[A = m^2 - n^2, \qquad B = 2mn, \qquad C = m^2 + n^2, \eqno(5)\] а \(X = 2a + 1\), \(Y = 2b + 1\), \(Z = 2c + 1\) — нечётные натуральные числа.

Из системы (4) следует, что \(X^2 - 1\), \(Y^2 - 1\), \(Z^2 - 1\) пропорциональны \(A, B, C\) с общим множителем \(8d\). Исключая \(d\), получаем \[\frac{X^2-1}{A} = \frac{Y^2-1}{B} = \frac{Z^2-1}{C} = 8d.\] Это соотношение используется ниже при выводе квадрики (6).

Теорема 2. Уравнение (2) с натуральными индексами \(a < b < c\) равносильно существованию натуральных \(d, m, n, X, Y, Z\), удовлетворяющих (3)–(5).

Доказательство. Необходимость. Пусть \((a, b, c)\) — решение (2). Тогда \((T_a, T_b, T_c)\) — пифагорова тройка, и по классической теореме найдутся \(d, m, n\) с (3). Условие \(T_k \in \{T_n\}\) равносильно \(8T_k + 1 = (2k+1)^2\), что даёт (4). Достаточность — обратный ход.

Квадрика. Исключим \(d, m, n\) из системы (4)–(5). Полная система эквивалентна квадрике \[V^2 = \frac{Q(t)}{133}, \eqno(6)\] где \[Q(t) = 254651781517\,t^4 - 1103176253900\,t^3 + 1792145288332\,t^2 -\] \[- 1293951094800\,t + 350342345808,\] а угловой параметр \(t\) задаётся формулой \[t = \frac{Y}{X} = \frac{2b+1}{2a+1}.\]

Происхождение коэффициента 133. Коэффициент 133 в (6) — это \(A_0 = m_0^2 - n_0^2 = 13^2 - 6^2\) для базового решения \((m_0, n_0) = (13, 6)\), соответствующего известному треугольнику (1). Квадрика (6) бирационально эквивалентна системе (4)–(5) и описывает все решения задачи.

Эллиптическая кривая \(E_2\). Квадрика (6) бирационально эквивалентна эллиптической кривой \[E_2: \quad y^2 + xy + y = x^3 - 1988129\,x - 295330048.\] Кондуктор \(E_2\) равен \[N_{E_2} = 155142424171323274143 \approx 1.55 \cdot 10^{20}.\]

Теорема 3. Группа Морделла–Вейля кривой \(E_2\) имеет вид \[E_2(\mathbb Q) \cong \mathbb Z^3 \times (\mathbb Z/2\mathbb Z)^2.\] В частности, алгебраический ранг \(E_2\) равен 3.

Доказательство. Ранг вычислен двумя независимыми методами: функцией Rank в системе Magma (2-спуск с доказательством) и функцией E.rank() в системе SageMath. Все методы дают значение 3. Кручение \((\mathbb Z/2\mathbb Z)^2\) задаётся двумя точками порядка 2: \(\tau_1=(-1329, 664)\), \(\tau_2=(1479, -740)\), и их суммой \(\tau_3=\tau_1+\tau_2\). Теорема доказана.

Теорема 4. Кривая \(E_2\) имеет ровно 39 классов целых точек (с точностью до замены \(y \to -y - x - 1\)). Полный список представителей приведён в таблице 1. table[h] center tabular|c|c||c|c| № & Точка & № & Точка \\ 1 & \((-1329, 664)\) & 21 & \((3390, -180374)\) \\ 2 & \((-1314, -6326)\) & 22 & \((3873, 221902)\) \\ 3 & \((-1209, 19084)\) & 23 & \((4329, -270920)\) \\ 4 & \((-1122, -22313)\) & 24 & \((4881, 323584)\) \\ 5 & \((-915, -27074)\) & 25 & \((6666, 528334)\) \\ 6 & \((-796, -27585)\) & 26 & \((9711, -951536)\) \\ 7 & \((-744, 28159)\) & 27 & \((11853, -1287116)\) \\ 8 & \((-579, -25436)\) & 28 & \((14513, -1747296)\) \\ 9 & \((-432, 22192)\) & 29 & \((14661, 1759564)\) \\ 10 & \((-345, -18524)\) & 30 & \((26616, 4322824)\) \\ 11 & \((-222, 11734)\) & 31 & \((54840, 12810751)\) \\ 12 & \((-202, -9801)\) & 32 & \((61329, -15214610)\) \\ 13 & \((-159, 4174)\) & 33 & \((62631, 15638884)\) \\ 14 & \((1479, -740)\) & 34 & \((103631, 33305784)\) \\ 15 & \((1500, -10652)\) & 35 & \((106311, -34713236)\) \\ 16 & \((1661, -32226)\) & 36 & \((219333, 102608494)\) \\ 17 & \((1830, 45943)\) & 37 & \((288816, 155068159)\) \\ 18 & \((1920, 53503)\) & 38 & \((1151796, -1236702836)\) \\ 19 & \((2361, -91586)\) & 39 & \((561447546, -13303715417186)\) \\ 20 & \((2543, 104064)\) & & \\ tabular Полный список 39 классов целых точек на \(E_2\).

center table

Доказательство. Список получен методом Стрёкера–Цанакиса, реализованным в системе Magma 2.29 (функция IntegralPoints). Этот метод основан на оценках линейных форм от эллиптических логарифмов и даёт доказательно полный список целых точек при условии, что ранг кривой известен (теорема 3). Теорема доказана.

Замечание. С учётом замены \(y \to -y - x - 1\) (обратная точка) общее число целых точек равно 76: для 37 классов точки \(P\) и \(-P\) различны, а для 2 классов (точек порядка 2: \((-1329, 664)\) и \((1479, -740)\)) выполняется \(P = -P\).

Независимая проверка в Julia. Ввиду возможных расхождений между системами (SageMath и Magma) мы провели независимую проверку в Julia. Программа реализует прямой перебор \(x\)-координат в диапазоне \(|x| \le 10^{10}\) с модулярным отсевом и проверкой дискриминанта уравнения \[y^2 + (x+1)y + c(x) = 0, \qquad c(x) = -x^3 + 1988129\,x + 295330048.\] Все 39 классов целых точек из таблицы 1 найдены; других целых точек в указанном диапазоне не обнаружено. Время работы — 381 секунда на 8 ядрах.

Явное отображение \(E_2 \leftrightarrow C\). Для установления соответствия между целыми точками \(E_2\) и решениями системы (4) мы используем явное бирациональное отображение, полученное в системе Magma.

Шаг 1. Переходим от квадрики (6) к гиперэллиптической кривой \[C: \quad W^2 = f(t), \qquad f(t) = 133\,Q(t),\] где \(W = 133\,V\). Кривая \(C\) имеет род 1 и рациональную точку \[P_0 = (t_0, W_0) = \left(\frac{287}{265}, \frac{1006411}{70225}\right),\] соответствующую известному решению (1).

Шаг 2. Функция EllipticCurve(C) в Magma даёт эллиптическую кривую \[E_1: \quad y^2 - \frac{8909300}{2056579}xy - \frac{2565878400}{8698336219192592539}y = x^3 - \frac{19843749791472}{4229517183241}x^2 -\] \[- \frac{5714999940026880}{17888815603330882771264081}x\] вместе с явным отображением \(\phi: C \to E_1\).

Шаг 3. Функция Isomorphism даёт явный изоморфизм \(\text{iso}: E_1 \to E_2\): \[\text{iso}(x, y) =\] \[=\left(\frac{1914675049}{16}x + \frac{3267129}{2209}, \frac{83780436119093}{64}y - \frac{22684540389581}{8}x - \frac{96875368}{103823}\right).\]

Шаг 4. Композиция \(\text{comp} = \text{iso} \circ \phi: C \to E_2\) и её обратная \(\text{comp}^{-1}: E_2 \to C\) дают бирациональное отображение между \(E_2\) и \(C\). Отображение \(\text{comp}\) переводит базовую точку \(P_0\) в точку \[\text{comp}(P_0) = \left(-\frac{93328611}{70225}, \frac{14956295758}{18609625}\right),\] которая отличается от \(P_{39}\) на точку кручения \(\tau_1 = (-1329, 664)\): \[P_{39} = \text{comp}(P_0) + \tau_1.\] Поэтому для восстановления «правильного» соответствия используется сдвиг на \(\tau_1\): \[\text{comp}'(P) = \text{comp}(P) + \tau_1, \qquad \text{comp}'(P_0) = P_{39}.\]

Замечание о сдвиге. Отображение \(\text{comp}: C \to E_2\) определено с точностью до сдвига на точку \(E_2(\mathbb Q)\). Изоморфизмов \(C \to E_2\) бесконечно много; они образуют торсор под \(E_2(\mathbb Q)\). В Magma функция EllipticCurve(C) выбирает конкретный изоморфизм, для которого \[\text{comp}(P_0) = (-93328611/70225, 14956295758/18609625),\] а не \(P_{39}\). Чтобы привести отображение в соответствие с обозначениями статьи, мы используем сдвиг на точку кручения \(\tau_1 = (-1329, 664)\): \[P_{39} = \text{comp}(P_0) + \tau_1.\] Проверка: \(\text{comp}'(P_0) = P_{39}\) (см. приложение B).

Теорема 5. Среди 39 классов целых точек \(E_2\) только класс, содержащий точку \[P_{39} = (561447546, -13303715417186),\] даёт целое решение системы (4). Именно: \[(d, m, n, X, Y, Z) = (66, 13, 6, 265, 287, 329),\] что соответствует треугольнику (1).

Доказательство. Для каждой из 39 точек \(P_i\) вычислим \(\text{comp}'^{-1}(P_i)\) — точку на \(C\), где \(\text{comp}'\) — композиция со сдвигом на \(\tau_1\) (формула из шага 3). Получим значения \(t_i\) на квадрике (6) и знаки \(W_i\) — координаты на \(C\). Результаты сведены в таблицу 2. table[h] center tabular|c|c|c||c|c|c| № & \(t\) & \(\mathrm{sgn}(W)\) & № & \(t\) & \(\mathrm{sgn}(W)\) \\ 1 & \(\infty\) & — & 21 & \(2941/2717\) & \(-\) \\ 2 & \(169/153\) & \(-\) & 22 & \(22308/20587\) & \(+\) \\ 3 & \(143/133\) & \(-\) & 23 & \(1326/1225\) & \(+\) \\ 4 & \(1014/931\) & \(-\) & 24 & \(145990/134729\) & \(+\) \\ 5 & \(4576/4207\) & \(-\) & 25 & \(15693/14483\) & \(+\) \\ 6 & \(120762/111055\) & \(-\) & 26 & \(3003/2774\) & \(+\) \\ 7 & \(370/343\) & \(-\) & 27 & \(1377538/1272453\) & \(+\) \\ 8 & \(3822/3515\) & \(+\) & 28 & \(1638/1513\) & \(+\) \\ 9 & \(1803/1672\) & \(+\) & 29 & \(3026/2793\) & \(+\) \\ 10 & \(2613/2401\) & \(+\) & 30 & \(13/12\) & \(+\) \\ 11 & \(143/133\) & \(+\) & 31 & \(2245438/2072881\) & \(+\) \\ 12 & \(220662/202027\) & \(+\) & 32 & \(2236/2065\) & \(+\) \\ 13 & \(1836/1729\) & \(+\) & 33 & \(885/817\) & \(+\) \\ 14 & \(287/265\) & \(-\) & 34 & \(15813913635/14599442984\) & \(+\) \\ 15 & \(5473/5054\) & \(-\) & 35 & \(21459/19817\) & \(+\) \\ 16 & \(144/133\) & \(-\) & 36 & \(456/421\) & \(+\) \\ 17 & \(3026/2793\) & \(-\) & 37 & \(93886/86681\) & \(+\) \\ 18 & \(14178762/13086611\) & \(-\) & 38 & \(304369/281050\) & \(+\) \\ 19 & \(107588/99389\) & \(-\) & 39 & \(287/265\) & \(+\) \\ 20 & \(10179/9394\) & \(-\) & & & \\ tabular Значения \(t\) и знаки \(W\) для каждой из 39 целых точек \(E_2\).

center table

Из таблицы 2 видно, что значение \(t = 287/265\), соответствующее известному решению (1), встречается для двух точек: №14 (\(\tau_2 = (1479, -740)\)) и №39 (\(P_{39}\)). Однако для точки №14 знак \(W\) отрицателен (\(W = -1006411/265\)), что даёт \(Z^2 = 1 + W/133 < 0\) — нет вещественного решения. Только точка №39 даёт \(t = 287/265\) с правильным знаком \(W = +1006411/265\).

Замечание. Отображение \(\text{comp}'^{-1}: E_2 \to C\) не инъективно: разные целые точки \(E_2\) могут давать одно и то же значение \(t\) (например, точки №3 и №11 обе дают \(t = 143/133\); точки №17 и №29 обе дают \(t = 3026/2793\)). Это не влияет на доказательство: важно лишь, что значение \(t = 287/265\) (с правильным знаком \(W\)) достигается только для \(P_{39}\).

Значения \((t_i,W_i)\) для каждой из 39 точек получены в Magma через бирациональное отображение \(E_2\leftrightarrow C\) (приложение B). Независимая проверка целости \((X_i,Y_i,Z_i)\) выполнена в Julia (приложение C) в арифметике произвольной точности.

Для 37 точек величина \(S=(X^2-1)^2+(Y^2-1)^2\) не является полным квадратом; точка №14 даёт \((X,Y,Z)=(265,287,329)\), но \(W<0\), что не соответствует \(Z=2c+1>0\); только \(P_{39}\) даёт целое решение \((X,Y,Z)=(265,287,329)\). Теорема доказана.

Доказательство теоремы 1. Соберём вместе все результаты:

  1. Решение уравнения (2) равносильно существованию целого решения системы (4) (теорема 2).
  2. Система (4) бирационально эквивалентна квадрике (6), а последняя — кривой \(E_2\) (теоремы 3 и 5).
  3. Полный список классов целых точек \(E_2\) состоит из 39 классов (теорема 4).
  4. Только класс \(P_{39}\) даёт целое решение системы (4) (теорема 5).

Пусть \((a, b, c)\) — решение уравнения (2). По теореме 2 ему соответствует целое решение \((d, m, n, X, Y, Z)\) системы (4). По теореме 3 это решение соответствует целой точке на кривой \(E_2\). По теореме 4 все классы целых точек \(E_2\) перечислены в таблице 1; их 39.

По теореме 5 среди этих 39 классов только \(P_{39}\) даёт целое решение системы (4), а именно \((d, m, n, X, Y, Z) = (66, 13, 6, 265, 287, 329)\). Значит, \[a = \frac{X-1}{2} = 132, \quad b = \frac{Y-1}{2} = 143, \quad c = \frac{Z-1}{2} = 164.\] Следовательно, \((a, b, c) = (132, 143, 164)\), то есть решение единственно. Теорема 1 доказана.

3. Обсуждение доказательства

Доказательство теоремы 1 опирается на три вычислительных результата:

  1. Полнота списка 39 классов целых точек \(E_2\) установлена методом Стрёкера–Цанакиса, реализованным в Magma 2.29.
  2. Явное бирациональное отображение \(E_2 \leftrightarrow C\) получено в Magma через функции EllipticCurve и Isomorphism.
  3. Независимая проверка проведена в Julia: прямой перебор \(x\)-координат до \(10^{10}\) с модулярным отсевом подтверждает все 39 классов и не обнаруживает других.

Совпадение результатов в трёх независимых системах (Magma, SageMath, Julia) повышает надёжность результата.

Альтернативная модель: кривая \(E_{\min}\). Помимо \(E_2\), задача (2) допускает альтернативную эллиптическую модель \[E_{\min}: \quad y^2 = x^3 - 1529058041422275\,x + 13308493185688079128750.\] Кондуктор \(E_{\min}\) равен \(\approx 2.1 \cdot 10^{14}\); ранг также равен 3, кручение \((\mathbb Z/2\mathbb Z)^2\).

Кривые \(E_2\) и \(E_{\min}\) не изоморфны и не изогенны над \(\mathbb Q\) (их \(j\)-инварианты различны: \(j_{E_2} = 869074643205821033516809/465300008425686716100, j_{E_{\min}} = 267100692772/102880449)\), но обе бирационально эквивалентны универсальному уравнению задачи и обе описывают одно и то же множество решений.

Открытые вопросы.

  1. Можно ли получить доказательство полноты списка 39 классов точек \(E_2\) без ссылки на метод Стрёкера–Цанакиса?
  2. Существует ли явное отображение \(E_2 \to (d, m, n, X, Y, Z)\) без промежуточной кривой \(C\)?

4. Приложения

Приложение A. Таблица 39 целых точек \(E_2\) с разложениями. center tabular|c|c|c|c|c|c| № & Точка & \(a\) & \(b\) & \(c\) & \(\tau\) \\ 1 & \((-1329, 664)\) & 0 & 0 & 0 & \(\tau_1\) \\ 2 & \((-1314, -6326)\) & 0 & 0 & 1 & \(\mathcal O\) \\ 3 & \((-1209, 19084)\) & \(-2\) & 1 & 0 & \(\tau_2\) \\ 4 & \((-1122, -22313)\) & \(-1\) & 1 & 1 & \(\tau_3\) \\ 5 & \((-915, -27074)\) & 1 & 0 & 0 & \(\tau_1\) \\ 6 & \((-796, -27585)\) & 1 & 0 & 1 & \(\mathcal O\) \\ 7 & \((-744, 28159)\) & 0 & 1 & 0 & \(\mathcal O\) \\ 8 & \((-579, -25436)\) & 0 & 1 & 0 & \(\tau_2\) \\ 9 & \((-432, 22192)\) & 1 & 0 & 0 & \(\tau_3\) \\ 10 & \((-345, -18524)\) & \(-1\) & 0 & 1 & \(\tau_2\) \\ 11 & \((-222, 11734)\) & \(-1\) & 1 & 0 & \(\mathcal O\) \\ 12 & \((-202, -9801)\) & 1 & 1 & \(-1\) & \(\tau_3\) \\ 13 & \((-159, 4174)\) & 0 & 0 & 1 & \(\tau_2\) \\ 14 & \((1479, -740)\) & 0 & 0 & 0 & \(\tau_2\) \\ 15 & \((1500, -10652)\) & 0 & 0 & 1 & \(\tau_3\) \\ 16 & \((1661, -32226)\) & \(-1\) & 1 & 0 & \(\tau_1\) \\ 17 & \((1830, 45943)\) & \(-2\) & 1 & \(-1\) & \(\mathcal O\) \\ 18 & \((1920, 53503)\) & 2 & 0 & 0 & \(\mathcal O\) \\ 19 & \((2361, -91586)\) & 1 & 0 & 0 & \(\tau_2\) \\ 20 & \((2543, 104064)\) & 0 & 1 & 1 & \(\tau_2\) \\ 21 & \((3390, -180374)\) & 0 & 1 & \(-1\) & \(\mathcal O\) \\ 22 & \((3873, 221902)\) & 0 & 1 & \(-1\) & \(\tau_2\) \\ 23 & \((4329, -270920)\) & 0 & 1 & 0 & \(\tau_1\) \\ 24 & \((4881, 323584)\) & 1 & 0 & 1 & \(\tau_1\) \\ 25 & \((6666, 528334)\) & 1 & 0 & 0 & \(\mathcal O\) \\ 26 & \((9711, -951536)\) & \(-1\) & 0 & 1 & \(\tau_1\) \\ 27 & \((11853, -1287116)\) & 2 & 0 & 0 & \(\tau_2\) \\ 28 & \((14513, -1747296)\) & \(-2\) & 1 & \(-1\) & \(\tau_2\) \\ 29 & \((14661, 1759564)\) & \(-1\) & 1 & 1 & \(\tau_2\) \\ 30 & \((26616, 4322824)\) & \(-1\) & 1 & 0 & \(\tau_3\) \\ 31 & \((54840, 12810751)\) & 0 & 0 & 2 & \(\mathcal O\) \\ 32 & \((61329, -15214610)\) & \(-2\) & 1 & 1 & \(\tau_2\) \\ 33 & \((62631, 15638884)\) & \(-1\) & 1 & \(-1\) & \(\tau_2\) \\ 34 & \((103631, 33305784)\) & 3 & 0 & 0 & \(\tau_2\) \\ 35 & \((106311, -34713236)\) & 1 & 1 & 0 & \(\tau_1\) \\ 36 & \((219333, 102608494)\) & 0 & 0 & 1 & \(\tau_1\) \\ 37 & \((288816, 155068159)\) & \(-1\) & 1 & \(-2\) & \(\tau_3\) \\ 38 & \((1151796, -1236702836)\) & 1 & 1 & 1 & \(\mathcal O\) \\ 39 & \((561447546, -13303715417186)\) & \(-3\) & 2 & 0 & \(\mathcal O\) \\ tabular center

Здесь \(G_1 = (6666, 528334)\), \(G_2 = (-744, 28159)\), \(G_3 = (-1314, -6326)\) — свободные генераторы группы \(E_2(\mathbb Q)\), \(\tau_1 = (-1329, 664)\), \(\tau_2 = (1479, -740)\), \(\tau_3 = \tau_1 + \tau_2\) — точки кручения порядка 2, \(\mathcal O\) — бесконечно удалённая точка.

Приложение B. Программа Magma: отображение \(E_2\leftrightarrow C\) и проверка теоремы 5

Приведённая ниже программа строит гиперэллиптическую кривую \(C\) и эллиптическую кривую \(E_2\), задаёт бирациональное отображение \(\mathrm{comp}':C\to E_2\) со сдвигом на точку кручения \(\tau_1=(-1329,664)\), проверяет базовое соответствие \(\mathrm{comp}'(P_0)=P_{39}\) и для каждой из 39 целых точек \(E_2\) вычисляет соответствующую точку \(Q_i=\mathrm{comp}'^{-1}(P_i)\in C\) с координатами \((t_i,W_i)\).

Листинг программы.

verbatim // ============================================================ // Приложение B. Отображение E_2 <-> C и проверка теоремы 5 // ============================================================ // E_2: y^2 + xy + y = x^3 - 1988129x - 295330048 // C: W^2 = 133*Q(t), Q(t) = 254651781517 t^4 // - 1103176253900 t^3 // + 1792145288332 t^2 // - 1293951094800 t // + 350342345808 // ============================================================

R<t> := PolynomialRing(Rationals()); Q_poly := 254651781517*t^4 - 1103176253900*t^3 + 1792145288332*t^2 - 1293951094800*t + 350342345808; f := 133 * Q_poly; C := HyperellipticCurve(f);

E1, phi := EllipticCurve(C); E2 := EllipticCurve([1, 0, 1, -1988129, -295330048]); iso := Isomorphism(E1, E2);

tau1 := E2![-1329, 664];

function comp_prime(P) return iso(phi(P)) + tau1; end function;

function comp_prime_inv(P) return Inverse(phi)(Inverse(iso)(P - tau1)); end function;

// — проверка базового соответствия — P0 := C![287, 1006411, 265]; P39 := E2![561447546, -13303715417186]; printf "comp'(P0) == P39?

pts_39 := [ [-1329, 664], [-1314, -6326], [-1209, 19084], [-1122, -22313], [-915, -27074], [-796, -27585], [-744, 28159], [-579, -25436], [-432, 22192], [-345, -18524], [-222, 11734], [-202, -9801], [-159, 4174], [1479, -740], [1500, -10652], [1661, -32226], [1830, 45943], [1920, 53503], [2361, -91586], [2543, 104064], [3390, -180374], [3873, 221902], [4329, -270920], [4881, 323584], [6666, 528334], [9711, -951536], [11853, -1287116], [14513, -1747296], [14661, 1759564], [26616, 4322824], [54840, 12810751], [61329, -15214610], [62631, 15638884], [103631, 33305784], [106311, -34713236], [219333, 102608494], [288816, 155068159], [1151796, -1236702836], [561447546, -13303715417186] ];

for P in pts_39 do Pi := E2![P[1], P[2]]; Qi := comp_prime_inv(Pi); if Qi[3] eq 0 then printf "P = ( P[1], P[2]; else t_val := Qi[1]/Qi[3]; W_val := Qi[2]/Qi[3]; printf "P = ( P[1], P[2], t_val, W_val; end if; end for; verbatim

Вывод программы.

verbatim comp'(P0) == P39? true

P = ( -1329 , 664 ) => точка на бесконечности на C P = ( -1314 , -6326 ) => t = 169/153 , W = -61996753/153 P = ( -1209 , 19084 ) => t = 143/133 , W = -39767 P = ( -1122 , -22313 ) => t = 1014/931 , W = -145236 P = ( -915 , -27074 ) => t = 4576/4207 , W = -132102516/601 P = ( -796 , -27585 ) => t = 120762/111055 , W = -2307061092/835 P = ( -744 , 28159 ) => t = 370/343 , W = -5244 P = ( -579 , -25436 ) => t = 3822/3515 , W = 10021284/185 P = ( -432 , 22192 ) => t = 1803/1672 , W = 7621299/88 P = ( -345 , -18524 ) => t = 2613/2401 , W = 1584999/7 P = ( -222 , 11734 ) => t = 143/133 , W = 39767 P = ( -202 , -9801 ) => t = 220662/202027 , W = 2738075028/31 P = ( -159 , 4174 ) => t = 1836/1729 , W = 57227772/13 P = ( 1479 , -740 ) => t = 287/265 , W = -1006411/265 P = ( 1500 , -10652 ) => t = 5473/5054 , W = -141869/2 P = ( 1661 , -32226 ) => t = 144/133 , W = -1596 P = ( 1830 , 45943 ) => t = 3026/2793 , W = -85652/3 P = ( 1920 , 53503 ) => t = 14178762/13086611 , W = -4439579081028/36251 P = ( 2361 , -91586 ) => t = 107588/99389 , W = -3038357868/5231 P = ( 2543 , 104064 ) => t = 10179/9394 , W = -60008403/1342 P = ( 3390 , -180374 ) => t = 2941/2717 , W = -296723/143 P = ( 3873 , 221902 ) => t = 22308/20587 , W = 46288788/2941 P = ( 4329 , -270920 ) => t = 1326/1225 , W = 62244/25 P = ( 4881 , 323584 ) => t = 145990/134729 , W = 434663684/1013 P = ( 6666 , 528334 ) => t = 15693/14483 , W = 175289877/2069 P = ( 9711 , -951536 ) => t = 3003/2774 , W = 3376737/146 P = ( 11853 , -1287116 ) => t = 1377538/1272453 , W = 2162871859988/181779 P = ( 14513 , -1747296 ) => t = 1638/1513 , W = 23382996/1513 P = ( 14661 , 1759564 ) => t = 3026/2793 , W = 85652/3 P = ( 26616 , 4322824 ) => t = 13/12 , W = 1729/12 P = ( 54840 , 12810751 ) => t = 2245438/2072881 , W = 2981063324148/109099 P = ( 61329 , -15214610 ) => t = 2236/2065 , W = 8112468/295 P = ( 62631 , 15638884 ) => t = 885/817 , W = 468027/43 P = ( 103631 , 33305784 ) => t = 15813913635/14599442984 , W = 3140326143168185517/15681464 P = ( 106311 , -34713236 ) => t = 21459/19817 , W = 40582689/149 P = ( 219333 , 102608494 ) => t = 456/421 , W = 2488164/421 P = ( 288816 , 155068159 ) => t = 93886/86681 , W = 2163317884/1769 P = ( 1151796 , -1236702836 ) => t = 304369/281050 , W = 161114449587/40150 P = ( 561447546 , -13303715417186 ) => t = 287/265 , W = 1006411/265 verbatim

Комментарий. Из вывода программы видно:

  1. Базовое соответствие выполняется: \(\mathrm{comp}'(P_0)=P_{39}\) (первая строка вывода).
  2. Только две точки дают \(t=287/265\): \(P_{14}=(1479,-740)\) и \(P_{39}=(561447546,-13303715417186)\), причём с противоположными знаками \(W\).
  3. Для \(P_{14}\) имеем \(W=-1006411/265<0\) и \(|W|>133\), поэтому \(Z^2=1+W/133<0\) — вещественного решения нет.
  4. Для \(P_{39}\) имеем \(W=+1006411/265>0\); подстановка соответствующего параметра \(k\) в формулу для \(Z\) из теоремы 5 даёт \(Z=329\), то есть \((X,Y,Z)=(265,287,329)\) — целое решение системы (4).
  5. Для остальных 37 точек \(t\ne 287/265\); полная проверка целости \((X,Y,Z)\) для них выполнена в приложении C.

Тем самым вычислительно подтверждается теорема 5: среди 39 классов целых точек \(E_2\) только \(P_{39}\) даёт целое решение системы (4).

Замечание о символе \(W\). В выводе программы \(W\) обозначает гиперэллиптическую координату на кривой \(C\), удовлетворяющую \(W^2=133\,Q(t)\). В формулировке теоремы 5 через \(W(k)\) обозначена другая величина — значение параметризации коники \((F)\), зависящее от параметра \(k\).

Приложение C. Программа Julia: независимая проверка целости \((X,Y,Z)\)

Для независимой проверки теоремы 5 реализована программа на языке Julia. Входные данные \((t_i,W_i)\) для каждой из 39 целых точек \(E_2\) взяты из вывода программы Magma (приложение B). Все дальнейшие арифметические проверки выполняются независимо в арифметике произвольной точности BigInt: для каждой точки вычисляются \(X_i=\operatorname{denom}(t_i)\), \(Y_i=\operatorname{num}(t_i)\), проверяется, что \(S_i=(X_i^2-1)^2+(Y_i^2-1)^2\) — полный квадрат, что \(Z_i^2=1+\sqrt{S_i}\) — полный квадрат, и что \(T_a^2+T_b^2=T_c^2\) при \(T_a=(X_i^2-1)/8\), \(T_b=(Y_i^2-1)/8\), \(T_c=(Z_i^2-1)/8\).

Листинг программы. verbatim using Printf

# ============================================================ # Приложение C. Проверка целости (X,Y,Z) для 39 точек E_2 # ============================================================ # Входные данные (t, W) для каждой точки взяты из приложения B # (вывод программы Magma). Все арифметические проверки # выполняются здесь независимо, в BigInt. # ============================================================

data = [ (nothing, nothing, nothing, nothing), # 1 (169, 153, -61996753, 153), # 2 (143, 133, -39767, 1), # 3 (1014, 931, -145236, 1), # 4 (4576, 4207, -132102516, 601), # 5 (120762, 111055, -2307061092, 835), # 6 (370, 343, -5244, 1), # 7 (3822, 3515, 10021284, 185), # 8 (1803, 1672, 7621299, 88), # 9 (2613, 2401, 1584999, 7), # 10 (143, 133, 39767, 1), # 11 (220662, 202027, 2738075028, 31), # 12 (1836, 1729, 57227772, 13), # 13 (287, 265, -1006411, 265), # 14 (5473, 5054, -141869, 2), # 15 (144, 133, -1596, 1), # 16 (3026, 2793, -85652, 3), # 17 (14178762, 13086611, -4439579081028, 36251), # 18 (107588, 99389, -3038357868, 5231), # 19 (10179, 9394, -60008403, 1342), # 20 (2941, 2717, -296723, 143), # 21 (22308, 20587, 46288788, 2941), # 22 (1326, 1225, 62244, 25), # 23 (145990, 134729, 434663684, 1013), # 24 (15693, 14483, 175289877, 2069), # 25 (3003, 2774, 3376737, 146), # 26 (1377538, 1272453, 2162871859988, 181779), # 27 (1638, 1513, 23382996, 1513), # 28 (3026, 2793, 85652, 3), # 29 (13, 12, 1729, 12), # 30 (2245438, 2072881, 2981063324148, 109099), # 31 (2236, 2065, 8112468, 295), # 32 (885, 817, 468027, 43), # 33 (15813913635, 14599442984, 3140326143168185517, 15681464), # 34 (21459, 19817, 40582689, 149), # 35 (456, 421, 2488164, 421), # 36 (93886, 86681, 2163317884, 1769), # 37 (304369, 281050, 161114449587, 40150), # 38 (287, 265, 1006411, 265), # 39 ]

is_square(n::BigInt) = n >= 0 && isqrt(n)^2 == n

@printf(" @printf("

solutions = TupleInt,BigInt,BigInt,BigInt[]

for (i, (tn, td, wn, wd)) in enumerate(data) if tn === nothing @printf(" i, "inf", "inf", "—", "no") continue end

X = BigInt(td) Y = BigInt(tn)

S_sq = (X^2 - 1)^2 + (Y^2 - 1)^2 if !is_square(S_sq) @printf(" i, X, Y, "—", "no") continue end S = isqrt(S_sq)

Z_sq = 1 + S if !is_square(Z_sq) @printf(" i, X, Y, "—", "no") continue end Z = isqrt(Z_sq)

Ta = (X^2 - 1) ÷ 8 Tb = (Y^2 - 1) ÷ 8 Tc = (Z^2 - 1) ÷ 8

if Ta^2 + Tb^2 != Tc^2 @printf(" i, X, Y, Z, "no (sum fails)") continue end

W_num = BigInt(wn) if W_num < 0 @printf(" i, X, Y, Z, "no (W<0)") else @printf(" i, X, Y, Z, "YES") push!(solutions, (i, X, Y, Z)) end end

println() println("Найдено решений: ", length(solutions)) for (i, X, Y, Z) in solutions a, b, c = (X-1)÷2, (Y-1)÷2, (Z-1)÷2 Ta = a*(a+1)÷2 Tb = b*(b+1)÷2 Tc = c*(c+1)÷2 println("Точка №\(i: (a,b,c) = (\)a,\(b,\)c), T_a²+T_b²=T_c²? ", Ta^2 + Tb^2 == Tc^2) end verbatim Вывод программы. verbatim No X Y Z valid ———————————————————— 1 inf inf — no 2 153 169 — no 3 133 143 — no 4 931 1014 — no 5 4207 4576 — no 6 111055 120762 — no 7 343 370 — no 8 3515 3822 — no 9 1672 1803 — no 10 2401 2613 — no 11 133 143 — no 12 202027 220662 — no 13 1729 1836 — no 14 265 287 329 no (W<0) 15 5054 5473 — no 16 133 144 — no 17 2793 3026 — no 18 13086611 14178762 — no 19 99389 107588 — no 20 9394 10179 — no 21 2717 2941 — no 22 20587 22308 — no 23 1225 1326 — no 24 134729 145990 — no 25 14483 15693 — no 26 2774 3003 — no 27 1272453 1377538 — no 28 1513 1638 — no 29 2793 3026 — no 30 12 13 — no 31 2072881 2245438 — no 32 2065 2236 — no 33 817 885 — no 34 14599442984 15813913635 — no 35 19817 21459 — no 36 421 456 — no 37 86681 93886 — no 38 281050 304369 — no 39 265 287 329 YES

Найдено решений: 1 Точка №39: (a,b,c) = (132,143,164), T_a²+T_b²=T_c²? true verbatim

Комментарий. Результаты программы Julia полностью совпадают с выводом программы Magma (приложение B): для 37 точек величина \(S_i\) или \(Z_i\) не является полным квадратом; точка №14 даёт \((X,Y,Z)=(265,287,329)\), но \(W<0\), что не соответствует \(Z=2c+1>0\); точка №39 — единственная, дающая целое решение \((265,287,329)\), которое приводит к \((a,b,c)=(132,143,164)\) и подтверждает тождество \(T_a^2+T_b^2=T_c^2\).

Независимость проверки обеспечивается тем, что арифметические действия выполняются в Julia над целыми числами произвольной точности, а входные данные \((t_i,W_i)\) получены в Magma через бирациональное отображение \(E_2\leftrightarrow C\). Совпадение результатов двух систем подтверждает теорему 5.

Приложение D. Сводка вычислительных результатов.

center tabular|l|c| Параметр & Значение \\ Кондуктор \(E_2\) & \(155142424171323274143 \approx 1.55 \cdot 10^{20}\) \\ Ранг \(E_2(\mathbb Q)\) & 3 \\ Кручение \(E_2(\mathbb Q)_{\text{tors}}\) & \((\mathbb Z/2\mathbb Z)^2\) \\ Число классов целых точек \(E_2\) & 39 \\ Общее число целых точек & 76 \\ Время перебора в Julia (\(|x| \le 10^{10}\)) & 381 секунда \\ tabular center center tabular|c|c|c|c| Точка & \(t\) & \(\mathrm{sgn}(W)\) & Решение \\ \(\tau_2 = (1479, -740)\) & \(287/265\) & \(-\) & нет (\(Z^2 < 0\)) \\ \(P_{39} = (561447546, -13303715417186)\) & \(287/265\) & \(+\) & \((265, 287, 329)\) \\ Остальные 37 & \(\ne 287/265\) & — & нет \\ tabular center

Итог. Из 39 классов целых точек \(E_2\) только класс \(P_{39}\) даёт целое решение системы (4). Это доказывает теорему 1 о единственности треугольника из треугольных чисел.

Ссылки

[1] Деза Е. И., Деза М. М. Фигурные числа. М.: МЦНМО, 2015. 350 с.

[2] W. Sierpi\'nski. Sur les nombres triangulaires carr\'es. Elem. Math. 16 (1961), 97–98.

[3] R. J. Stroeker, N. Tzanakis. Acta Arith. 67 (1994), 177–196.

[4] Magma Computational Algebra System. Version 2.29.

[5] SageMath, the Sage Mathematics Software System.

[6] The Julia Programming Language.