mcpField
T
theory-counterexample-hunter

theory-counterexample-hunter

github.com/jurgendn生産性1148 回インストール6 週間前に更新
リポジトリ

theory-counterexample-hunter について

数学者や研究者向けに、候補となる反例を体系的に作り、仮定を確認し、検証したケースを記録して主張を試す推論スキルです。

主な機能

  1. 01主張と仮定の正確な整理
  2. 02候補となる反例の体系的生成
  3. 03仮定と結論の明示的な確認
  4. 04検証ケースの具体的な記録

活用シーン

  1. 01証明を信頼する前の定理の検証
  2. 02数学的主張に潜む仮定の発見
  3. 03反例探索の範囲の記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jurgendn/agent-skills --skill theory-counterexample-hunter

インストール後、Claude Code で/theory-counterexample-hunterを入力して読み込まれたか確認します。

詳細

反例ハンター

その主張を信じる前に、まず崩せるか試してください。

避けるべき2つの失敗パターン:

  • 偽の反例:主張を崩すように見えても、実際にはどの仮定にも違反していないものです。必ず仮定を明示的に確認してください。
  • 中身のない生き残り:実際に何を試したかを述べずに「反例は見つからなかった」と結論づけることです。退化したケースを3つ試して生き残ったからといって、主張が十分に厳しい検証に耐えたわけではありません。

ステップ1:主張を正確に言い直す

以下を書き出してください:

  • 厳密な命題(全称量化子、領域、位相、有限性など。言い換えないでください)
  • 明示的および暗黙的な仮定すべて
  • 主張を「崩す」とはどういう意味か(存在の反例か、一意性の反例か、上界の反例か)

主張が曖昧な場合は、どこが曖昧かを示し、どの解釈を検証するか尋ねてください。


ステップ2:決定的な仮定を見つける

次のことを考えてください:どの仮定を1つ取り除けば、主張が明らかに偽になるでしょうか?

まずはその仮定を攻めてください。弱めたり破ったりするのが、反例を見つける最も効率的な方法です。


ステップ3:候補を体系的に生成する

各カテゴリを順に検討してください。可能性が低そうだからといって、カテゴリを飛ばさないでください。網羅することが目的です。

退化ケース 空集合、単元集合、ゼロ、恒等写像、自明な構造。主張は空虚に成り立つでしょうか?それとも破れるでしょうか?

境界ケース/極値ケース 各パラメーターの極限ではどうなるでしょうか?n → ∞ のとき、ε → 0 のとき、グラフがパスやクリークになるときはどうでしょうか?

不連続または特異なケース 連続性が暗黙に仮定されている場合の不連続関数。特異行列。孤立ノードを含むグラフ。平均を持たない分布。原子を持つ測度。

極端に非対称なケース 非常に大きな成分と非常に小さな成分が1つずつある場合。1つのノードだけ次数が高く、他のノードの次数がすべて1のグラフ。与えられた空間では収束しないコーシー列。

敵対的な構成 仮定が述べていることと、証明が必要とすることの隙間を突くように、オブジェクトを意図的に構成してください。次のことを考えてください:仮定にはないのに、証明が暗黙に利用している性質は何でしょうか? 明示された仮定を満たしながら、その暗黙の性質を欠くものを構成してください。


ステップ4:各候補を正直に検証する

各候補について、次の点を明示的に確認してください:

  1. 明示された仮定をすべて満たしているでしょうか?(満たしていないなら、反例ではなく、無関係です。)
  2. 結論に違反しているでしょうか?

両方に当てはまる場合:反例が見つかりました。それを示して検証したら、そこで終了してください。

(1)のみに当てはまる場合:このケースでは主張が成り立ちました。記録してください。

どちらにも当てはまらない場合:構成に不備がありました。破棄して次に進んでください。


ステップ5:結果を報告する

反例が見つかった場合:

  • 反例を具体的に示してください(アイデアだけでなく、オブジェクトを提示してください)
  • 仮定を満たしていることを検証してください
  • 結論に違反していることを検証してください
  • 仮定をどのように強化すればこの反例を排除できるか特定してください

主張が成り立った場合:

  • 何を試したか、具体的に列挙してください(「非連結グラフ、空グラフ、単元集合、n → ∞ の極限を試した」など)
  • 実際の検証が裏付ける主張の最も限定的なバージョンを特定してください
  • うまくいきかけた敵対的な構成を挙げてください。そこが最も検討すべき仮定です

ここから先、どちらの方向にも証明できない場合:

  • その旨を伝えてください。場合によっては、適切な出力は「反例探しではなく、証明を試みる必要があります」です。

原則

ℤ/2ℤ上の簡単な反例や、2ノードのグラフで十分です。主張を本当に崩すのであれば、シンプルであることは美点です。

次の点を区別してください。主張が誤りである(反例が存在する)、主張にはより強い仮定が必要である(ある条件が欠けているために、すべて阻まれる、あと一歩の反例の一群がある)、主張は正しいが証明が誤っている(反例は見つかっていないものの、論証に穴がある)。

仮定を確認せずに、反例を報告してはいけません。最もよくある誤りは、結論には反するものの、仮説を満たしていない例を作ることです。

コメント