Lean 模
介绍
在数学中,模(Module)是向量空间概念的推广。向量空间是定义在域上的,而模则是定义在环上的。模在抽象代数和代数几何中扮演着重要角色,尤其是在研究环的结构和表示理论时。
在Lean中,模的概念被形式化为一类代数结构,允许我们进行严格的数学证明和计算。本文将逐步介绍Lean中模的定义、性质及其应用。
模的定义
模的定义依赖于一个环和一个交换群。具体来说,给定一个环 R
和一个交换群 M
,如果存在一个标量乘法运算 R × M → M
,满足以下条件,则称 M
是一个 R
-模:
- 分配律:对于所有
r, s ∈ R
和m ∈ M
,有(r + s) · m = r · m + s · m
。 - 结合律:对于所有
r, s ∈ R
和m ∈ M
,有(r * s) · m = r · (s · m)
。 - 单位元:对于所有
m ∈ M
,有1 · m = m
,其中1
是环R
的单位元。
在Lean中,模的定义如下:
lean
import algebra.module.basic
variables (R : Type*) [ring R] (M : Type*) [add_comm_group M] [module R M]
这里,R
是一个环,M
是一个交换群,module R M
表示 M
是一个 R
-模。
模的性质
模具有许多与向量空间类似的性质,但由于模定义在环上,因此某些性质可能有所不同。以下是一些重要的模性质:
- 子模:如果
N
是M
的一个子集,并且N
本身也是一个R
-模,则称N
是M
的子模。 - 商模:给定一个子模
N
,可以构造商模M / N
,其元素是M
中元素的等价类。 - 直和:两个模的直和
M ⊕ N
也是一个模。
在Lean中,这些性质可以通过以下代码表示:
lean
variables (N : submodule R M)
#check N -- N 是 M 的子模
#check M ⧸ N -- M / N 是商模
#check M ⊕ N -- M ⊕ N 是直和
实际案例
案例1:整数模
考虑整数环 ℤ
和整数模 ℤ
-模 ℤ^n
。这里,ℤ^n
是一个 n
维的整数向量空间,其标量乘法是整数与向量的逐元素乘法。
lean
import data.int.basic
variables (n : ℕ)
#check (ℤ^n) -- ℤ^n 是一个 ℤ-模
案例2:多项式模
考虑多项式环 R[X]
和多项式模 R[X]^n
。这里,R[X]^n
是一个 n
维的多项式向量空间,其标量乘法是多项式与向量的逐元素乘法。
lean
import data.polynomial.basic
variables (R : Type*) [comm_ring R] (n : ℕ)
#check (polynomial R)^n -- (polynomial R)^n 是一个 R[X]-模
总结
模是抽象代数中的一个重要概念,它推广了向量空间的定义,允许我们在更一般的环上进行线性代数操作。在Lean中,模的定义和性质被严格形式化,使得我们可以进行精确的数学证明和计算。
通过本文,我们了解了模的基本定义、性质以及一些实际应用场景。希望这些内容能帮助你更好地理解Lean中的模概念。
附加资源
- Lean数学库文档
- 《抽象代数》 by David S. Dummit and Richard M. Foote
- 《代数几何》 by Robin Hartshorne
练习
- 证明
ℤ^n
是一个ℤ
-模。 - 构造一个
R[X]
-模的例子,并验证其满足模的定义。 - 研究子模和商模的性质,并尝试在Lean中实现它们。