数学笔记写作的原则
本文简要讨论数学写作的原则。
概要
各模块不应按照“内容出现的位置”简单分工,而应按照读者在不同阅读阶段提出的问题分工。
- 章首导引面向尚未阅读正文的读者,负责建立阅读预期;
- 节首导引面向即将进入局部论证的读者,负责提出本节问题;
- 正文负责发展数学内容;
- 节末小结面向刚读完本节的读者,负责解释局部成果的位置;
- 习题负责训练、检验和补充;
- 章末小结面向复习者,负责提供最小知识索引。
下面的表格总结了不同模块面向的读者群体、自身的核心问题与主要组织方式。
| 模块 | 面向的阅读阶段 | 核心问题 | 主要组织方式 |
|---|---|---|---|
| 章首导引 | 阅读之前 | 为什么读、读什么、怎样读 | 动机与路线 |
| 节首导引 | 进入本节之前 | 为什么现在需要这一节 | 局部问题 |
| 正文 | 阅读过程中 | 概念和结论如何建立 | 数学论证 |
| 节末小结 | 读完本节之后 | 本节完成了什么 | 局部结构 |
| 习题 | 初步理解之后 | 能否操作、证明和推广 | 能力训练 |
| 章末小结 | 复习或回查时 | 本章必须记住什么 | 知识索引 |
一、总原则
最需要防止的问题是:
$$ \text{章首导引} \approx \text{正文目录} \approx \text{节末小结} \approx \text{章末小结}. $$
如果四者都在重复“本章先讲了什么、再讲了什么”,那么它们只是篇幅不同的内容摘要,并没有真正的功能区别。
同一个定义或定理可以在不同模块中重复出现,但每次出现时承担的功能必须不同:
- 在导引中,它是一个路标;
- 在正文中,它是一个需要准确陈述和发展的数学内容;
- 在节末小结中,它是论证链上的一个结构节点;
- 在章末小结中,它是供复习和回查的索引项。
二、章首导引
1. 章首导引的中心
章首导引不宜逐节复述正文。它首先应当说明下面几个让读者关心的问题:
- 本章研究什么对象或问题;
- 为什么已有工具不足;
- 本章准备引入什么新观点;
- 本章最终希望解决什么问题。
换言之,导引的核心结构应当是
$$ \text{既有背景} \longrightarrow \text{待解决的问题} \longrightarrow \text{本章的基本思想} \longrightarrow \text{预期成果}. $$
“本章共有八节,第一节介绍……,第二节讨论……”这样的内容可以有,但不应成为导引的主体。它更接近目录注释,而不是数学导引。
2. 历史视角
历史材料很适合用于回答下面的问题:
- 某个问题最初从哪里产生;
- 为什么某种概念值得被独立抽象出来;
- 该理论在较大的数学框架中处于什么位置;
- 不同历史阶段如何改变了对该概念的理解。
但是,它不应发展成独立的学科史,写作时也不宜用未经核实的名言代替数学说明。较合适的顺序是
$$ \text{熟悉的具体问题} \longrightarrow \text{历史上的抽象过程} \longrightarrow \text{现代的结构性表述}. $$
历史视角和现代视角不是互相排斥的:历史视角解释概念为什么出现;现代视角说明概念最终被组织成什么结构。二者可以穿插,但不应混为一谈。
历史材料的适当形式
历史部分通常只需要建立背景,不必提前承担正文的证明或分类任务。下面列举几类可以考虑的历史材料:
- 一至两段正文;
- 一个简短的『历史注记』;
- 一条经过核实的文献说明;
- 一个“具体问题—抽象概念”的演变过程。
3. 本章主线
章首导引可以展示全章的主要转折,但不宜逐节展开所有定义和定理。
例如可以采用抽象形式:
$$ \text{原始问题} \longrightarrow \text{基本对象} \longrightarrow \text{核心构造} \longrightarrow \text{主要定理} \longrightarrow \text{统一观点}. $$
这条主线回答的是“本章为什么要按照大致这样的顺序发展”,而不是“每一小节分别包含哪些条目”——后者应当交给目录、节首导引和章末索引。
4. 螺旋上升的叙事
“已有工具不足—引入新工具—新工具暴露新的问题—再次扩展理论”是一种有效的数学叙事方式。更准确地说,其中的“矛盾”未必是真正的逻辑矛盾,通常是如下几类障碍:
- 既有定义的适用范围不足;
- 某个自然构造不总是存在;
- 某种表述不具有不变性;
- 结论依赖过强的条件;
- 局部结果无法统一;
- 某个存在性结论没有唯一性或函子性。
因此,正式写作时最好少用笼统的“出现矛盾”,改为明确说明现有方法能够处理什么,却不能处理什么。
这种螺旋式叙述应只保留少数关键转折。每一个小节都在章首展开一次“问题—解决”的完整叙事,导引就会过长。较好的分配方式是:章首导引保留三至五个全章层面的主要转折,每节开头说明本节特有的局部困难和处理方法。
5. 与后续章节的联系
章首可以说明本章内容以后将在哪些方向被使用,但不宜详细预告后续各章。
可以区分两个层次:
章首:说明用途和位置
回答:本章是哪些后续内容的基础;哪些概念以后会被推广;哪些假设以后可能被削弱;本章在整体笔记中承担什么功能。
章末:说明具体对应关系
读者学完本章以后,才适合说明:本章的哪条定理将被推广、哪项习题已经出现了后续理论的雏形、哪个概念会在其他语境中重新出现。
因此,章首只需给出“接口预告”,章末或后续章节的导引再给出具体连接。这样既保留整体感,又不会占据太多篇幅。
6. 各小节的学习要求
“本章介绍什么”与“本章需要掌握什么”不是同一问题。导引最好说明读者完成本章后应具备哪些能力,但不宜只写“理解”“熟悉”“掌握”。这些词过于笼统,应尽量细化为可观察的数学活动。
识别
辨认某个对象是否满足定义;区分相近概念;判断某项条件在何处使用。
计算与构造
计算具体例子;构造标准对象;执行正文中的典型算法;处理简单的含参数情形。
基本证明
直接使用定义证明简单结论;验证构造的良定义性;证明唯一性;检查态射或结构保持条件。
结构理解
解释某个定理解决了什么问题;说明不同表述之间的关系;判断一个结论在整套理论中的位置。
反例与推广
判断条件能否删去;构造简单反例;将证明技术迁移到邻近问题;识别更一般结论所需的新假设。
无论是习题还是正文,我们推荐的学习梯度都是一致的:
$$ > \text{识别与计算} > \longrightarrow > \text{基本证明} > \longrightarrow > \text{结构理解} > \longrightarrow > \text{反例与推广}. > $$
这只是学习顺序,不是知识价值的等级。此外,读者不必强求一开始就独立完成反例构造,积累大量的正面例子、熟悉定理/例子的边界情况是有必要的。
7. 本章阅读提示
阅读提示可以说明的内容是:哪些内容构成第一次阅读的主线;哪些证明可以暂时略读;哪些部分适合在完成习题后重读;哪些内容偏向应用、推广或补充;不同背景的读者可以采取什么阅读顺序。
但是,具体到每一小节,分别制定阅读策略就不是必要的,否则导引会变成操作手册。给出两至三条阅读路线是闭较好的做法,例如基础路线、理论路线、应用或计算路线。
三、节首导引
每一节开头可以有一段很短的导引,回答下面的问题:
- 上一节留下了什么问题;
- 本节为什么现在出现;
- 本节准备引入什么工具;
- 本节的结果以后用于哪里。
一个稳定的模板是:
前面的内容已经解决了……,但尚不能处理……。本节将引入……,并证明……。其中,……是后续讨论所需的关键工具。
节首导引的长度应当与本节复杂程度相适应。
- 对于单纯承接上一节的技术性小节,一段即可;
- 引入新对象或改变研究视角的小节,可以稍长;
- 至于旁支、选读或应用性小节,你应明确说明它与主线的关系。
这样可以把详细的分节动机从章首移到最合适的位置。
四、正文
正文应当集中处理下面的内容:定义;例子;命题、引理、定理和推论;证明;构造;算法;反例;必要的注记、警示和约定。
正文不必在每个结果之后都进行宏观总结,否则会频繁打断论证。较长的解释可以留到节末小结。
1. 正文中的例子
例子不只是为了让页面看起来“不太抽象”,详细来说可以分成下面几类:
- 定义例:帮助识别新概念;
- 计算例:展示具体操作;
- 反例:说明条件接近失效时会发生什么,阻止错误推广;
- 模型例:展示抽象结构在熟悉对象中的实现,随着理论发展反复重新解释同一对象。
正文首先需要足够的定义例和计算例。反例构造和复杂推广可以稍后安排,不必在概念刚出现时一次性完成。
2. 正文中的特殊栏目
『警示』
用于阻止错误理解。包括:删除条件后的反例;相近概念的区别;不可逆的推理;容易误用的记号;存在性与可计算性的区别。
『注记』
用于扩展主线内容。包括:定理/定义的更一般版本;证明技术的推广;定理/定义的另一种等价表述;与其他理论的联系;数学名词的历史或术语说明。
『约定』
用于规定此后如何理解某种说法或记号。包括:默认假设;术语滥用;精确到同构的等同;标准符号。
上述三者不应混用。一言以蔽之:
$$ \begin{array}{c|c} \text{栏目} & \text{主要作用} \\ \hline \text{警示} & \text{防止误解} \\ \text{注记} & \text{扩展理解} \\ \text{约定} & \text{规定用法} \end{array} $$
3. 符号说明
符号约定的层级如下:
$$ \text{全书约定} \supset \text{章级约定} \supset \text{节级约定} \supset \text{局部约定}. $$
基本原则:
- 高层约定自动延续到低层;
- 低层约定可以补充高层约定;
- 低层约定若暂时改变高层约定,必须显式说明;
- 局部约定在作用域结束后自动失效;
- 不应静默改变一个高频符号的含义。
如果在一节的中途改变了默认对象,要指出“从本节的这一部分开始,除非另有说明,……”。如果这种新约定只持续到本节结束,也可以明确说明其作用域。将符号约定视为“局部作用域”有利于保持复杂章节中的一致性。
五、节末小结
节末小结应该回答下面的问题:本节从什么问题出发;引入了哪些关键概念;各项结果在论证中处于什么位置;本节训练了哪些证明技术;进入习题前应当具备什么能力。
1. 本节写作脉络
一图足矣:
$$ \text{问题} \longrightarrow \text{定义} \longrightarrow \text{技术引理} \longrightarrow \text{核心定理} \longrightarrow \text{推论或应用}. $$
重点不是重述内容,而是解释为什么按照这一顺序组织。
2. 定位本节的位置
按照功能给结果分类:
- 基础定义:建立本节语言;
- 准备引理:处理核心证明中的局部困难;
- 桥梁结果:连接两个表述或两类对象;
- 核心定理:完成本节主要任务;
- 直接推论:由核心结果顺势得到;
- 边界结果:说明理论的适用范围;
- 构造性结果:给出实际对象或算法。
这种分类不要求成为正式标签,但应在小结中有所体现,这样可以区分必须记住的结构节点和可以现场重新推出的结果。
3. 说明定理的数学含义
习题之前的小结主要说明定理的作用:
- 它把什么问题转化成了什么问题;
- 它统一了哪些此前分散的现象;
- 它提供了什么计算或证明工具;
- 它为后续哪个结果准备了条件。
这里不必提前逐题说明“这条定理怎样做第几题”。定理的数学意义与具体习题中的应用实例应分成两个阶段:
- 第一阶段:习题之前
理解定理在理论中的作用。
- 第二阶段:习题之后
通过具体题目认识定理的使用方式、边界和变体。这样可以避免读者把定理仅仅理解成“解题公式”。
4. 回收证明技术
节末小结很适合回收本节出现的证明技术。例如:
- 直接展开定义;
- 双向包含;
- 证明良定义性;
- 唯一性论证;
- 反证法;
- 逆否命题;
- 循环证明等价条件;
- 归纳法;
- 极小性或极大性论证;
- 追图;
- 使用泛性质;
- 选择恰当的不变量。
这里不需要重写证明,只需说明本节的证明主要训练了哪些可迁移的动作。
5. 节末小结的基本结构
下面是一个参考用的模板。请注意,不是每一节都必须把六项写成独立标题。内容较短时,可以合并成两三段。
- 本节的主线任务;
- 各节的核心术语与记号;
- 结果的位置;
- 定理的数学作用;
- 证明技术;
- 习题前检查。
六、习题
习题可以分为:
- 识别题;
- 计算题;
- 构造题;
- 基本证明题;
- 补充引理;
- 条件辨析题;
- 反例题;
- 推广题;
- 综合题。
习题承担的功能包括:
$$ \text{熟悉定义} \longrightarrow \text{训练操作} \longrightarrow \text{使用定理} \longrightarrow \text{辨析条件} \longrightarrow \text{推广结构}. $$
不必要求读者在接触新概念后立即独立构造复杂反例。更自然的顺序是:
- 观察多个正例;
- 计算边界情形;
- 识别错误命题;
- 在提示下寻找反例;
- 最后独立构造反例。
七、章末小结
章末小结最容易与章首导引重复。解决办法不是删去章末小结,而是改变它的组织原则:
- 章首导引按照问题和阅读路线组织;
- 章末小结按照知识结构和回查需求组织。
因此,章末小结不必再次完整叙述本章是怎样一步步展开的,也不必承担下一章的导引任务。
1. 最小复习清单
章末小结应帮助读者在较长时间以后迅速恢复对本章的印象。
清单可以包括:
- 核心对象;
- 关键定义;
- 重要记号;
- 主要定理;
- 重要等价条件;
- 标准构造;
- 典型反例;
- 主要证明技术。
不必为每个术语重新写完整定义,但可以附上一句识别提示。其目标是:
读者看到名称后至少能够回忆大意;若不能,就能立即知道应回正文何处查找。
2. 最小依赖关系
如下简短的定理依赖链是必要的:
$$ \text{定义 A} \longrightarrow \text{引理 B} \longrightarrow \text{定理 C} \longrightarrow \text{推论 D}. $$
这与章首导引有着明显的区别:前者是叙事性的,说明“为什么这样发展”;后者是工具性的,说明“回查某个结果需要哪些前置内容”。
3. 回收习题
章末小结区别于章首导引的一个重要来源,是它能够利用习题所得的经验。可以按功能归纳:
- 哪些习题提供了正文定理的标准实例;
- 哪些习题补充了正文省略的引理;
- 哪些习题说明条件不可删去;
- 哪些习题给出了反例;
- 哪些习题推广了正文结论;
- 哪些习题展示了算法或计算模型。
不必逐题评论,也不应把章末小结写成答案摘要。只需回收那些真正改变本章知识结构的题目。
4. 回查索引
章末小结设置了索引,用于方便复习时快速查询重要的内容:
- 想复习某个定义,应回看哪里;
- 想复习某种证明技术,应回看哪条定理;
- 想看标准例子或反例,应回看哪个例题或习题;
- 想了解某种推广,应回看哪条注记。
这使章末小结从“总结性散文”转变为真正可用的复习工具。
5. 章节的边界
新一章的导引可以从自己的核心问题出发,而不必依附上一章的结尾。因此,需要引入新工具的必要性,不需要放在章末小结里,不过可以保留一句化作为本章的边界:”本章解决了……,但尚未讨论……”,这主要是用于说明当前理论的范围,而不是详细预告下一章。
八、证明与证明概要
结合先前关于证明的讨论,可以把证明内容分配到三个位置。
正文
- 准确的证明;
- 证明策略;
- 必要的技术细节;
- 构造或算法;
- 关键引理。
节末小结
- 证明骨架;
- 可迁移的证明技术;
- 为什么选择该证明方法;
- 哪个步骤最关键。
章末小结
- 本章训练的证明方法;
- 典型证明所在位置;
- 哪些技术以后会反复使用。
这样既避免正文被过多元叙述打断,也避免小结只保存结论而丢失证明经验。
注意,对于算法性证明而言,
$$ \text{存在性证明} \neq \text{构造性证明} \neq \text{可执行算法}. $$
附加伪代码之前,应说明输入、输出、可执行步骤和终止依据。若只有构造思想而没有有效性条件,宜称为“构造过程”或“证明概要”,不宜直接称为算法。
九、章节模板
章首导引
- 具体或历史起点;
- 本章核心问题;
- 现有工具的不足;
- 本章主线和核心思想;
- 前置知识;
- 全章有效的符号约定;
- 学习要求;
- 阅读路线;
- 本章在整体笔记中的位置;
- 对后续发展的简短预告。
每节开头
- 上一部分留下的问题;
- 本节引入的对象或方法;
- 本节的主要目标;
- 必要的局部符号约定。
正文
- 定义和例子;
- 引理、定理、推论;
- 证明和构造;
- 警示、注记、约定;
- 必要的算法和伪代码;
- 反例与边界情形。
节末小结
- 本节主线;
- 核心术语与记号;
- 各项结果在本节中的位置;
- 核心定理的数学作用;
- 证明技术;
- 习题前检查。
习题
按照学习梯度安排:
$$ \text{识别} \to \text{计算} \to \text{基本证明} \to \text{综合应用} \to \text{反例与推广}. $$
章末小结
- 最小复习清单;
- 核心定义和定理索引;
- 最小依赖关系;
- 证明技术清单;
- 习题回收;
- 常见混淆点;
- 正文回查索引;
- 可选的本章边界说明。
十、总结
整套方案最核心的经验可以压缩成六句话:
- 章首导引按问题和阅读路线组织,不按目录逐节复述。
- 详细的局部动机放在各节开头,章首只保留全章层面的关键转折。
- 正文负责建立数学内容,节末小结负责解释这些内容在局部论证中的位置。
- 习题前理解定理的数学作用,习题后回收定理的实例、反例和推广。
- 章末小结按复习和回查需求组织,不再完整重述写作脉络。
- 下一章的必要性原则上由下一章导引说明,而不是由上一章小结提前承担。
整体结构如下:

最重要的是下面这个闭环:
$$ \boxed{ \text{导引(导航)} \quad\rightarrow\quad \text{正文(发展)} \quad\rightarrow\quad \text{小结(定位)} \quad\rightarrow\quad \text{习题(检验,补充)} \quad\longrightarrow\quad \text{章末小结(索引)} } $$