Agent-almanac explore-diophantine-equations

install
source · Clone the upstream repo
git clone https://github.com/pjt222/agent-almanac
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/pjt222/agent-almanac "$T" && mkdir -p ~/.claude/skills && cp -r "$T/i18n/ja/skills/explore-diophantine-equations" ~/.claude/skills/pjt222-agent-almanac-explore-diophantine-equations-20bd38 && rm -rf "$T"
manifest: i18n/ja/skills/explore-diophantine-equations/SKILL.md
source content

ディオファントス方程式の探求

整数解のみを求めるディオファントス方程式を系統的に解く。線形方程式、二次方程式(ペル方程式、ピタゴラスの式)、高次方程式の解法、解の存在・非存在の証明、および無限降下法や剰余による解析を含む。

使用タイミング

  • 線形ディオファントス方程式 ax + by = c の整数解を求める場合
  • ペル方程式 x² - Dy² = 1 の解を求める場合
  • ピタゴラス三つ組 a² + b² = c² を生成する場合
  • 方程式の整数解の存在・非存在を証明する場合
  • フェルマーの無限降下法を適用する場合
  • 整数論の未解決問題(ゴールドバッハ予想、双子素数予想等)に関連する探索を行う場合

入力

  • 必須: ディオファントス方程式
  • 必須: 求める解の種類(正の整数、非負整数、すべての整数)
  • 任意: 解の個数制限
  • 任意: 探索範囲の上限
  • 任意: 既知の部分的結果

手順

ステップ1: 方程式の分類と解法の選択

方程式のタイプを分類し、適切な解法を選択する:

  1. 線形方程式: ax + by = c — ユークリッド互除法、解の存在条件はgcd(a,b) | c
  2. 同次二次方程式: ax² + bxy + cy² = 0 — 判別式による分類
  3. ペル方程式: x² - Dy² = 1 — 連分数展開
  4. ピタゴラスの式: x² + y² = z² — パラメトリック解
  5. 高次方程式: x^n + y^n = z^n (n ≥ 3) — フェルマーの最終定理により解なし
  6. 指数型方程式: a^x + b^y = c^z — 個別の解析が必要

期待結果: 方程式タイプが特定され、適切な解法が選択される。

失敗時: 標準的な分類に当てはまらない場合は、まず剰余による局所的な解析で解の存在に関する制約を得る。

ステップ2: 解の存在判定

方程式に整数解が存在するかどうかを判定する:

  1. 必要条件の検証: 小さい法(mod 2, mod 3, mod 4など)で合同条件を検査する。いずれかの法で解が存在しなければ、整数解は存在しない。
  2. ハッセの原理: 有理数解の存在については、すべてのp進体とℝで解が存在すれば有理数解が存在する(二次形式の場合)。ただし整数解にはハッセの原理は直接適用されない。
  3. 無限降下法: 解が存在すると仮定して矛盾を導く。最小の正の整数解からより小さい解を構成する。
  4. 解の有限性: トゥーエの定理により、f(x, y) = c(fは斉次で次数 ≥ 3)の整数解は有限個。

期待結果: 解の存在または非存在が判定され、その根拠が明示される。

失敗時: 存在判定が困難な場合は、計算機による数値探索を行い、解の候補を探す。解が見つかれば存在が確認される。

ステップ3: 解の構成

存在が確認された場合、すべての解(または解族)を構成する:

  1. 線形方程式の一般解: 特解 (x₀, y₀) を求め、一般解 x = x₀ + (b/d)t, y = y₀ - (a/d)t(d = gcd(a,b)、tは整数)。
  2. ペル方程式の解: 連分数展開で最小解 (x₁, y₁) を求め、(xₙ + yₙ√D) = (x₁ + y₁√D)^n で全解を生成。
  3. ピタゴラス三つ組: 原始三つ組は (m²-n², 2mn, m²+n²)、m > n > 0、gcd(m,n) = 1、m-nは奇数。
  4. 再帰関係: 一部の方程式では、既知の解から新しい解を生成する再帰公式が存在する。

期待結果: すべての解が体系的に記述される(有限個の場合は列挙、無限個の場合はパラメトリック表現)。

失敗時: 体系的な解の生成が困難な場合は、見つかった個別の解をリストアップし、パターンの有無を検討する。

ステップ4: 検証と応用

得られた解を検証し、応用を考察する:

  1. 代入検証: すべての解を元の方程式に代入して正しいことを確認する。
  2. 完全性の確認: すべての解が網羅されていることを確認する(パラメトリック表現の場合)。
  3. 数論的意義: 解の構造が他の数論的問題にどのように関連するか考察する。
  4. 暗号学的応用: ペル方程式やディオファントス近似の暗号学への応用を検討する。

期待結果: 解が検証され、その数論的意義が考察される。

失敗時: 一部の解の検証で不一致が見つかった場合は、解の構成ステップを見直す。

バリデーション

  • 方程式タイプが正しく分類されている
  • 解の存在条件が確認されている
  • 剰余による局所条件が検査されている
  • すべての解が元の方程式を満たしている
  • パラメトリック解が正しいパラメータ範囲で記述されている
  • 解の完全性が論証されている

よくある落とし穴

  • 局所解の過信: すべての法で解が存在しても、大域的な整数解が存在するとは限らない。ハッセの原理は二次形式にのみ適用され、高次方程式では破れることがある。
  • ペル方程式でD = 完全平方数: x² - Dy² = 1でDが完全平方数の場合、方程式は自明解(1, 0)のみ。Dが非平方であることを確認すること。
  • 原始解と非原始解の混同: ピタゴラス三つ組のパラメトリック解は原始三つ組を生成する。非原始三つ組は原始三つ組の定数倍。
  • 無限降下法の論理エラー: 降下法の各ステップで「より小さい正の解が存在する」ことを正確に示す必要がある。不等式の向きを間違えると証明が無効になる。

関連スキル

  • analyze-prime-numbers
    -- ディオファントス方程式の解析に必要な素数の性質
  • solve-modular-arithmetic
    -- 合同条件による解の制約の導出