参考资料:
11. 拓扑学 — Mathematics in Lean 0.1 documentation
传统极限定义的局限
在初等分析中,极限通常按以下几种形式出现:
- 实数列极限:
lim (n → ∞) aₙ = l - 实函数极限:
lim (x → c) f(x) = L - 多元函数、拓扑空间映射的极限等。
每种情况都要单独定义,比如:
- 对序列要考虑自然数趋于无穷;
- 对函数要考虑实数趋近某点;
- 对拓扑空间要换成“邻域”语言。
于是每类极限都需要单独写定义、定理、符号、转换规则 —— 很容易重复劳动。
滤子的核心思想
在数学上,滤子(filter) 是一种抽象的“极限方向”。它描述“沿着某种方式趋近”的概念。
该概念支持两个相关的想法:
- 极限 ,包括上述讨论过的各种极限:数列的有限极限和无穷极限、函数在某点或无穷远处的有限极限和无穷极限等等。
- 最终发生的事情 ,包括对于足够大的自然数
n : ℕ发生的事情,或者在某一点x足够近的地方发生的事情,或者对于足够接近的点对发生的事情,或者在测度论意义上几乎处处发生的事情。对偶地,滤子也可以表达 经常发生的事情 的概念:对于任意大的n,在给定点的任意邻域内存在某点发生,等等。
例如:
- 在实数上,点
a : ℝ的邻域𝓝 a是一个滤子; (at_top : filter ℕ)由所有包含{n | n ≥ N}的集合构成,其中N是某个自然数。 形式化地:∀ N : ℕ, {n | n ≥ N} ∈ at_top。
于是,所有“趋于某物”的概念都可以统一描述为:
当
x沿着过滤器F变化时,f x的像沿着过滤器G变化。
形式化地:
lean
filter.tendsto f F G而极限就是一种特殊情况: lim_{x → a} f(x) = L 被表示为
lean
tendsto f (𝓝 a) (𝓝 L)这种定义的最大优点是统一性:
| 类型 | 传统定义 | filter 版本 |
|---|---|---|
| 实数列极限 | lim (n→∞) aₙ = L | tendsto a at_top (𝓝 L) |
| 函数在点的极限 | lim (x→a) f(x) = L | tendsto f (𝓝 a) (𝓝 L) |
| 无穷远处极限 | lim (x→∞) f(x) = L | tendsto f at_top (𝓝 L) |
| 左/右极限 | lim (x→a⁺) f(x) | tendsto f (𝓝[>] a) (𝓝 L) |
同一个 tendsto 定义可以涵盖所有这些情况。 于是理论结果(如极限的复合律、极限定理、连续性定义)都只需证明一次。
💡 5. 与拓扑定义的关系
事实上,filter 是拓扑中定义收敛(convergence)的一种更强而优雅的方式。 一个点 l 是 f 在 F 下的极限,当且仅当:
对任意
G ∈ 𝓝 l,有f⁻¹(G) ∈ F。
这就是 mathlib 中 tendsto f F (𝓝 l) 的本质。
🧾 6. 小结
| 优点 | 说明 |
|---|---|
| 统一性 | 统一描述序列极限、函数极限、无穷极限等 |
| 简洁性 | 一次定义,广泛使用 |
| 抽象性 | 与拓扑学的邻域系统完美契合 |
| 可组合性 | 极限复合律、连续性、导数等性质容易形式化 |
| 可扩展性 | 可推广到任意拓扑空间、范畴、度量空间等 |
如果你想更深入理解,可以看看 mathlib 中的定义:
lean
def filter.tendsto (f : α → β) (F : filter α) (G : filter β) :=
∀ ⦃S : set β⦄, S ∈ G → f ⁻¹' S ∈ F它精确地表达了“当 x 沿着 F 变化时,f(x) 沿着 G 变化”。
要不要我帮你画一张图,对比一下“传统 ε-δ 定义”和 “filter 定义” 在逻辑结构上的对应?