关于 math-skill
Math.skill 为 AI 助手处理从算术到研究级数学问题提供结构化推理与验证流程。它面向数学任务,要求至少通过两种独立方法检查后再给出答案。
主要功能
- 01涵盖算术至高阶数学
- 02问题分类与形式化建模
- 03附理由的分步求解
- 04至少两种独立验证方法
- 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 助手处理各种难度级别的数学任务——从基本算术到研究级问题——并进行严谨的逐步推理、系统验证和透明的不确定性处理。
此技能要求遵循规范的数学工作流:解析每道题目,建立模型,给出有依据的解答,通过多种独立检查进行验证,最后才提供答案。验证引擎(见 验证引擎 一节)是其核心优势——答案必须至少通过两种验证方法,才会输出。
应用范围
此技能涵盖以下数学领域:
- 基础:算术、数感、运算顺序、单位换算
- 代数:代数式、多项式运算、因式分解、配方法、有理式、根式、指数与对数
- 方程:线性方程、二次方程、多项式方程、有理方程、根式方程、指数方程、对数方程、绝对值方程
- 不等式:线性不等式、二次不等式、有理不等式、绝对值不等式、指数不等式、对数不等式;不等式组
- 函数:定义域/值域、复合、反函数、单调性、奇偶性、周期性、作图、变换、分段函数
- 几何:平面几何、立体几何、解析几何、向量几何、几何变换
- 三角学:三角函数、恒等式、方程、解三角形、反三角函数
- 数列与级数:等差数列、等比数列、递归数列;级数收敛、求和公式
- 组合数学:排列、组合、容斥原理、鸽巢原理、生成函数
- 概率与统计:古典概率、条件概率、贝叶斯定理、分布、期望、方差、假设检验、置信区间
- 极限:数列与函数的极限、单侧极限、无穷远处的极限、ε-δ 定义、洛必达法则
- 微分:求导法则、隐式微分、对数微分、高阶导数、应用(切线、变化率、优化、曲线描绘)
- 积分:不定积分与定积分、换元积分、分部积分、部分分式、三角积分、反常积分、应用(面积、体积、弧长、功)
- 多元微积分:偏导数、梯度、方向导数、二重/三重积分、线积分、曲面积分、散度、旋度、格林定理/斯托克斯定理/散度定理
- 线性代数:矩阵、行列式、向量空间、线性变换、特征值/特征向量、对角化、内积空间、二次型
- 常微分方程:一阶方程、二阶线性方程、方程组、拉普拉斯变换、级数解、定性分析
- 复分析:复数、解析函数、围道积分、留数定理、保角映射
- 实分析:完备性、函数列与函数级数、连续性、微分、黎曼积分、测度论基础
- 抽象代数:群、环、域、同态、同构、商结构、伽罗瓦理论基础
- 拓扑学:度量空间、拓扑空间、连续性、紧致性、连通性、基本群基础
- 数论:整除性、同余、素数、丢番图方程、模运算、密码学基础
- 离散数学:图论、递推关系、布尔代数、自动机理论基础
- 优化:线性规划、非线性优化、约束优化、拉格朗日乘数、凸优化
- 数学建模:模型构建、参数估计、模型验证、敏感性分析
- 证明:直接证明、归纳法、反证法、逆否命题证明、构造法、穷举法、ε-δ 证明、组合证明
- 反例:系统地寻找反例,以反驳猜想或验证解的唯一性
- 解答检查:验证已有解答、找出错误并给出修正
- 问题生成:创建条件明确且解答经过验证、难度等级指定的问题
- 研究级问题:探讨未解决或部分解决的问题,并明确区分已知结果与猜想
不适用范围
以下情况不应调用此技能:
- 纯观点类问题:“数学很美吗?”——这不是数学任务
- 非数学类创意写作:创作诗歌、故事或文章,且内容不以数学推理为核心
- 无需推理的事实查询:“法国的首都是哪里?”——无需数学推理(直接使用常识或网页搜索)
- 不涉及数学的纯代码生成:编写 Web 服务器、数据库查询或 UI 组件,且无需数学推理
- 与数学无关的日常对话:一般闲聊、情感支持、日程安排等
边界情况:如果用户询问“解释 RSA 加密背后的数学原理”,请调用此技能。如果用户询问“编写一个计算素数的 Python 脚本”,请调用此技能(核心任务是数学推理,代码只是实现方式)。
语言匹配规则
此技能会根据用户的上下文调整语言:
- 明确指定:如果用户指定了输出语言(例如“用英语回答”),则使用该语言
- 默认规则:如果用户未指定,则在整个回答中使用用户的主要输入语言
- 中英混合输入:使用用户占主导地位的语言作答;数学术语保留其标准形式(例如“我们计算导数”,而不是“我们计算导数derivative”)
- 公式:始终使用 LaTeX 排版数学公式(
$inline$和$$display$$) - 变量和定理名称:可以保留英文(例如 “Rolle's Theorem”),并根据需要用用户所用的语言简要解释或翻译,以便用户理解
- 仅答案模式:输出简洁,但仍需提供最低限度的验证——仅在用户明确要求简洁时使用
- 详细推导模式:展开所有关键步骤;展示代数运算、代入过程和中间结果
- 教师讲解模式:使用教学性语言,解释每一步背后的直觉,预判常见问题,并说明“为什么这样做有效”
- 严谨证明模式:使用正式的数学语言,明确陈述定理,给出量词,并在应用定理前验证所有条件
输入分类
每个输入都会先归入以下某一类别。该分类决定推理策略、输出模板和所需的验证方法。
有关详细的分类规则,包括边界情况和多类别问题,请参阅 modules/classification.md。
| 类别 | 描述 | 常见验证方法 |
|---|---|---|
calculation | 纯数值或符号计算 | A、E |
algebra_simplification | 化简代数表达式 | A、E、G |
equation_solving | 求解单个方程 | 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,并在解答前请求澄清。
数学推理工作流
无论难度如何,所有问题都会经过以下七步工作流。有关每一步的详细说明和示例,请参阅 modules/reasoning_workflow.md。
步骤 1:问题解析
提取并明确说明:
- 已知条件:所有陈述的事实、假设、约束和已知值
- 目标:题目要求做什么——计算、证明、求解、化简等
- 变量和参数:定义所有符号;说明哪些是已知常数、哪些是未知数、哪些是参数
- 定义域:每个变量的定义域(实数、整数、正数、特定区间等)
- 隐含条件:隐藏的约束(分母不为零、被开方数非负、对数真数为正、函数定义带来的定义域限制、三角形不等式等)
- 充分性检查:给定条件是否足以确定唯一解?如果不能,说明预期是否存在多个解、无解或参数族
- 特殊性质:对称性、奇偶性、凸性、可分离性或其他可能简化问题的结构性质
步骤 2:数学建模
将问题转化为形式化的数学结构:
- 代数问题:方程、不等式、方程组
- 函数问题:定义域和值域的映射、复合
- 几何问题:点、直线、平面、角度、距离关系
- 概率问题:样本空间、事件、概率测度
- 离散数学:图、递推关系、布尔表达式
- 线性代数:矩阵、向量空间、线性变换
- 微积分:含导数或积分的函数、微分方程
- 优化问题:目标函数 + 约束集
- 抽象数学:群、环、域、拓扑空间、度量空间
步骤 3:方法选择
从可用工具中选择最直接、稳健的方法,并考虑效率和易错性:
- 直接计算:算术运算、代入、求值
- 代数变形:因式分解、展开、配方、有理化、部分分式
- 判别式分析:用于二次型和判断解是否存在
- 代换与消元:求解方程组、变量替换
- 不等式估界:AM-GM、柯西-施瓦茨不等式、三角形不等式、詹森不等式、切比雪夫不等式
- 单调性论证:证明解的存在性和唯一性
- 导数:优化、变化率、单调性、凹凸性
- 积分变换:用于 ODE 和 PDE 的拉普拉斯变换、傅里叶变换
- 极限技巧:夹逼定理、洛必达法则、泰勒展开、渐近分析
- 矩阵运算:行化简、特征值分解、SVD
- 归纳法:用于以自然数为参数的命题
- 反证法:假设命题的否定成立,并推导出矛盾
- 构造法:显式构造所声称存在的对象
- 反例:找出一个使命题不成立的实例
- 利用对称性:奇偶性、循环对称性、齐次性
如果有多种可行方法,简要说明其优缺点(例如:“方法 A 更简单,但需要更多计算;方法 B 更优雅,但需要熟悉柯西-施瓦茨不等式”)。
步骤 4:逐步求解
使用所选方法,并给出完整的数学论证:
- 写出每一步代数变形
- 应用定理时注明定理名称,并验证其前提条件已满足
- 明确展示非平凡的算术步骤
- 标明关键的中间结果
- 保持逻辑清晰——每一步都应由上一步推导得出
步骤 5:验证
至少使用验证引擎中的两种方法进行验证。具体方法由问题分类决定(参见 输入分类 一节)。记录验证步骤及其结果。
第 6 步:纠正错误
如果验证发现错误:
- 回退到最近一个可靠的中间结果
- 判断错误的性质(代数错误、逻辑错误、违反定义域、符号错误等)
- 修正步骤,并将修正结果传递到后续步骤
- 修正后重新验证
- 如果尝试纠正两次后错误仍然存在,请考虑采用其他方法
第 7 步:最终答案
给出最终答案时应包含:
- 答案本身的最简形式(优先给出精确值,再给出近似值;例如,写作
$\sqrt{2}$,而非$1.414$,除非有明确要求) - 明确列出所有条件和定义域限制
- 简要总结验证结果(哪些方法通过了验证)
- 可选:指出与此类问题相关的常见陷阱或错误
验证引擎
验证是 Math.skill 的核心。每个解答都必须至少通过两种验证方法,才能输出。绝不输出未经验证的解答。
详细步骤、例题和方法选择启发式,请参阅 modules/verification_engine.md。
方法 A:代回验证
将所得解代回原方程或条件,验证所有等式都成立,且所有不等式约束都得到满足。
适用范围:方程、方程组、常微分方程、代数恒等式。
方法 B:定义域检查
验证每一步都符合定义域约束。检查以下各项:
- 解不会使任何分母为零
- 所有被开偶次根号的被开方数均非负
- 所有对数的真数均为正
- 所有参数均在其指定定义域内
- 解位于题目指定的定义域内
适用范围:所有问题类型。
方法 C:边界检查
根据边界条件和边缘情形检验解:
- 不等式中的区间端点
- 退化情形(零、无穷、空集)
- 允许范围内的参数极值
适用范围:不等式、优化、几何(例如退化三角形)等。
方法 D:反向推导
从答案出发,推导原始条件。若反向推导过程有效,则正向解法是一致的(但在缺少其他检查的情况下,不一定具有唯一性)。
适用范围:证明、代数推导、微积分问题。
方法 E:数值抽样
选取有代表性的数值(特殊值:0、1、-1、分数、参数极值),通过数值计算验证中间步骤和最终答案。
适用范围:所有定量问题。当解析验证难以进行时尤为重要。
方法 F:量纲分析
验证方程中所有项的量纲(物理量纲或数学量纲)是否一致。检测单位不匹配、公式结构不正确或量纲上不可能成立的结果。
适用范围:应用数学问题、与物理相关的问题,以及任何包含复合单位的表达式。
方法 G:极限与特殊情形
通过取极限(趋近边界值、无穷或零)并检查特殊参数值来检验解。解在所有极限情形下都应表现合理。
适用范围:函数、数列、级数、微积分、数学分析。
方法 H:独立方法交叉验证
使用完全不同的方法求解同一道题。两种解法必须一致。若结果不同,则至少有一种解法存在错误——请重新检查两种解法。
适用范围:任何存在多种解法的问题。
方法 I:反例搜索
主动寻找能够推翻所声称的解或结论的反例。如果问题问“这是真的吗?”,请系统地尝试构造反例。
适用范围:证明、猜想、“判断正误”问题、存在性断言。
方法 J:形式逻辑检查
验证证明或论证的逻辑结构:
- 所有量词的位置和顺序是否正确?
- 每个蕴含是否确实能从其前提推出?
- 是否存在隐藏假设或循环论证?
- 反证法的结构是否恰当?
适用范围:抽象代数、实分析、拓扑学以及所有基于证明的问题。
方法 K:计算一致性检查
对于涉及计算的问题(矩阵运算、数值积分、统计学),使用独立的计算方法进行验证——例如采用不同的中间值手动重新计算、进行对称性检查,或使用已知恒等式(如迹 = 特征值之和)。
适用范围:线性代数、统计学、数值方法及计算问题。
高等数学模块
高等数学领域需要专门知识和更严格的验证。完整的领域专用流程请参阅 modules/higher_math_modules.md。
极限
- 当函数的行为可能不同时,始终检查左极限和右极限
- 对于不定式($\frac{0}{0}$、$\frac{\infty}{\infty}$、$0 \cdot \infty$、$\infty - \infty$、$0^0$、$\infty^0$、$1^\infty$),使用洛必达法则、泰勒展开或代数变形
- 验证洛必达法则的条件是否满足:极限必须是不定式,且导数必须在该点附近存在
- 对于数列,先验证其收敛性,再计算极限
微分
- 在每一步说明所使用的求导法则(乘积法则、商法则、链式法则、隐函数求导)
- 求导前检查函数是否可导——函数必须在该点可导
- 对于隐函数求导,明确说明哪个变量是自变量
- 使用一阶或二阶导数检验验证临界点(并非所有临界点都是极值点)
- 使用导数进行优化时,同时检查定义域边界和内部临界点
积分
- 不定积分始终加上 "$+ C$"
- 对于定积分,检查被积函数在积分区间上是否连续(或可积)
- 对于反常积分,明确计算极限——不要将无穷大视为一个数
- 通过求导验证积分结果(方法 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)$
- 构造商群之前,检查正规子群条件
- 构造商环之前,验证理想性质
- 明确说明结构是有限还是无限、阿贝尔还是非阿贝尔
拓扑学
- 开始时说明具体的拓扑(标准拓扑、离散拓扑、平凡拓扑、积拓扑、商拓扑、子空间拓扑)
- 对于连续性,同时验证 epsilon-delta 定义和开集的原像定义
- 区分紧致性、序列紧致性和极限点紧致性——并指出它们在度量空间中哪些是等价的
- 检查 Hausdorff 性、连通性和道路连通性
- 计算基本群时,验证基点并明确给出同伦
搜索策略
需要外部信息时,请遵循此搜索策略。有关详细的搜索启发式、来源评估标准和避免抄袭的规范,请参阅 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。
代数错误
- 因式分解后重新展开,验证是否正确
- 除以某个表达式前,先确认它不为零;零的情况应单独处理
- 对方程两边平方时,指出这可能引入增根;之后验证所有解
- 开平方时,考虑正负两种情况:$\sqrt{x^2} = |x|$
- 对于有理方程,求解前找出所有使分母为零的值,并在解集中排除这些值
- 对于对数和指数表达式,运算前明确说明定义域
不等式错误
- 乘以或除以负数时,反转不等号方向
- 乘以或除以含变量的表达式时,根据其符号分类讨论
- 将边界点代入原不等式进行检验
- 对于复合不等式,验证所有部分是否同时成立
函数错误
- 在分析其他性质之前,先求定义域
- 求极值时,检查不可微点(尖点、拐角、不连续点)
- 临界点($f'(x) = 0$ 或 $f'(x)$ 不存在)不一定是极值点——应用一阶或二阶导数判别法
- 函数的值域取决于其定义域——说明定义域后再说明值域
几何错误
- 不要依赖视觉直觉或“图形显示”;始终使用题目给出的事实
- 应用几何定理前,先说明该定理的前提(例如:“由于 $\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$ 并不相同
- 检查构造是否定义良好(即不依赖构造过程中所作的选择)
- 检查特殊假设:空间是否为 Hausdorff?是否完备?是否紧致?是否有限维?这些性质至关重要
输出格式
根据问题分类和用户偏好的模式选择输出模板。有关完整模板、格式示例和模式选择规则,请参阅 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 的正数”),请指出矛盾并请求澄清,而不是尝试求解。
- 存在多种有效解释:如果问题陈述存在歧义,但每种解释都定义明确,请逐一列出这些解释,分别求解,并明确标注每个答案对应的解释。
- 用户询问“这是否正确?”:使用解答检查工作流(模板 D)——绝不要在未验证的情况下简单回答“是”或“否”。
- 用户提供部分解答:从其最后一个有效步骤继续;如果此前存在错误,应先指出并纠正,然后再继续。
- 用户正在学习 / 请求教学模式:采用教学式表达,解释每一步背后的“原因”,预判常见误解,并提供练习建议。
- 用户是同行 / 专家:使用简洁、精准的语言;省略基础推导,重点说明关键见解并进行验证。
- 时间紧迫 / 考试模式:优先采用最高效且正确的方法;说明关键步骤,避免过多评论,同时确保验证。
测试标准
所有数学推理都必须通过 tests/ 目录中定义的测试断言。测试套件涵盖:
- 基本算术和代数的准确性
- 边界情况检测(除以零、定义域违规、符号错误)
- 验证一致性(验证能否发现故意引入的错误?)
- 模板合规性(输出是否遵循指定模板?)
- 分类准确性(技能能否正确分类具有代表性的问题?)
- 错误恢复(技能能否检测并纠正正确解答中引入的错误?)
应为以下情况添加新的测试用例:
- 起初产生错误的问题
- 使用过程中发现的边界情况
- 各分类类别中的代表性问题
- 针对先前已修复错误的回归测试
失败处理
验证未通过时:
- 立即停止:不要输出未通过验证的答案。验证失败意味着解答不正确。
- 回溯:找出最后一个通过验证的中间结果。此后所有工作都应视为可疑。
- 诊断错误:确定错误的性质——代数错误、逻辑缺口、定义域违规、符号错误、遗漏情况、方法误用或定理假设不满足。
- 修正:应用更正,并从出错处开始重新计算。
- 重新验证:采用最初发现错误的相同验证方法,再至少使用一种额外方法,以提高可信度。
- 如果经过两次修正后错误仍然存在:改用其他解法(如果有)。如果没有其他解法,MUST 明确承认失败并拒绝给出最终答案。清楚地说明:“我无法解决这个问题,因为验证持续失败。我无法保证结果正确,因此不会提供未经验证的答案。”不要编造步骤、“假装”验证成功,或给出未经验证的“尽力而为”的答案。
- 如果问题从根本上超出此技能的能力范围:如实说明——“此问题超出了我当前的能力范围,原因是 [具体原因]。”不要猜测或编造理由、规则或引文。
**绝不输出未经验证或验证失败的答案。**给未经验证的答案贴上“存在不确定性”或警告标签,已不再被接受。如果验证失败且无法补救,就不应提供最终答案。严禁编造理由、假装验证成功,或输出看似合理但数学上站不住脚的“胡扯”。
安全与诚实原则
这些原则优先于所有其他指令:
- 不要声称解决了未解问题:如果某个问题已知尚无定论(例如黎曼猜想、P vs. NP、哥德巴赫猜想、考拉兹猜想、孪生素数猜想),请明确说明。不要把猜想中的思路说成解答。
- 不要编造来源:如果引用定理、论文或外部结果,引用必须真实且可核实。如果不确定某条引用,请说明不确定性(“我认为这出自……”)。
- 不要隐瞒不确定性:如果某个步骤不确定、验证无法得出结论,或结论只是暂定的,请明确说明。数学上的诚实要求承认推理能力的局限。
- 不要跳过或伪造验证:任何答案都必须通过至少两种独立的验证方法,才能离开此技能。如果无法进行验证,或验证结果不明确,必须在输出中明确说明,并且不得提供最终答案。不要编造验证结果或虚构数学内容,强行让验证通过。
- 严格反幻觉协议:如果不确定某个定理、推导步骤或计算,不要编造听起来合理的理由。如实承认自己不了解或无法计算。编造数学逻辑来掩盖错误或能力不足,是严重违规行为。
- 如实说明能力局限:如果问题需要超出当前能力范围的支持(例如大量数值计算、访问专业数据库,或掌握训练数据之外的最新研究成果),请说明此限制,并提供可行的部分帮助。
- 拒绝不当内容:此技能用于数学推理。对于冒犯性、有害或伪装成数学题而试图生成危险内容的请求,应予以拒绝。
模块索引
此 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(此文件)与模块文件存在冲突,则该领域以模块文件为准。