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

В 1961 году В. Серпинский поставил вопрос о существовании прямоугольного треугольника, все три стороны которого являются треугольными числами, и привёл пример, найденный ранее Заранкевичем: $T_{132}^2&#43;T_{143}^2=T_{164}^2,\qquad 8778^2&#43;10296^2=13530^2.$ Вопрос о существовании других таких треугольников и конечности их числа оставался открытым. В настоящей работе, при помощи анализа целых точек на соответствующей эллиптической кривой, доказывается, что этот треугольник единственный.

| Поле | Значение |
|---|---|
| Автор | Гуляев Георгий Михайлович |
| Организация | нет |
| Раздел | Математика |
| Опубликовано | 20.10.2026 |
| Идентификатор | AX-136379 |
| Лицензия | CC BY 4.0 |
| Ключевые слова | треугольные числа, теорема Пифагора, эллиптическая кривая, целые точки, метод Стрёкера–Цанакиса, треугольник Серпинского |

Полный текст (PDF): https://arxivorg.ru/upload/iblock/40b/mrpbo6kl9pt5e5mq61zwubcq5h9f9rca/%D0%A2%D1%80%D0%B5%D1%83%D0%B3%D0%BE%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA%20%D0%A1%D0%B5%D1%80%D0%BF%D0%B8%D0%BD%D1%81%D0%BA%D0%BE%D0%B3%D0%BE.pdf
Источник (HTML): https://arxivorg.ru/mathematics/edinstvennost-treugolnika-serpinskogo-2/
Архив: арХиворг.ру — открытый архив научных препринтов на русском языке.

## Полный текст

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

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 &lt; b &lt; c\) имеет единственное решение:
\[(a, b, c) = (132, 143, 164).\]

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

Параметризация пифагоровых троек. 
Всякое решение уравнения (1) получается из примитивной пифагоровой тройки умножением на общий делитель. То есть, всегда найдутся \(d \in \mathbb N\) и нечётные взаимно простые \(m &gt; n &gt; 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 &lt; b &lt; 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|
 № &amp; Точка &amp; № &amp; Точка \\ 1 &amp; \((-1329, 664)\) &amp; 21 &amp; \((3390, -180374)\) \\
2 &amp; \((-1314, -6326)\) &amp; 22 &amp; \((3873, 221902)\) \\
3 &amp; \((-1209, 19084)\) &amp; 23 &amp; \((4329, -270920)\) \\
4 &amp; \((-1122, -22313)\) &amp; 24 &amp; \((4881, 323584)\) \\
5 &amp; \((-915, -27074)\) &amp; 25 &amp; \((6666, 528334)\) \\
6 &amp; \((-796, -27585)\) &amp; 26 &amp; \((9711, -951536)\) \\
7 &amp; \((-744, 28159)\) &amp; 27 &amp; \((11853, -1287116)\) \\
8 &amp; \((-579, -25436)\) &amp; 28 &amp; \((14513, -1747296)\) \\
9 &amp; \((-432, 22192)\) &amp; 29 &amp; \((14661, 1759564)\) \\
10 &amp; \((-345, -18524)\) &amp; 30 &amp; \((26616, 4322824)\) \\
11 &amp; \((-222, 11734)\) &amp; 31 &amp; \((54840, 12810751)\) \\
12 &amp; \((-202, -9801)\) &amp; 32 &amp; \((61329, -15214610)\) \\
13 &amp; \((-159, 4174)\) &amp; 33 &amp; \((62631, 15638884)\) \\
14 &amp; \((1479, -740)\) &amp; 34 &amp; \((103631, 33305784)\) \\
15 &amp; \((1500, -10652)\) &amp; 35 &amp; \((106311, -34713236)\) \\
16 &amp; \((1661, -32226)\) &amp; 36 &amp; \((219333, 102608494)\) \\
17 &amp; \((1830, 45943)\) &amp; 37 &amp; \((288816, 155068159)\) \\
18 &amp; \((1920, 53503)\) &amp; 38 &amp; \((1151796, -1236702836)\) \\
19 &amp; \((2361, -91586)\) &amp; 39 &amp; \((561447546, -13303715417186)\) \\
20 &amp; \((2543, 104064)\) &amp; &amp; \\ 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}&#039;(P) = \text{comp}(P) + \tau_1, \qquad \text{comp}&#039;(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}&#039;(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}&#039;^{-1}(P_i)\) — точку на \(C\), где \(\text{comp}&#039;\) — композиция со сдвигом на \(\tau_1\) (формула из шага 3). Получим значения \(t_i\) на квадрике (6) и знаки \(W_i\) — координаты на \(C\). Результаты сведены в таблицу 2.
 table[h]
 center
 tabular|c|c|c||c|c|c|
 № &amp; \(t\) &amp; \(\mathrm{sgn}(W)\) &amp; № &amp; \(t\) &amp; \(\mathrm{sgn}(W)\) \\ 1 &amp; \(\infty\) &amp; — &amp; 21 &amp; \(2941/2717\) &amp; \(-\) \\
2 &amp; \(169/153\) &amp; \(-\) &amp; 22 &amp; \(22308/20587\) &amp; \(+\) \\
3 &amp; \(143/133\) &amp; \(-\) &amp; 23 &amp; \(1326/1225\) &amp; \(+\) \\
4 &amp; \(1014/931\) &amp; \(-\) &amp; 24 &amp; \(145990/134729\) &amp; \(+\) \\
5 &amp; \(4576/4207\) &amp; \(-\) &amp; 25 &amp; \(15693/14483\) &amp; \(+\) \\
6 &amp; \(120762/111055\) &amp; \(-\) &amp; 26 &amp; \(3003/2774\) &amp; \(+\) \\
7 &amp; \(370/343\) &amp; \(-\) &amp; 27 &amp; \(1377538/1272453\) &amp; \(+\) \\
8 &amp; \(3822/3515\) &amp; \(+\) &amp; 28 &amp; \(1638/1513\) &amp; \(+\) \\
9 &amp; \(1803/1672\) &amp; \(+\) &amp; 29 &amp; \(3026/2793\) &amp; \(+\) \\
10 &amp; \(2613/2401\) &amp; \(+\) &amp; 30 &amp; \(13/12\) &amp; \(+\) \\
11 &amp; \(143/133\) &amp; \(+\) &amp; 31 &amp; \(2245438/2072881\) &amp; \(+\) \\
12 &amp; \(220662/202027\) &amp; \(+\) &amp; 32 &amp; \(2236/2065\) &amp; \(+\) \\
13 &amp; \(1836/1729\) &amp; \(+\) &amp; 33 &amp; \(885/817\) &amp; \(+\) \\
14 &amp; \(287/265\) &amp; \(-\) &amp; 34 &amp; \(15813913635/14599442984\) &amp; \(+\) \\
15 &amp; \(5473/5054\) &amp; \(-\) &amp; 35 &amp; \(21459/19817\) &amp; \(+\) \\
16 &amp; \(144/133\) &amp; \(-\) &amp; 36 &amp; \(456/421\) &amp; \(+\) \\
17 &amp; \(3026/2793\) &amp; \(-\) &amp; 37 &amp; \(93886/86681\) &amp; \(+\) \\
18 &amp; \(14178762/13086611\) &amp; \(-\) &amp; 38 &amp; \(304369/281050\) &amp; \(+\) \\
19 &amp; \(107588/99389\) &amp; \(-\) &amp; 39 &amp; \(287/265\) &amp; \(+\) \\
20 &amp; \(10179/9394\) &amp; \(-\) &amp; &amp; &amp; \\ 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 &lt; 0\) — нет вещественного решения. Только точка №39 даёт \(t = 287/265\) с правильным знаком \(W = +1006411/265\).

Замечание. Отображение \(\text{comp}&#039;^{-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&lt;0\), что не соответствует \(Z=2c+1&gt;0\); только \(P_{39}\) даёт целое решение \((X,Y,Z)=(265,287,329)\). Теорема доказана.

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

Решение уравнения (2) равносильно существованию целого решения системы (4) (теорема 2).
Система (4) бирационально эквивалентна квадрике (6), а последняя — кривой \(E_2\) (теоремы 3 и 5).
Полный список классов целых точек \(E_2\) состоит из 39 классов (теорема 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 опирается на три вычислительных результата:

Полнота списка 39 классов целых точек \(E_2\) установлена методом Стрёкера–Цанакиса, реализованным в Magma 2.29.
Явное бирациональное отображение \(E_2 \leftrightarrow C\) получено в Magma через функции EllipticCurve и Isomorphism.
Независимая проверка проведена в 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)\), но обе бирационально эквивалентны универсальному уравнению задачи и обе описывают одно и то же множество решений.

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

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

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

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

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

verbatim
// ============================================================
// Приложение B. Отображение E_2 &lt;-&gt; 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&lt;t&gt; := 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 &quot;comp&#039;(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 &quot;P = (
 P[1], P[2];
 else
 t_val := Qi[1]/Qi[3];
 W_val := Qi[2]/Qi[3];
 printf &quot;P = (
 P[1], P[2], t_val, W_val;
 end if;
end for;
 verbatim

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

verbatim
comp&#039;(P0) == P39? true

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

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

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

@printf(&quot;
@printf(&quot;

solutions = TupleInt,BigInt,BigInt,BigInt[]

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

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

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

Z_sq = 1 + S
 if !is_square(Z_sq)
 @printf(&quot;
 i, X, Y, &quot;—&quot;, &quot;no&quot;)
 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(&quot;
 i, X, Y, Z, &quot;no (sum fails)&quot;)
 continue
 end

W_num = BigInt(wn)
 if W_num &lt; 0
 @printf(&quot;
 i, X, Y, Z, &quot;no (W&lt;0)&quot;)
 else
 @printf(&quot;
 i, X, Y, Z, &quot;YES&quot;)
 push!(solutions, (i, X, Y, Z))
 end
end

println()
println(&quot;Найдено решений: &quot;, 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(&quot;Точка №\(i: (a,b,c) = (\)a,\(b,\)c), T_a²+T_b²=T_c²? &quot;,
 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&lt;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&lt;0\), что не соответствует \(Z=2c+1&gt;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|
 Параметр &amp; Значение \\
 Кондуктор \(E_2\) &amp; \(155142424171323274143 \approx 1.55 \cdot 10^{20}\) \\
Ранг \(E_2(\mathbb Q)\) &amp; 3 \\
Кручение \(E_2(\mathbb Q)_{\text{tors}}\) &amp; \((\mathbb Z/2\mathbb Z)^2\) \\
Число классов целых точек \(E_2\) &amp; 39 \\
Общее число целых точек &amp; 76 \\
Время перебора в Julia (\(|x| \le 10^{10}\)) &amp; 381 секунда \\
 tabular
 center
 center 
 tabular|c|c|c|c|
 Точка &amp; \(t\) &amp; \(\mathrm{sgn}(W)\) &amp; Решение \\
 \(\tau_2 = (1479, -740)\) &amp; \(287/265\) &amp; \(-\) &amp; нет (\(Z^2 &lt; 0\)) \\
\(P_{39} = (561447546, -13303715417186)\) &amp; \(287/265\) &amp; \(+\) &amp; \((265, 287, 329)\) \\
Остальные 37 &amp; \(\ne 287/265\) &amp; — &amp; нет \\
 tabular
 center

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

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

[2] W. Sierpi\&#039;nski. Sur les nombres triangulaires carr\&#039;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.
