[] 序章:怎样读这个系列

这个系列的文章大多是“定义—定理—证明”的写法,夹着例子、代码和一些题外话。不同用途的段落放在不同样式的方框里,读者一眼就能知道这一段在论证里起什么作用、能不能跳过。本章说明每种方框的含义和本系列的行文习惯。后面的方框都是示范。

1 定理环境

形式化入门 把每个定义、定理等写成独立页面,正文通过 embed 嵌入。嵌入的标题由 typsite 按层级编号,前面的“[种类]”和方框颜色说明用途;同一条目在不同父页面中可以有不同编号。正文引用只写“[种类] 标题”,不带会随嵌入位置改变的编号。引用目标已在当前页里时就地展开,否则打开它的独立页面。

下面的方框也来自 root/statements/ root/statements/ 的独立条目,例如 [定义] 定义(Definition) ;陈述、标题和证明都在条目文件本身中,本页只负责嵌入。

1.1 [定义] 定义(Definition) [definition-environment]

“定义”环境引入一个新概念,并精确规定它的含义。定义只是约定,不需要证明;使用该概念时,以定义中的规定为准,而不以日常含义为准。新术语用粗体标出,括号里给出英文原名。

1.2 [定理] 定理(Theorem) [theorem-environment]

“定理”是需要证明、而且本身就是论证目标的命题。定理条目把陈述与证明放在同一份正文中。

证明
证明写全所有情形,每一步都说明用了哪条定义、哪条规则或哪个已证明的结果。证明以 ∎ 结尾。第一次读可以跳过证明,只看定理说了什么。
∎

1.3 [引理] 引理(Lemma) [lemma-environment]

“引理”是需要证明的辅助命题,主要用于为其他定理铺路,单独看可能不太起眼。

1.4 [推论] 推论(Corollary) [corollary-environment]

“推论”是由已有定理几乎直接得到的结论,证明通常只有一两行;应明确引用所依赖的定理。

1.5 [例] 例(Example) [example-environment]

具体的实例,用来说明一个定义怎么用,或者一个定理在具体情形下说了什么。例子不承担论证,但很多误解是看例子时才暴露的。

1.6 [约定] 约定(Convention) [convention-environment]

“约定”环境规定写法和读法,例如某个符号怎么念、某类证明如何简写。它不引入新的数学对象,而是说明采用这些写法时表达什么含义。

1.7 [附注] 附注(Note) [note-environment]

技术上的补充:容易忽略的前提、常见的误解、和实现有关的细节。附注参与理解,但不参与主线论证。网页中默认折叠,点击标题展开。

1.8 [注记] 注记(Remark) [remark-environment]

“注记”环境把所讨论的概念和哲学、逻辑史上的相关讨论联系起来。注记不参与主线论证,跳过不影响论证的成立;它的用处是说明这些看似技术性的做法从哪里来、为什么有人认为值得这样做。网页中默认折叠,点击标题展开。

2 行文风格
  • 先定义再使用。每个概念在第一次被用到之前都有定义。如果某处用到一个没定义过的词,那是文章的错误。
  • 不说“显然”。“显然”“其余情形类似”是错误最爱藏的地方。证明里所有情形都写出来;确实完全对称的情形,会说明和哪一条对称。
  • 说明为什么要证明。每个定理、引理和推论除了陈述与证明,还会说明它解决什么问题、后文在哪里用到,以及缺少这个保证时会有什么后果。已有解释就不再重复;反例会注明改动了哪条规则,不把另一门语言的例子冒充本文定理的反例。
  • 隐含前提摆上台面。一个论证依赖的前提,即使看起来理所当然,也会被指出来,通常放在附注里。
  • 术语给出原名。中文译名第一次出现时,括号里附英文原名,方便对照文献。人名使用中文译名,第一次出现时链接到维基百科。
  • 希腊字母注明读音。第一次出现的希腊字母会在脚注里给出读音。
  • 代码只做说明。Rust 代码用来展示“规则可以直接变成程序”,旁边会注明它实现的是哪条规则。不会 Rust 不影响理解。
  • 自然语言讲解,形式化符号定义。正文用自然语言解释,但当解释和符号写成的定义有出入时,以定义为准。

References

[] 形式化入门:从 BNF 到类型安全 [index]

Backlinks

Based on Typsite