文档样式#
所有拉取请求必须符合以下文件标准。请参见这个文档生成
回购有关的信息自动生成的文档页面.
您可以预览GitHub页面或拉取请求的降价处理使用精益文档预览页面.
每个mathlib文件应以以下内容开头:
(请参见下面的示例。)
标头使用atx样式的标头(带有哈希符号,没有基本破折号)。打开和关闭分隔符/-!
和-/
应该出现在自己的行上。
文件的强制标题是一级标题。然后是内容摘要文件的。
具有二级标题的其他节为(按此顺序):
- 主要定义(可选,可在摘要中介绍)
- 主要报表(可选,可在摘要中介绍)
- 符号(仅当此文件中未引入符号时才省略)
- 实施说明(重要设计决策或接口特性的描述,包括使用类型类和
简单
新定义的规范形式)
- 工具书类(参考教科书、论文或维基百科页面)
- 标签(在mathlib中进行文本搜索以查找位置时可能有用的关键字列表覆盖了某些内容)
参考应参考中的bibtex条目mathlib引文文件.请参阅引用其他作品第节。
以下代码块是文件头的示例。
/-
版权所有(c)2018 Robert Y.Lewis。保留所有权利。
根据文件license中所述的Apache 2.0许可证发布。
作者:Robert Y.Lewis
! 此文件是从Lean 3源模块number_theory.padics.padic_norm中移植的
! leanprover-community/mathlib提交92ca63f0fb391a9ca5f22d2409a6080e786d99f7
! 请不要编辑这些行,除非要修改提交id
! 如果您已经移植了上游更改。
-/
进口 马特里卜。代数。订单。字段。电源
进口 马特里卜。数字理论。帕迪奇。PadicVal公司
/-!
#p-adic范数
此文件定义了“ℚ”上的“p`-adic规范”。
“ℚ”上的“p`-adic赋值”是“p`”在分子和
“q”的分母。此函数遵循估价的标准属性
对“p”的假设。
估值产生了“ℚ”的一个范数。这个范数是一个非阿基米德绝对值。
它取{0}к{1/p^k|k∈ℤ}中的值。
##实施说明
这个文件的大部分(但不是全部)都假设`p`是质数。这个假设是自动推断出来的
将`[Fact p.Prime]`作为类型类参数。
##参考文献
*[F.Q.Gouvía,*p-adic数字*][gouvea1997]
*[R.Y.Lewis,*p-adic整数上Hensel引理的形式证明*][lewis2019]
* <https://en.wikipedia.org/wiki/P-adic_number网站>
##标签
p-adic、p-adic,padic、norm、evaluation
-/
文档字符串#
每个定义和主要定理都需要有一个文档字符串。(也鼓励使用引理上的文档字符串,特别是如果引理包含任何数学内容或可能在其他文件中有用。)这些是通过以下方式引入的/--
并被关闭-/
在定义之上,使用换行符或标记和文本之间的单个空格。它们还可以包含Markdown和LaTeX:请参阅下一节。如果文档字符串是完整的句子,那么它应该以句号结尾。命名定理,例如中值定理应为粗体(即前后两个星号)。
文档字符串应传达定义的数学含义。他们被允许撒谎稍微介绍一下实际的实现。以下是文档字符串示例:
/--如果`q≠0`,有理`q`的`p`-adic范数是`p^(-padicValRat pq)`。
如果`q=0`,`q`的`p`-adic范数是`0`-/
定义 padic规范 (第页 : ℕ) (q个 : ℚ) : ℚ :=
如果 q个 = 0 然后 0 其他的 (第页 : ℚ) ^ (-padicValRat 第页 q个)
一个稍微有点虚假但仍描述数学内容的例子是:
/--`padicValRat`将有理`q`的估值定义为`q.num`减去
“q.den”的估价。如果`q=0`或`p=1`,则`padicValRat pq`默认为`0`-/
定义 padicValRat (第页 : ℕ) (q个 : ℚ) : ℤ :=
padicValInt 第页 数量 - padicValNat公司 第页 q.登
这个文档责任
linter列出了所有没有文档字符串的定义。这个docBlameThm文件
linter将列出没有doc字符串的定理和引理。
要仅运行文档责任
linter,将以下内容添加到精益文件的末尾:
要仅运行文档责任
和docBlameThm文件
门楣,在你的瘦肉末尾加上以下文件:
#皮棉 只有 文件责任 docBlameThm文件
运行所有默认过梁,包括文档责任
,在精益结束时添加以下内容文件:
运行所有默认过梁,包括文档责任
然后跑docBlameThm文件
,将以下内容添加到精益文件的结尾:
LaTeX和降价#
我们通常在反勾号之间引用精益声明或变量。写作完全限定的名称(例如。查找集.卡片_操作系统
而不仅仅是卡片_操作系统
)将改名链接到我们的联机文档.
原始URL应括在尖括号中<...>
以确保它们可以在线点击。(一些URL,尤其是带有括号或其他特殊符号的URL,标记渲染器可能无法正确分析。)
当谈论数学符号时,最好使用LaTeX。LaTeX可以是以三种方式包含在文档字符串中:
- 使用单美元符号
$ ... $
以内联方式呈现数学,
- 使用双美元符号
$$ ... $$
以“显示模式”呈现数学,或
- 使用环境
\开始{*}。。。\结束{*}
(没有美元符号)。
这些对应于MathJax公司设置我们的在线文档。Markdown和LaTeX之间的相互作用与上类似https://math.stackexchange.com和https://mathoverflow.net网站,因此可以将文档字符串粘贴到那里有一个编辑沙盒预览最终结果。另请参阅math.stackexchangeMathJax教程.
通常将文件分为几个部分,每个部分都包含相关的声明。通过使用模块文档描述章节/-! ... -/
一开始,这些部分可以在文档中看到。
虽然这些分段注释通常与部分
或命名空间
命令,这不是必需的。可以在节或命名空间内使用节注释,并且可以在一个分区注释之后有多个分区或命名空间。
分段注释仅用于显示和可读性。它们没有语义。
三级标题###
应该用于分区注释中的标题。
如果注释的长度超过一行,则使用分隔符/-!
和-/
应该自己出现线。
请参见精益/快速/基本精益例如在实践中。
命名空间 活页夹信息
/-! ### 关于“BinderInfo”的声明-/
/--与给定的“BinderInfo”相对应的括号-/
定义 括号 : 活页夹信息 → 字符串 × 字符串
| 活页夹信息.implicit => ("{", "}")
| BinderInfo.strict隐式 => ("{{", "}}")
| 活页夹信息.inst隐式 => ("[", "]")
| _ => ("(", ")")
结束 活页夹信息
命名空间 姓名
/-! ### 关于“名称”的声明-/
/--查找`Name`的最大前缀`n`,这样`f n!=无`,然后替换此前缀
值为'fn'-/
定义 地图前缀 ((f) : 姓名 → 选项 姓名) (n个 : 姓名) : 姓名 := Id.运行 做
如果 让 一些 n’ := (f) n个 然后 返回 n’
比赛 n个 具有
| 匿名的 => 匿名的
| 字符串 n’ 秒 => mkStr公司 (地图前缀 (f) n’) 秒
| 号码 n’ 我 => mk编号 (地图前缀 (f) n’) 我
理论文档#
除了精益文件中的文档外,我们还有理论文献我们在其中概述了几个精益文件,以及如果形式化需要一些奇怪的观点,则需要更多数学解释,例如,请参见拓扑文档.
引用其他作品#
要在文档字符串中引用论文和书籍,应首先添加参考文献到BibTeX文件:文档/参考资料.bib
。要使用规范化文件围兜
,你可以运行:
bibtool--preserve.key.case=on--preserve.keys=on--print.use.tab=off--pass.ecomments=on-s-i文档/引用.bib-o文档/引用.bib
为了确保您的引文成为在线文档中的链接,您可以使用以下两种样式:
首先,您可以附上中使用的引文密钥文档/参考资料.bib
方括号中:
在在线文档中,这将类似于:
证据可以在【Boo54】
(钥匙将变为阿尔法
样式标签并成为与参考资料页)
或者,您可以通过将文本放在方括号中来为引文使用自定义文本在引文关键字之前:
请参见[几何Grundlagen der Geometrie][hilbert1999年]用于另一种公理化。
请参见几何Grundlagen der Geometrie用于另一种公理化。
请注意,您当前无法使用右方括号]
链接文本中的符号。因此,以下内容不会导致工作链接:
我们遵循[欧几里德的*元素*[提案1]][健康1956a]。
我们遵循[欧几里德的元素[提案1]][健康1956a]。
以下文件作为良好文档样式的示例进行维护: