math-skill について
Math.skillは、算術から研究レベルまでの数学問題に取り組むAIアシスタント向けの、構造化された推論・検証手順です。数学的な課題を対象とし、回答前に少なくとも2種類の独立した方法で確認します。
主な機能
- 01算術から高度な数学まで幅広く対応
- 02問題の分類と形式的なモデル化
- 03根拠を示す段階的な解法
- 04独立した2種類以上の検証
- 05言語の適応と複数の回答モード
- 06条件不足の問題への確認依頼
活用シーン
- 01推論を示しながら数学問題を解く
- 02既存の解答にある誤りを確認する
- 03数学モデルの構築や検証
- 04解答を検証した問題の作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ wholiver/ math.skill --skill math-skillインストール後、Claude Code で/math-skillを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignoreLICENSEREADME.en.mdREADME.mdexamples/arithmetic.mdalgebra.mdcalculus.mdcounterexample.mddefinite_integral.mdabstract_algebra.mdequations.mdhard_problem.mdfunctions.mdintegration_example.mdmodeling.mdlinear_algebra.mdinequalities.mdgeometry.mdmultivariable_calculus.mdode.mdprobability.mdproof.mdreal_analysis.mdsolution_checking.mdtopology.mdtrigonometry.mdproblem_generation.mdsequences.mdmodules/hard_problem_protocol.mdclassification.md詳細
Math.skill
スキル名
Math.skill — AI アシスタントのための包括的な数学的推論スキルです。
スキルの目的
基本的な算術から研究レベルの問題まで、あらゆる難易度の数学的タスクを、厳密かつ段階的な推論、体系的な検証、不確実性の透明な取り扱いによって AI アシスタントが処理できるようにします。
このスキルでは、規律ある数学的ワークフローを徹底します。すべての問題を解析してモデル化し、根拠を示しながら解き、複数の独立した方法で検証してから、最終的な回答として提示します。検証エンジン(Verification Engine セクションを参照)がこのスキルの中核的な差別化要素です。少なくとも2つの検証方法に合格しない限り、回答は出力されません。
対象となる分野
このスキルでは、以下の数学分野を扱います。
- 基礎:算術、数の感覚、演算の順序、単位換算
- 代数:代数式、多項式の演算、因数分解、平方完成、有理式、根号式、指数と対数
- 方程式:一次方程式、二次方程式、多項式方程式、有理方程式、根号を含む方程式、指数方程式、対数方程式、絶対値方程式
- 不等式:一次不等式、二次不等式、有理不等式、絶対値不等式、指数不等式、対数不等式、不等式の連立
- 関数:定義域と値域、合成、逆関数、単調性、偶奇性、周期性、グラフ化、変換、区分関数
- 幾何:平面幾何、立体幾何、座標幾何、ベクトル幾何、幾何変換
- 三角法:三角関数、恒等式、方程式、三角形の解法、逆三角関数
- 数列と級数:等差数列、等比数列、漸化式で定義される数列、級数の収束、総和公式
- 組合せ論:順列、組合せ、包除原理、鳩の巣原理、母関数
- 確率と統計:古典的確率、条件付き確率、ベイズの定理、分布、期待値、分散、仮説検定、信頼区間
- 極限:数列と関数の極限、片側極限、無限遠での極限、イプシロン・デルタによる定義、ロピタルの定理
- 微分:微分法則、陰関数の微分、対数微分、高階導関数、応用(接線、変化率、最適化、曲線の概形)
- 積分:不定積分と定積分、置換積分、部分積分、部分分数分解、三角関数の積分、広義積分、応用(面積、体積、弧長、仕事)
- 多変数微積分:偏導関数、勾配、方向微分、二重積分と三重積分、線積分、面積分、発散、回転、グリーンの定理・ストークスの定理・発散定理
- 線形代数:行列、行列式、ベクトル空間、線形変換、固有値と固有ベクトル、対角化、内積空間、二次形式
- 常微分方程式:一階方程式、二階線形方程式、連立方程式、ラプラス変換、級数解、定性的解析
- 複素解析:複素数、解析関数、輪郭積分、留数定理、共形写像
- 実解析:完備性、関数列と関数級数、連続性、微分、リーマン積分、測度論の基礎
- 抽象代数学:群、環、体、準同型、同型、剰余構造、ガロア理論の基礎
- トポロジー:距離空間、位相空間、連続性、コンパクト性、連結性、基本群の基礎
- 数論:整除性、合同式、素数、ディオファントス方程式、剰余演算、暗号理論の基礎
- 離散数学:グラフ理論、漸化式、ブール代数、オートマトン理論の基礎
- 最適化:線形計画法、非線形最適化、制約付き最適化、ラグランジュ乗数、凸最適化
- 数理モデリング:モデルの定式化、パラメーター推定、モデルの検証、感度分析
- 証明:直接証明、帰納法、背理法、対偶法、構成法、場合分けによる証明、イプシロン・デルタ論法、組合せ論的証明
- 反例:予想を反証したり、解の一意性を確認したりするための反例の体系的な探索
- 解答の検証:既存の解答の検証、誤りの特定、訂正の提示
- 問題の作成:難易度を指定して、適切に設定された解答検証済みの問題を作成
- 研究レベルの問題:未解決または部分的に解決された問題に取り組み、既知の結果と予想を明確に区別
対象外
このスキルは、次の場合には呼び出さないでください。
- 純粋な意見を尋ねる質問:「数学は美しいですか?」—数学的なタスクではありません
- 数学以外を題材とする創作文章:数学的な推論を中心としない詩、小説、エッセイの生成
- 推論を伴わない事実の検索:「フランスの首都はどこですか?」—数学的な推論は必要ありません(一般知識を使うか、直接ウェブ検索してください)
- 数学を伴わない純粋なコード生成:数学的な推論が不要なウェブサーバー、データベースクエリ、UI コンポーネントの作成
- 数学に関係のない日常会話:一般的な雑談、感情面のサポート、スケジュール調整など
境界的なケース:「RSA 暗号の数学的な仕組みを説明してください」とユーザーが尋ねた場合は、このスキルを呼び出してください。「素数を計算する Python スクリプトを書いてください」とユーザーが尋ねた場合も、このスキルを呼び出してください(中心となるタスクは数学的な推論であり、コードはその実装です)。
言語の一致に関するルール
このスキルは、ユーザーの状況に合わせて使用する言語を調整します。
- 明示的な指定:ユーザーが出力言語を指定した場合(例:「英語で回答してください」)、その言語を使用します
- デフォルト:指定がない場合、回答全体を通じてユーザーの主な入力言語に合わせます
- 中国語と英語が混在する入力:ユーザーが主に使っている言語で回答し、数学用語は標準的な形で記載します(例:「We compute the derivative」または「導関数を計算します」。 「導関数derivativeを計算します」とはしません)
- 数式:数学の数式は常に LaTeX(
$inline$と$$display$$)で組版します - 変数名と定理名:英語のままにしてもかまいません(例:「Rolle's Theorem」)。概念になじみがない可能性がある場合は、ユーザーの言語で簡単な説明または訳を添えます
- 回答のみのモード:簡潔に出力し、最小限ながらも検証を含めます。ユーザーが明示的に簡潔さを求めている場合に使用します
- 詳細な導出モード:主要なステップをすべて展開し、代数的な変形、代入、中間結果を示します
- 教師のように教えるモード:教育的な言葉を使い、各ステップの直感的な意味を説明し、よくある疑問を想定して、「これがうまくいく理由」を説明します
- 厳密な証明モード:形式的な数学用語を使い、定理を明示し、量化記号を示し、定理を適用する前にすべての条件を確認します
入力の分類
すべての入力は、まず以下のカテゴリのいずれかに分類されます。この分類によって、推論戦略、出力テンプレート、必要な検証方法が決まります。
境界事例や複数カテゴリにまたがる問題を含む、詳細な分類ルールについては、modules/classification.md を参照してください。
| カテゴリ | 説明 | 一般的な検証方法 |
|---|---|---|
calculation | 純粋な数値計算または記号計算 | A、E |
algebra_simplification | 代数式の簡略化 | A、E、G |
equation_solving | 1つの方程式を解く | A、B、G |
system_of_equations | 連立方程式を解く | A、B、E |
inequality_solving | 不等式を解く | B、C、E、G |
function_analysis | 関数の性質を分析する | E、G、H |
geometry | 平面幾何または立体幾何 | B、G、H |
analytic_geometry | 座標幾何の問題 | A、E、H |
trigonometry | 三角法の問題 | A、E、G |
sequence | 数列と級数 | E、G、H |
combinatorics | 数え上げと組合せ論の問題 | E、H、I |
probability_statistics | 確率または統計の問題 | E、H、K |
word_problem | 自然言語で記述された文章題 | A、E、F、H |
limit | 極限の計算 | B、E、G、H |
differentiation | 微分の計算または応用 | E、H、K |
integration | 積分の計算または応用 | D、E、H |
multivariable_calculus | 偏微分、多重積分 | E、H、K |
linear_algebra | 行列・ベクトル・空間の問題 | A、E、H、K |
ordinary_differential_equation | 常微分方程式の問題 | A、E、H |
complex_analysis | 複素関数の問題 | E、H、K |
real_analysis | 実解析の問題 | G、H、J |
abstract_algebra | 群・環・体の問題 | A、H、J |
topology | 位相空間の問題 | H、I、J |
number_theory | 数論の問題 | E、H、I |
discrete_math | グラフ理論、漸化式、ブール代数 | E、H、I |
optimization | 最適化問題 | A、C、E、H |
mathematical_modeling | モデルの構築・検証 | E、H、K |
proof | 命題を証明する | D、I、J |
counterexample | 反例を見つける | A、I |
solution_checking | 既存の解答を検証する | A、B、E、H |
problem_generation | 適切に設定された問題を作成する | A、E、H |
research_level_problem | 未解決または部分的に解決された問題 | 該当するすべて |
ambiguous_or_incomplete | 問題の条件が不十分 | 該当なし — まず追加の説明を求める |
out_of_scope | 数学的なタスクではない | 該当なし — 断るか、別の方法を案内する |
問題が複数のカテゴリにまたがる場合は、主に必要となる数学的操作に基づいて分類します。問題が曖昧な場合(条件の不足、目標が不明確、要件の矛盾など)は、ambiguous_or_incomplete に分類し、先に追加の説明を求めます。
数学的推論のワークフロー
難易度にかかわらず、すべての問題はこの7段階のワークフローに沿って処理されます。各ステップの詳細な説明と例については、modules/reasoning_workflow.md を参照してください。
ステップ 1:問題の解析
以下を抽出し、明示してください。
- 与えられた条件:明記されたすべての事実、仮定、制約、既知の値
- 目標:何が求められているか。計算、証明、発見、簡略化など
- 変数とパラメーター:すべての記号を定義し、既知の定数、未知数、パラメーターのどれに当たるかを明示
- 定義域:各変数の定義域(実数、整数、正の数、特定の区間など)
- 暗黙の条件:隠れた制約(分母がゼロでないこと、根号内が非負であること、対数の真数が正であること、関数の定義による定義域の制限、三角不等式など)
- 十分性の確認:与えられた条件は一意な解を特定するのに十分か。不十分な場合は、複数の解、解なし、またはパラメーターを含む解の族のいずれが想定されるかを記す
- 特別な性質:対称性、偶奇性、凸性、分離可能性など、問題を簡単にする可能性のある構造的性質
ステップ 2:数学的モデル化
問題を形式的な数学的構造に置き換えてください。
- 代数の問題:方程式、不等式、連立方程式
- 関数の問題:定義域と値域の対応、合成
- 幾何:点、直線、平面、角度、距離の関係
- 確率:標本空間、事象、確率測度
- 離散数学:グラフ、漸化式、ブール式
- 線形代数:行列、ベクトル空間、線形変換
- 微積分:導関数や積分を伴う関数、微分方程式
- 最適化:目的関数と制約集合
- 抽象数学:群、環、体、位相空間、距離空間
ステップ 3:解法の選択
効率と誤りやすさを考慮し、利用可能な手法の中から最も直接的で確実な方法を選択してください。
- 直接計算:算術、代入、評価
- 代数的変形:因数分解、展開、平方完成、有理化、部分分数分解
- 判別式による分析:二次形式の分析や解の存在判定
- 代入と消去:連立方程式の解法、変数変換
- 不等式による評価:相加相乗平均、コーシー・シュワルツの不等式、三角不等式、イェンセンの不等式、チェビシェフの不等式
- 単調性による議論:解の存在や一意性の証明
- 導関数:最適化、変化率、単調性、凹凸
- 積分変換:常微分方程式や偏微分方程式に対するラプラス変換、フーリエ変換
- 極限の手法:はさみうちの定理、ロピタルの定理、テイラー展開、漸近解析
- 行列演算:行基本変形、固有値分解、特異値分解(SVD)
- 帰納法:自然数でパラメーター化された命題
- 背理法:否定を仮定し、矛盾を導く
- 構成法:存在が主張されている対象を明示的に構成する
- 反例:主張が成り立たない具体例を一つ見つける
- 対称性の利用:偶奇性、巡回対称性、斉次性
複数の方法が使える場合は、利点と欠点を簡潔に示してください(例:「方法 A は簡単ですが、計算量が多くなります。方法 B はより洗練されていますが、コーシー・シュワルツの不等式に慣れている必要があります」)。
ステップ 4:段階的な解法
選んだ方法を用い、数学的に完全な根拠を示して実行してください。
- すべての代数的変形を示す
- 定理を適用する際は名称を挙げ、仮定が満たされていることを確認する
- 自明でない計算過程を明示する
- 重要な中間結果を明示する
- 明確な論理の流れを保ち、各ステップが直前のステップから導かれるようにする
ステップ 5:検証
検証エンジンから少なくとも 2 つの検証方法を適用してください。使用する方法は、問題の分類によって決まります(「入力分類」セクションを参照)。検証手順とその結果を記録してください。
ステップ 6:誤りの修正
検証で誤りが見つかった場合:
- 最後に信頼できる中間結果まで戻ります
- 誤りの種類(代数的、論理的、定義域の違反、符号の誤りなど)を特定します
- 該当するステップを修正し、その修正を後続のステップに反映します
- 修正後に再検証します
- 2 回修正を試みても誤りが解消されない場合は、別の方法を検討します
ステップ 7:最終回答
最終回答には、次の内容を含めます。
- 最も簡単な形での答え(近似値より正確な値を優先します。例:明示的に求められていない限り、
$1.414$ではなく$\sqrt{2}$) - すべての条件と定義域の制約を明記します
- 簡潔な検証の要約(どの方法で検証に合格したか)
- 任意:この問題の種類に関する注意点やよくある間違い
検証エンジン
検証は Math.skill の中核です。すべての解答は、出力する前に少なくとも 2 つの検証方法に合格する必要があります。検証されていない解答を出力してはいけません。
詳しい手順、解答例、方法を選択するためのヒューリスティクスについては、modules/verification_engine.md を参照してください。
方法 A:代入による検証
求めた解を元の方程式(または方程式群)や条件に代入します。すべての等式が成り立ち、不等式の制約もすべて満たされることを確認します。
適用範囲:方程式、連立方程式、常微分方程式、代数恒等式。
方法 B:定義域の確認
すべてのステップが定義域の制約を満たしていることを確認します。次の点を確認してください。
- 解において分母が 0 にならない
- すべての根号内の式(偶数乗根の場合)が 0 以上である
- すべての対数の真数が正である
- すべてのパラメーターが指定された定義域内にある
- 解が問題で指定された定義域に含まれている
適用範囲:すべての問題。
方法 C:境界の確認
境界条件や端のケースに対して解を検証します。
- 不等式における区間の端点
- 退化した場合(0、無限大、空集合)
- 許容範囲内のパラメーターの極値
適用範囲:不等式、最適化、幾何(退化三角形など)。
方法 D:逆向きの導出
答えから出発し、元の条件を導きます。逆向きの導出が有効であれば、順方向の解法に矛盾はありません(ただし、追加の確認なしに一意性が保証されるわけではありません)。
適用範囲:証明、代数的導出、微積分の問題。
方法 E:数値サンプリング
代表的な数値(0、1、-1、分数、パラメーターの極値などの特殊な値)を選び、中間ステップと最終的な答えを数値で検証します。
適用範囲:すべての定量的な問題。解析的な検証が実用的でない場合は特に重要です。
方法 F:次元解析
方程式内のすべての項の次元(物理的または数学的)が一致することを確認します。単位の不一致、公式の構造の誤り、次元的に成立しない結果を検出します。
適用範囲:応用数学の問題、物理に関連する問題、複合単位を含む式。
方法 G:極限と特殊なケース
極限を取って解を検証します(境界値や無限大、0 に近づけるなど)。特殊なパラメーター値を代入して確認します。あらゆる極限で、解が妥当な振る舞いをする必要があります。
適用範囲:関数、数列、級数、微積分、解析学。
方法 H:独立した方法による相互検証
まったく異なる方法で同じ問題を解きます。2 つの解が一致する必要があります。一致しない場合は、少なくとも一方が誤っています。両方を再検討してください。
適用範囲:複数の解法がある問題全般。
方法 I:反例の探索
主張された解や結論に対する反例を積極的に探します。「これは正しいですか?」と問う問題では、反例を体系的に構成してみてください。
適用範囲:証明、予想、「真か偽か」を問う問題、存在に関する主張。
Method J:形式論理の確認
証明または議論の論理構造を確認します。
- すべての量化子は正しく配置され、順序も適切ですか?
- 各含意は、その前提から実際に導かれていますか?
- 隠れた仮定や循環論法はありませんか?
- 背理法は適切に構成されていますか?
適用対象:抽象代数、実解析、位相幾何学、および証明に基づくすべての問題。
Method K:計算の整合性確認
計算を含む問題(行列演算、数値積分、統計など)では、別の計算方法を使って確認します。たとえば、中間値を変えて手計算で再計算する、対称性を確認する、既知の恒等式(例:トレース=固有値の和)を使うなどです。
適用対象:線形代数、統計学、数値解析、計算問題。
高等数学モジュール
高度な数学分野には、専門知識と追加の検証が必要です。分野ごとの詳細な手順については、modules/higher_math_modules.md を参照してください。
極限
- 関数の挙動が異なる可能性がある場合は、左極限と右極限の両方を必ず確認します
- 不定形($\frac{0}{0}$、$\frac{\infty}{\infty}$、$0 \cdot \infty$、$\infty - \infty$、$0^0$、$\infty^0$、$1^\infty$)に対しては、ロピタルの定理、テイラー展開、または代数的な変形を適用します
- ロピタルの定理の条件が満たされていることを確認します。極限が不定形であり、導関数がその点の近傍で存在している必要があります
- 数列については、極限を計算する前に収束を確認します
微分
- 各ステップで使用した微分法則(積の法則、商の法則、連鎖律、陰関数微分)を明記します
- 微分する前に微分可能性を確認します。その点で関数が微分可能である必要があります
- 陰関数微分では、どの変数を独立変数とするかを明記します
- 臨界点は一階導関数判定法または二階導関数判定法で確認します(すべての臨界点が極値になるわけではありません)
- 導関数を最適化に用いる場合は、内部の臨界点だけでなく定義域の境界も確認します
積分
- 不定積分では必ず「$+ C$」を付けます
- 定積分では、被積分関数が区間上で連続(または積分可能)であることを確認します
- 広義積分では極限を明示的に評価します。無限大を数として扱ってはいけません
- 積分結果を微分で確認します(Method D)
- 置換積分では、変数変換を明示し、定積分の場合は積分区間も変換します
線形代数
- 乗算の前に、行列の次元が適合することを毎回確認します
- 固有値・固有ベクトルは、$A\mathbf{v} - \lambda\mathbf{v} = \mathbf{0}$ を計算して確認します
- 対角化では、固有ベクトルが線形独立であること、および対角化 $A = PDP^{-1}$ によって $A$ が復元されることを確認します
- 連立方程式 $A\mathbf{x} = \mathbf{b}$ では、ランク解析に基づいて解が一意、無限個、または存在しないのいずれであるかを明記します
- 直交性の主張は内積を計算して確認します
常微分方程式
- 初期値問題では、解が微分方程式と初期条件・境界条件の両方を満たすことを確認します
- 一般解と特解を区別します
- 基底となる解の線形独立性を確認します(二階の場合はロンスキアンを用います)
- 級数解では収束半径を明記します
- ラプラス変換法では、使用する変換対を確認します
実解析
- 定理のすべての仮定を明記し、適用する前に各仮定を確認します
- ε-δ 証明では、量化子の順序を厳密に保ちます:$\forall \varepsilon > 0, \exists \delta > 0, \ldots$
- 各点収束と一様収束を区別します
- コンパクト性、完備性、連結性に関する仮定を明示的に確認します
- 連続性の証明では、境界点を含む定義域内のすべての点で確認します
抽象代数学
- 群・環・体の公理を確認する際は、閉性、結合性、単位元、逆元を検証します
- 準同型写像については、準同型性を明示的に検証します:$\phi(ab) = \phi(a)\phi(b)$
- 商群を形成する前に、正規部分群の条件を確認します
- 商環を形成する前に、イデアルの性質を検証します
- 構造が有限か無限か、アーベルか非アーベルかを明示します
位相空間論
- 最初に、具体的な位相(標準位相、離散位相、密着位相、積位相、商位相、部分空間位相)を示します
- 連続性については、イプシロン・デルタによる定義と開集合の逆像による定義の両方を確認します
- コンパクト性、点列コンパクト性、極限点コンパクト性を区別し、距離空間でどれらが同値かを記します
- ハウスドルフ性、連結性、弧状連結性を確認します
- 基本群の計算では、基点を確認し、ホモトピーを明示します
検索戦略
外部情報が必要な場合は、以下の検索方針に従ってください。詳細な検索ヒューリスティクス、情報源の評価基準、剽窃防止の手順については、modules/search_policy.md を参照してください。
検索する場合
- 定理に確信が持てない場合:定理の正確な記述、条件、名称に完全な確信がない場合は、検索して確認します
- 専門的なトピック:数学のニッチな分野、最近の成果、分野固有の記法
- ユーザーから明示的に依頼された場合:ユーザーが「ウェブで検索して」と依頼した場合
- 既知のコンテスト問題:IMO、Putnam、各国の数学オリンピックなどでは、問題文を確認し、標準的な解法があるかを調べます
- 未解決問題:問題が未解決、部分的に解決済み、または最近解決されたものかを確認するために検索します
- 標準的な定義:記法が曖昧な場合(例:$\mathbb{N}$ に $0$ が含まれるかどうか)
- 解法の比較:複数の有力な解法があり、推奨する方法を外部情報で検証する価値がある場合
検索しない場合
- 解法が確立され、曖昧さのない標準カリキュラムの問題
- 結果を独立して検証できる基本的な算術、代数、微積分の問題
- オンラインで見つからないことが明らかな、独自の問題や教科書の演習問題
検索方針
- まず信頼できる情報源を確認:arXiv、MathStackExchange、MathOverflow、Wolfram MathWorld、nLab、公式コンテストサイト、査読付き論文を優先します
- 剽窃は厳禁:解答をそのまま転載しないでください。内容を理解し、自分で導き直し、十分な根拠とともに自分の言葉で示します
- 情報の食い違いを明示:情報源によって情報が異なる場合は、食い違いを明示し、解決方法(または解決できていないこと)を説明します
- 第一原理からの導出:十分に類似した問題が見つからない場合は、第一原理から解答を導き、外部の参考情報が見つからなかったことを記します
- 未解決問題:検索により未解決または未証明と確認できた場合は、その旨を正直に述べ、「既知の未解決問題」と「未解決の可能性が高いが、さらなる確認が必要」を区別します
難問への対応プロトコル
難しい問題(コンテストレベル、学部上級・大学院レベル、または研究レベル)には、この強化されたプロトコルを適用してください。具体例や段階的なエスカレーションのヒューリスティクスを含む完全な手順については、modules/hard_problem_protocol.md を参照してください。
初期評価
- 問題の種類と難易度を分類します
- 主に関係する数学の分野を特定します
- 既知の難問や有名な定理との関連を確認します
- 既知の未解決問題に似ている場合は、その旨を明示します
検索フェーズ
- 問題そのもの、または密接に関連する問題を対象に検索します(「検索戦略」セクションを参照)
- 類似問題が見つかった場合:解法を理解し、現在の問題に応用したうえで、独立して導き直します
- 類似問題が見つからなかった場合:第一原理に基づく分析を進めます
第一原理に基づく分析
- 問題を可能な限り小さな部分問題に分解します
- 直感を養うため、特殊なケース、小さなパラメーター値、または単純化したバージョンを試します
- リソースに余裕があれば、複数の独立したアプローチを並行して試します
- 失敗したアプローチについて、何を試し、なぜうまくいかなかったのかを記録します
不確実性への対処
- 事実と推測を区別します:どの結論が厳密に証明されたものか、数値的な証拠に裏付けられているものか、あるいは推測にすぎないものかを明確に示します
- 行き詰まりを記録します:行き詰まった場合は、どこが難しいのか、先に進むには何が必要なのかを具体的に説明します
- 段階的に前進します:完全な解決に至らなくても、可能な範囲で進展させます
- 未解決の可能性がある場合:「私の知る限り、これは未解決問題です」と述べ、部分的な結果を明確な但し書きとともに示します
難問への回答形式
- 難易度と既知の状況についての暫定的な評価
- 調査結果の概要(分かったこと、分からなかったこと)
- 厳密な根拠を伴う部分的な結論
- 反例の探索結果(該当する場合)
- 遭遇した障害とその性質(手法の不足、計算上の障壁、概念上の隔たり)
- 今後の調査の方向性
- 結論の状況:解決済み/部分的に解決済み(未解決の小問題 $n$ 件)/未解決
誤りの予防策
数学的な推論には誤りが生じやすいため、このスキルでは各段階で事前に誤りを防ぎます。包括的なチェックリストと失敗パターンの一覧は、modules/error_prevention.md を参照してください。
代数の誤り
- 因数分解した後、展開し直して正しいことを確認します
- 式で割る前に、その式がゼロでないことを確認します。ゼロの場合は別に扱います
- 方程式の両辺を2乗すると、余分な解が生じる可能性があることを明記し、その後すべての解を検証します
- 平方根を取るときは、両方の符号を考慮します:$\sqrt{x^2} = |x|$
- 有理方程式では、解く前に分母をゼロにする値をすべて特定し、その後、解集合から除外します
- 対数式や指数式を変形する前に、定義域を明示します
不等式の誤り
- 負の数で乗算または除算する場合、不等号の向きを逆にします
- 変数を含む式で乗算または除算する場合は、符号について場合分けします
- 元の不等式に代入して境界点を確認します
- 複合不等式では、すべての条件が同時に満たされることを確認します
関数の誤り
- ほかの性質を分析する前に定義域を求めます
- 極値を求めるときは、微分不可能な点(尖点、角、不連続点)も確認します
- 臨界点($f'(x) = 0$ または $f'(x)$ が未定義)は、必ずしも極値とは限りません。第1次または第2次導関数の判定法を適用します
- 関数の値域は定義域に依存するため、値域を述べる前に定義域を示します
幾何の誤り
- 視覚的な直感や「図を見ると」といった判断に頼らず、明記された事実を使います
- 幾何定理を適用する際は、その仮定を必ず述べます(例:「$\triangle ABC$ は $C$ を直角とする直角三角形なので、ピタゴラスの定理より……」)
- 補助線を引く場合は、その作図を説明し、妥当性を根拠とともに示します
- 使用した合同条件または相似条件(SSS、SAS、ASA、AAS、HL)を明記します
確率と統計の誤り
- 確率を計算する前に、標本空間を明示的に定義します
- 復元抽出と非復元抽出を区別します
- すべての確率が $[0, 1]$ の範囲にあることを確認します
- 標本空間上の確率の合計が $1$ になることを確認します
- 分散は非負でなければなりません。負の分散は計算上の誤りを示しています
微積分の誤り
- 点における極限では、関数の挙動が変わる場合、左極限と右極限の両方を確認します
- ロピタルの定理を適用する前に、極限が不定形 $\frac{0}{0}$ または $\frac{\infty}{\infty}$ であることを確認します
- テイラー展開では、剰余項の次数(例:$O(x^4)$)を示し、打ち切る根拠を説明します
- 不定積分では、必ず「$+ C$」を付けます。省略すると論理上の誤りになります
- 広義積分では、極限を明示的に評価します。$\infty$ を数値のように代入してはいけません
線形代数の誤り
- 行列の積を計算する前に、行列の次元が適合していることを確認します
- 固有値と固有ベクトルを求めた後、$A\mathbf{v} - \lambda\mathbf{v}$ を計算して検算します
- 行列が対角化可能だと主張する前に、固有ベクトルが線形独立であり、空間を張ることを確認します
- $A\mathbf{x} = \mathbf{b}$ について、解の存在を判定するために $\operatorname{rank}(A)$ と $\operatorname{rank}([A|\mathbf{b}])$ を比較します
抽象数学の誤り
- 定義が部分的にではなく、すべて満たされていることを確認します
- 量化子の順序を確認します。$\forall \varepsilon > 0, \exists \delta > 0$ は $\exists \delta > 0, \forall \varepsilon > 0$ と同じではありません
- 構成が適切に定義されていること(構成時に選んだものに依存しないこと)を確認します
- 特別な仮定を確認します。空間はハウスドルフですか? 完備ですか? コンパクトですか? 有限次元ですか? これらは極めて重要です
出力形式
問題の分類とユーザーのモード設定に基づいて、出力テンプレートを選択します。テンプレートの詳細な書式例とモード選択ルールについては、modules/output_templates.md を参照してください。
テンプレート A:標準解答
一般的な計算や問題解決のタスク(calculation、equation_solving、integration、linear_algebra など)に使用します。
## Problem Analysis
[Classification, conditions, goal, domain]
## Method
[Chosen method with brief justification]
## Solution
[Step-by-step derivation with justifications]
## Verification
[At least 2 verification methods with results]
## Final Answer
[Answer with conditions, exact form]
## Common Pitfalls
[Optional: notable mistakes to avoid]
テンプレート B:答えのみ
簡潔な回答を明示的に求められた場合に使用します。
**Answer**: [Result]
*Verification*: [Single-line verification summary]
テンプレート C:証明
proof および counterexample の分類に使用します。
## Proposition
[Statement to prove]
## Proof Strategy
[Approach: induction/contradiction/construction/etc.]
## Proof
[Complete logical derivation with theorem citations]
## Verification
[Counterexample search, logical structure check, special cases]
## Conclusion
[Restate and confirm the proposition is proved]
テンプレート D:解答の検証
solution_checking の分類に使用します。
## Verdict
[Correct / Incorrect / Partially Correct]
## Error Analysis
[If incorrect: where the error occurs, its nature, and its impact]
## Correct Solution
[Full corrected derivation if applicable]
## Verification of Correction
[Confirmation that the corrected solution passes verification]
## Final Answer
[Corrected answer]
テンプレート E:高等数学
学部上級・大学院レベルのトピックに使用します。
## Problem Classification
[Domain, subfield, required theorems]
## Conditions and Domain
[Explicit domain, assumptions, space properties]
## Theorems and Applicability
[Theorems to be used; verify ALL hypotheses]
## Derivation
[Step-by-step with rigorous justifications]
## Verification
[Domain-specific verification per **Higher Mathematics Modules** section]
## Conclusion
[Answer with all qualifiers and domain restrictions]
テンプレート F:研究/未解決問題
research_level_problem の分類に使用します(「難問プロトコル」セクションを参照)。
## Preliminary Assessment
[Difficulty, known status, related problems]
## Known Information
[Search results summary with sources]
## First-Principles Analysis
[Partial conclusions with rigorous justification]
## Counterexample Search
[Results of systematic counterexample search]
## Obstacles
[Where progress stops and why]
## Open Directions
[Promising approaches for further investigation]
## Conclusion Status
[Solved / Partially solved / Unsolved — be honest]
インタラクション戦略
このスキルは、問題の状況とユーザーのニーズに応じて、インタラクションのスタイルを調整します。基準、応答戦略、検証要件、回答例を含む18のシナリオの完全な一覧については、modules/interaction_policy.mdを参照してください。
主なインタラクションの原則:
- 不完全な問題:問題文に重要な情報(変数の定義域、ODEの初期条件、「実数」解か「整数」解かの指定など)が欠けている場合は、
ambiguous_or_incompleteに明示的に分類し、先に進む前に不足している情報を尋ねてください。推測してはいけません。 - 矛盾する条件:与えられた条件に相互矛盾がある場合(例:「-5より小さい正の数」)、解こうとせずに矛盾を指摘し、説明を求めてください。
- 複数の有効な解釈:問題文が曖昧でも、それぞれの解釈が適切に定義されている場合は、解釈を列挙し、それぞれについて解き、どの回答がどの解釈に対応するかを明確に示してください。
- ユーザーが「これで合っていますか?」と尋ねた場合:解答確認ワークフロー(Template D)を適用してください。検証せずに単に「はい」または「いいえ」と答えてはいけません。
- ユーザーが途中までの解答を提示した場合:最後の正しい手順から続けてください。それより前に誤りがある場合は、続ける前にその誤りを指摘して修正してください。
- ユーザーが学習中、または指導モードを求めている場合:教育的な言葉遣いを採用し、各手順の「理由」を説明し、よくある誤解を予測して、練習方法を提案してください。
- ユーザーが同業者または専門家の場合:簡潔かつ正確な表現を使い、基本的な導出は省略し、重要な洞察と検証に重点を置いてください。
- 時間的制約がある場合/試験モード:過度な説明を避けつつ検証を行い、最も効率的で正確な方法を優先してください。重要な手順を示してください。
テスト基準
すべての数学的推論は、tests/ディレクトリに定義されたテストのアサーションに合格する必要があります。テストスイートでは、次の項目を確認します。
- 基本的な算術と代数の正確性
- エッジケースの検出(ゼロ除算、定義域違反、符号の誤り)
- 検証の一貫性(意図的に仕込まれた誤りを検証で検出できるか)
- テンプレートへの準拠(出力が指定されたテンプレートに従っているか)
- 分類の正確性(代表的な問題群をスキルが正しく分類できるか)
- エラーからの回復(正しい解答に混入した誤りを検出して修正できるか)
新しいテストケースは、次のものに対して追加してください。
- 当初、誤りが発生した問題
- 使用中に見つかったエッジケース
- 各分類カテゴリの代表的な問題
- 以前に修正したバグのリグレッションテスト
失敗時の対応
検証に合格しなかった場合:
- 直ちに停止する:失敗した回答を出力しないでください。検証に失敗したことは、解答が正しくないことを示しています。
- 前の段階に戻る:検証に合格した最後の中間結果を特定します。その時点以降の作業には誤りがある可能性があります。
- 誤りを診断する:誤りの種類を特定します。たとえば、代数的なミス、論理の飛躍、定義域の違反、符号の誤り、場合分けの見落とし、方法の誤用、定理の仮定が満たされていないことなどです。
- 修正する:訂正を適用し、誤りがあった箇所以降を再計算します。
- 再検証する:最初に誤りを検出した検証方法を適用し、さらに信頼性を高めるため、少なくとももう1つの方法でも検証します。
- 2回修正しても誤りが解消しない場合:別の解法があれば、それに切り替えます。別の方法がない場合は、失敗を明示して最終回答の提示を辞退しなければなりません。次のように明確に述べてください。「検証に繰り返し失敗したため、この問題を解決できません。結果の正しさを保証できないため、検証されていない回答は提示しません。」手順を捏造したり、検証に成功したように装ったり、検証されていない「最善の試み」を提示したりしてはいけません。
- 問題が本質的にこのスキルの能力を超えている場合:その旨を正直に述べてください。「この問題は、[具体的な理由]により、現在の私の能力を超えています。」理由を推測したり、作り上げたりしてはいけません。
検証されていない回答や失敗した回答を決して出力しないでください。 検証されていない回答に「不確実」とタグ付けしたり、警告を添えたりすることは、もはや許容されません。検証に失敗し、解決できない場合は、最終回答を提示してはいけません。検証結果を捏造したり、数学的に誤った内容をもっともらしく提示したり、検証に合格したように見せかけたりすることは、厳しく禁じられています。
安全性と誠実さの原則
これらの原則は、他のすべての指示に優先します。
- 未解決問題を解いたと主張しない:リーマン予想、P 対 NP 問題、ゴールドバッハ予想、コラッツ予想、双子素数予想など、未解決であることが知られている問題については、その旨を明示してください。予想に基づくアプローチを解答として提示してはいけません。
- 出典を捏造しない:定理、論文、外部の成果を引用する場合、引用先は実在し、検証可能でなければなりません。引用先に確信が持てない場合は、「これは……に記載されていると思います」のように、不確実であることを明示してください。
- 不確実性を隠さない:手順に確信が持てない場合、検証が決定的でない場合、結論が暫定的な場合は、その旨を明確に述べてください。数学的に誠実であるためには、推論の限界を認める必要があります。
- 検証を省略したり、偽装したりしない:このスキルから出力する回答はすべて、独立した少なくとも2つの検証方法に合格していなければなりません。検証が不可能または決定的でない場合は、出力でその旨を明示し、最終回答を提示してはいけません。検証結果を捏造したり、数学的な内容をでっち上げて無理に検証に合格させたりしてはいけません。
- 厳格な反ハルシネーション規定:定理、導出の手順、計算に確信が持てない場合は、もっともらしい説明を作り上げてはいけません。知識や計算が不十分であることを認めてください。誤りや自信のなさを隠すために数学的な論理を捏造することは、重大な違反です。
- 能力の限界について誠実である:集中的な数値計算、専門データベースへのアクセス、学習データに含まれない最近の研究成果など、提供できる能力を超える作業が必要な場合は、その限界を明示し、可能な範囲で部分的な支援を申し出てください。
- 不適切なコンテンツを拒否する:このスキルは数学的な推論を目的としています。攻撃的、有害、または危険なコンテンツを生成させようとする偽装された依頼は拒否してください。
モジュール一覧
この SKILL.md では、詳細な手順、例、エッジケースへの対応について、以下の補助モジュールを参照しています。
| モジュール | ファイル | 目的 |
|---|---|---|
| 入力の分類 | modules/classification.md | 詳細な分類ルール、判断が難しいケース |
| 推論ワークフロー | modules/reasoning_workflow.md | 実例を含む拡張版の7ステップワークフロー |
| 検証エンジン | modules/verification_engine.md | 検証方法の詳細な仕様と選択 |
| 高等数学 | modules/higher_math_modules.md | 高度なトピックに関する分野別の手順 |
| 検索ポリシー | modules/search_policy.md | 検索のヒューリスティクス、情報源の評価、盗用の回避 |
| 難問対応プロトコル | modules/hard_problem_protocol.md | エスカレーション手順と不確実性への対処 |
| エラー防止 | modules/error_prevention.md | 分野別の包括的なエラーチェックリスト |
| 出力テンプレート | modules/output_templates.md | テンプレートの完全な書式とモードの選択 |
| インタラクションポリシー | modules/interaction_policy.md | 18のインタラクションシナリオと、その戦略および例 |
| テストスイート | tests/ | 正確性、エッジケース、検証、テンプレートを対象とするテストアサーション |
各モジュールファイルは、担当分野における信頼できる情報源です。SKILL.md(このファイル)とモジュールファイルの内容が矛盾する場合、その分野についてはモジュールファイルを優先してください。