定理的语法与定义类似,但签名中的余域(即定理陈述)是强制的。
command ::= ... |declModifiers theorem`declModifiers` 是声明修饰符的集合,包括: * 文档注释 `/-- ... -/` * 属性列表 `@[attr1, attr2]` * 可见性说明符 `private` 或 `public` * `protected` * `noncomputable` * `unsafe` * `partial` 或 `nonrec` 所有修饰符都是可选的,并且必须按上述顺序出现。 `nestedDeclModifiers` 与 `declModifiers` 相同,但属性与声明打印在同一行;它用于嵌套在其他语法中的声明,例如结构体字段。declId`declId` 匹配 `foo` 或 `foo.{u,v}`:一个标识符,后面可以跟一个宇宙名称列表。declSig := term`declSig` 匹配类型必需的声明签名:先是一列绑定器,随后是 `: type`。终止提示依次为 `termination_by` 和 `decreasing_by`。
command ::= ... |declModifiers theorem`declModifiers` 是声明修饰符的集合,包括: * 文档注释 `/-- ... -/` * 属性列表 `@[attr1, attr2]` * 可见性说明符 `private` 或 `public` * `protected` * `noncomputable` * `unsafe` * `partial` 或 `nonrec` 所有修饰符都是可选的,并且必须按上述顺序出现。 `nestedDeclModifiers` 与 `declModifiers` 相同,但属性与声明打印在同一行;它用于嵌套在其他语法中的声明,例如结构体字段。declId`declId` 匹配 `foo` 或 `foo.{u,v}`:一个标识符,后面可以跟一个宇宙名称列表。declSig (| term => term)*`declSig` 匹配类型必需的声明签名:先是一列绑定器,随后是 `: type`。终止提示依次为 `termination_by` 和 `decreasing_by`。
command ::= ... |declModifiers theorem`declModifiers` 是声明修饰符的集合,包括: * 文档注释 `/-- ... -/` * 属性列表 `@[attr1, attr2]` * 可见性说明符 `private` 或 `public` * `protected` * `noncomputable` * `unsafe` * `partial` 或 `nonrec` 所有修饰符都是可选的,并且必须按上述顺序出现。 `nestedDeclModifiers` 与 `declModifiers` 相同,但属性与声明打印在同一行;它用于嵌套在其他语法中的声明,例如结构体字段。declId`declId` 匹配 `foo` 或 `foo.{u,v}`:一个标识符,后面可以跟一个宇宙名称列表。declSig where structInstField*`declSig` 匹配类型必需的声明签名:先是一列绑定器,随后是 `: type`。
在 模块中,定理的证明默认不会对外公开。