Artin模

Reading: Section 2.4
Exercises: 2.23
Classify the modules of finite length over k[x]. Find an Artinian module over this ring that is not Noetherian.

一切只有有限多元素的模都既Noether又Artin;有限生成的线性空间既Noether又Artin。

Noether但不Artin,考虑 Noether但不Artin

作为 -模既不Noether也不Artin

Artin但不Noether,事实上注意到它是 ,从而有包含升链 ,而由于这些子模给出它全部真子模,所以它Artin。它被称作 的injective envelope(也是所谓的Prüfer p-群),某种意义上是 的对偶。

任何PID商去某个非零理想都同时是Noether环和Artin环;作为非交换的例子,矩阵环 和有限群的群环 都既Noether又Artin,事实上任何是有限维 -线性空间的 -代数都既Noether又Artin,因为它们的理想都是子空间。

单模是非零的,子模只有 和它自己的模

上的单模有且仅有 的极大理想

对模 ,称它的一个合成列是子模的链且每个 皆为单模,如果 有合成列则称 有有限的长度

有限维线性空间都有有限长度, 都有有限长度

长度有限当且仅当 既Noether又Artin

假设 长度有限。首先单模既Noether又Artin,而我们知道如果有正合列如果 Noether则 Noether,如果 Artin则 Artin,那么考虑一系列正合列即可证明 既Noether又Artin。

反过来,可以不断选取 作为极小的真包含 的子模,这样取出来的升链一定稳定。

下面这个定理属于带算子的群上Jordan-Holder定理在关于模的情形:

如果 长度有限,则 的合成列都有相同的长度,且每个单模在合成列中出现的次数与合成列的选取无关

取两个合成列 ,画成下图中的样子其中 行处是 。考虑这里面每一个小方块的包含关系, 的子模,要么就是 要么是 ,而竖向的商同理,从而如果左下不等于右上,则小方块里要么四个商都非零,横向两个商相等且竖向两个商相等,要么两个是 两个不是(并且只能是左下两个商是 ,考虑到 的子模)且右上两个商相等现在考虑按图中最右上和最左下两个路线得到的合成列就是 ,而我们可以一个小方块一个小方块地把右上一路换到左下,这个过程每一步都不影响合成列中某个单模出现的数量。

假设有正合列 ,如果 长度有限,则 长度有限,且长度等于 的长度之和

Artin环

Reading: Section 2.4
Exercises: 2.6, 2.22 (this one is a bit tricky)

某种意义上Artin环是有限维线性空间的推广。

下列条件等价:
(i) 诺特且 是极大理想的乘积
(ii) 诺特且素理想皆极大(也就是 零维)
(iii) 长度有限
(iv) 是Artin环

(i)(ii): ,于是某个 包含于
(ii)(iii):假设 长度不有限,取极大的使 长度不有限的理想 ,先证明 素理想。记 ,假若 非零,则 长度有限,且乘 自然给出满射 ,由于满射所以 也长度有限,从而由正合列 长度有限,矛盾,故 之一为零,即 素理想,从而 是极大理想, 是单模,矛盾。
(iii)(iv):已经证明。
(iv)(i):首先证明 是极大理想的乘积。取极大理想的所有乘积中极小的 ,则 对任意极大理想 成立,从而由于 是极大理想的乘积, 。如果 ,则可以取极小的使 ,那么对某个 ,于是按 极小性 。同时 给出 ,从而 对某个 ,也就是 。而 包含于一切极大理想中(否则 于是 真包含于 ),故 不在任何极大理想中从而可逆, ,矛盾,于是知

现在证明 诺特。设 ,考虑这里每个 都是 -线性空间,且由Artin条件有限维,从而作为 -模长度有限。每个因子都长度有限意味着 长度有限,从而诺特。

注: 一般不同构于 ,事实上一般前者维数大于1,比如说考虑 ,则 是一维 -线性空间,而 二维(有基 )。

Artin环只有有限多极大理想,且是Artin局部环的乘积

考虑 ,按中国剩余定理 有唯一的素理想。

Artin环的素谱是有限集的离散拓扑,极大理想给出其中的所有点

注:若诺特环的 是有限集的离散拓扑,则可以证明它Artin(显然素理想皆极大),如果没有诺特的条件则不然

考虑环 ,它有唯一的素理想 (因为 从而 ),但它不诺特(从而不Artin)。

Artin环皆长度有限,所以可以按照长度来分类。长度 的Artin环只有零环,长度 的Artin环都是域。长度 时情况开始变得有趣,令

Reading: Section 2.4
Exercises: 2.24
Try to classify Artinian rings of length 3 or 4 over a field. (You do not need to succeed: the point is that you see how complicated this is.)

局部化的定义

直观上, 关于子集 的局部化 就是使 中元素在 中可逆,由此出发最直接的定义是 ,其中 遍历 。这种定义可以自然地用泛性质表达:

关于乘性子集 局部化为满足如下泛性质的环 :任意交换环的同态 若满足 , 则存在唯一的环同态 使下图交换.

RAR[S¡1]''[S¡1]


这种形式上取逆的做法事实上比较非构造性,让我们对 的大小失去了控制,比如我们难以直接知道哪些 中元素会在自然映射 下变成 。如果对 ,存在 使 ,那么 会被打到 ,事实上自然映射 的核由被某个 作用得 组成。

直接考虑将 构造出来,仿照熟悉的分式环就是对 商去 当且仅当 ,但这样证明传递性时,如果 ,而 ,则 ,需要 非零因子才可以有消去律。这样 不含零因子时可以定义 ,如果 中一切非零因子的集合,则 称为 全商环(total quotient ring),它是 最大的使 仍然是其子环的局部化。

的全商环是

更进一步的,对于 有零因子的情形,令 ,则 中的像无零因子,从而可以有局部化 (注意 并不一定单射)

满足 关于 局部化的泛性质,从而

于是 中元素皆有 形式, 当且仅当 对某个 ,一般来说 当且仅当存在某个 使得 ,这就是一般局部化构造性的定义。

,则

中素理想, ,则 是乘性子集, 记作 ,称为 处的局部化。

是一切在 处有定义的有理函数。

Reading: Section 2.1
Exercises: 2.1, 2.7

局部化的

如果 的理想, 是自然的映射,则 (这里 表示理想的收缩 表示理想的扩张 ),于是 是单射

注意到若 ,则 ,从而

如果 诺特,则 诺特

可以被嵌入

某种意义上可以将 中元素看作函数,作为 中余维数为 的“点”,其零点就是 ,其中 ,那么自然 就是 中去除这些点事实上

同构于 中与 不交的素理想组成的子空间

首先 中理想的收缩一定与 不交。反过来如果 中与 不交的素理想,则只需证明 ,而注意到因为素理想而且与 不交, 之后一切显然。

如果 有限生成,则 的开子集

一般来说 是无穷多开集的交,并非开集,但实际和开集的行为会比较像。

中素理想有 不可约)、 三类,它的素谱在上一章3.10已经有过可视化。关于 处局部化 中只有一般点 ,而 则是 对应“一维点”加上一般点,至于 则是点 加上过这点的曲线和一般点注意素理想局部化的素谱和商环的素谱大相径庭,譬如说 的素谱就是 则是 曲线带上其上的这些红点, 就是单点。总体来说,一般直观上商环 的素谱是 以及 “内部”的所有点,而局部化 则是 和在 附近外部的点,在这种意义上商和局部化是相反的操作。

一般来讲, ,把 变成最小的理想,素谱的一般点。而 ,把 变成最大的理想,变成素谱中唯一的闭点。

考虑 处的局部化,它的素谱中有三个点

Reading: Section 2.1
Exercises: 2.10

上的函数

对紧Hausdorff空间 ,我们熟知 ,而 这元素皆为 上的函数,于是也就是 上的函数。类似地对一般的环 ,也有类似的将 视作 上函数的观点。

中极大理想形如 中函数在 处取值于实数,也就是 。对一般的环,则 处的取值应在 中。

,则非零理想都形如 处的取值就是

就具有如下函数图像

但这种函数化会出现一个问题,就是 到函数的映射并不一定是单射。事实上如果 对应的函数是 ,也就是 属于一切 ,也就是 (由上节引理5.6,对任何乘性子集 ,如果 与理想 不交,则存在素理想 不交,然后取 )。

事实上我们有更好的方法来表示出这样的函数,具体来说是使 处在局部化环 中取值。注意到 中的像是 当且仅当存在 ,于是 对应的函数是 的当且仅当存在可逆元杀掉 ,也就是 。现在 对应的函数在 处取值于 ,有时也可以进一步考虑 (如果没用幂零元?),不过一般还是考虑局部环

对开集 ,令 表示 上全体连续函数组成集合,则它具有以下性质:
(i):如果 ,则有函子性(也就是保持自然含入映射的复合,但是反向)的限制映射
(ii)(预层性质):如果 在一切 上的限制是 ,则
(iii)(层性质): 如果 ,有一族连续函数 上的限制相同,则存在 上的限制是

我们希望对任意的环 定义 。事实证明在处理具体问题时,几乎所有问题中我们都只需要考虑 ,所以实际上我们只需要考虑这些基本开集。

直观上来说, 的“零点” 是一个超曲面,于是 就是余维数 的集合(直观上讲就是 不为零的点之集合),而对在 上的“好函数”,首先 中的函数都一定可以,其次因为 上“不消失”,所以 也行,于是遂把 定义为

Exercise: 2.6
Exercises: Suppose R is the ring of continuous real functions on the circle. Is the natural map from R to the localization at a maximal ideal injective? What if R is the ring of smooth functions on the circle? What if R is the ring of analytic functions on the circle?

仿射概形

某种意义上仿射概形的观点在于将 看作 上的函数环。在此前我们给每个 定义了一个环 ,现在我们来说明这种定义确实使 "表现得和 上函数环一样",也就是它满足限制性质、预层性质和层性质。

具体来说 (1) 对含入映射(对应函数的限制) 有自然的映射 ,并且显然满足函子性。

  1. 假设 覆盖, 在一切 上限制为 ,不妨将 替换 ,且设 ,那么诸 覆盖 ,也就是没有素理想(极大理想)包含一切 ,因此有有限多个 生成 ,也就是 ,考虑它的幂次知 也是 ,而 中为零等于说 ,从而即知

  2. 这里只考虑 是整环的情形,虽然说非整环情况下结论也正确。如果 ,对每个 给定了 ,且在 相同。这里依然将 替换为 并设 ,从而诸 覆盖 ,有 ,并且可以将 替换为 ,于是要寻找某个 在一切 上为 变成要找某个 ,在一切 上为 ,也就是 。如果我们找到了这样的 ,那么 ,事实上对 ,由于 ,有 ,因而

和相应配套的层 定义了 仿射概形。这种几何语言和交换环本身的代数语言之间具有一些对偶关系,具体来说

下面是一些基本例子

Exercise: 2.19, 2.26
Exercise for the ambitious: Check the sheaf property discussed in the lecture for rings with zero divisors. (This is tricky.)

Matplotlib大量使用numpy,所以两者经常被一同import

1
2
import numpy as np
import matplotlib.pyplot as plt

Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API,能很方便让用户绘制 2D 图表。

IPython(从而Juypter Notebook)有一组预先定义好的所谓的魔法函数(Magic Functions),你可以通过命令行的语法形式来访问它们,例如%matplotlib inline可以省略掉matplotlib.pyplot.show()

Matplotlib同时支持命令式编程(作用于最近的图表或轴)和面向对象编程,推荐使用后者。

Matplotlib中定义了Figure容器

1
class matplotlib.figure.Figure(figsize=None, dpi=None, *, facecolor=None, edgecolor=None, linewidth=0.0, frameon=None, subplotpars=None, tight_layout=None, constrained_layout=None, layout=None, **kwargs)

matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, *, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs)返回一个Figure对象。

num为int或str,为图形的唯一标识符。figsize是(float, float)形式的tuple,表示宽度和长度,单位英寸,默认[6.4, 4.8]

Axes是一个矩形区域,这个矩形是基于figure坐标系统定义的。Axes也是matplotlib框架中一个重要的类对象,但首先要把它理解为figure中的一个子矩形区域。

Figure.add_axes(rect, projection=None, polar=False, **kwargs)返回向Figure中添加新的轴的Axes对象。rect为(left, bottom, width, height)形式元组,(left, bottom)表示添加的子区域左下角坐标,width和height为子区域宽度长度,它们都以在Figure宽度和高度中的占比表示。

Figure.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True, width_ratios=None, height_ratios=None, subplot_kw=None, gridspec_kw=None)向Figure添加一组子图,形如nrows×cols的矩形排布,返回一个figure和Axes。

Axes中有许多绘图的函数:

plot([x], y, [fmt], *, data=None, **kwargs)plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs) 用于用于绘制线图和散点图。向 plot 提供单个列表或数组,matplotlib 会假设它是一系列 y 值,并自动生成 x 值。接受两个数组时则会将前者作为x后者作为y绘图。fmt为string类型可选项,可以有color, marker, linestyle, linewidth, markersize。具体的功用如下:
Color为颜色
| Character | Color |
|-----------|----------|
| 'b' | Blue |
| 'g' | Green |
| 'r' | Red |
| 'c' | Cyan |
| 'm' | Magenta |
| 'y' | Yellow |
| 'k' | Black |
| 'w' | White |

marker为图中点的标记
| Character | Description |
|-----------|-----------------|
| '.' | Point marker |
| 'O' | Circle marker |
| 'x' | X marker |
| 'D' | Diamond marker |
| 'H' | Hexagon marker |
| 's' | Square marker |
| '+' | Plus marker |

linestyle为直线形式
| Character | Description |
|-----------|------------------|
| '-' | Solid line |
| '--' | Dashed line |
| '.' | Dash-dot line |
| ':' | Dotted line |

在函数调用里写ax.plot(drug_conc, response, color='r', marker='o', linestyle='-.')和写ax.plot(drug_conc, response, 'ro-.')有相同效果。

类似地还有:

scatter():用于绘制散点图
bar()/Barh():用于绘制垂直/水平条形图和水平条形图
hist():用于绘制直方图
pie():用于绘制饼图
imshow():用于绘制图像
例如

1
2
3
4
5
6
7
8
9
10
11
names = ['group_a', 'group_b', 'group_c']
values = [1, 10, 100]
plt.figure(figsize=(9, 3))
plt.subplot(131)
plt.bar(names, values)
plt.subplot(132)
plt.scatter(names, values)
plt.subplot(133)
plt.plot(names, values)
plt.suptitle('Categorical Plotting')
plt.show()

会产生

ax.set_title (label, fontdict=None, loc=None, pad=None, y=None)可以给Axes对象设置标题。label是string,用于作为标题的文本。fontdict是一个dict,包括'fontsize’ 'fontweight’, 'color’等控制标题性质的关键字。loc可以是{'center', 'left', 'right’}中一个。y和pad都是为浮点数。y表示标题的垂直轴位置(1.0为顶部)。如果None(默认值),则自动确定y以避免轴上的装饰符。pad是标题与坐标轴顶部的偏移量,以点为单位。

ax.set_xlabel(xlabel, fontdict=None, labelpad=None, loc=None)ax.set_ylabel(ylabel, fontdict=None, labelpad=None, loc=None)分别用于设置x轴和y轴的标签。loc在 {'bottom', 'center', 'top’}/{'center', 'left', 'right’}中。

ax.set_xticks(ticks)ax.set_yticks(ticks)可以设置x/y轴的刻度位置。ticks为float的list,包括诸刻度的位置。

ax.set_xticklabels(labels, fontdict=None)ax.set_yticklabels(labels, fontdict=None)可以设置x/y轴的刻度标签,labels为string的list。

ax.set_xlim( left=None, right=None)ax.set_ylim( left=None, right=None)可以设置x/y轴的视图限制。

ax.set_facecolor(color)设置图表空白的颜色。

ax.set_frame_on(b)按布尔值b确定是否设置图表矩形边框。

ax.grid(b=None, axis='both’)设置网格线,axis可以为{'both', 'x', 'y'}中一个,表示某轴是否设置网格线。

Spiness是Axes的四个边框线,可以用ax.spines['right']ax.spines['left']ax.spines['top']ax.spines['bottom']访问。

spine.set_color()可以设置颜色(None则不显示)。spine.set_linewidth()设置宽度。

ax.legend(labels, loc, fontsize, title, frameon…)在Axes对象中放图例。labels是str的list,是每条线的命名。而loc则是alt text

ax.twinx()ax.twiny()可以创建一个新的Axes,其中有一个不可见的x / y轴和一个独立的y / x轴,位于与原始轴相对的位置。

NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它描述了一组相同类型(type)的“项”。可以使用N个整数对项进行索引。ndarray中所有元素都具有相同的类型。

numpy.array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0, like=None)返回一个被创建的ndarray。object可以是列表、元组、嵌套列表等。‘K’指不变顺序(保持F & C顺序,如没有选择最接近的,如list为C顺序),而A指不变顺序但默认C顺序,以行为主和以列为主(Fortran顺序)分别是C和F。

numpy中有许多数据类型,可以用一个字母简写
| Symbol | Type |
|--------|-----------------------------|
| i | integer |
| b | boolean |
| u | unsigned integer |
| f | float |
| c | complex float |
| m | timedelta |
| M | datetime |
| O | object |
| S | string |
| U | unicode string |
| V | fixed chunk of memory for other type (void) |
既可以有dtype='f'的简写,也可以写dtype=int这样的写法。

.tolist()返回ndarray转换得到的list。

numpy.zeros(shape, dtype=float, order='C', *, like=None)返回shape形状的全0数组,shape是单个int或者int的元组(例如(2,3)对应二行三列数组)。类似地函数还有numpy.ones,返回全1数组。

numpy.full(shape, fill_value, dtype=None, order='C', *, device=None, like=None)返回全fill_value的shape形状数组。

numpy.eye(N, M=None, k=0, dtype=<class 'float'>, order='C', *, device=None, like=None)[source]返回二维数组,只有第k对角线1其余全为0(k为0默认主对角线)。只给N不给M时返回N×N数组。例如

1
2
3
>>> np.eye(2, 3, dtype=int)
array([[1, 0, 0],
[0, 1, 0]])

numpy.identity(n, dtype=None, *, like=None)返回n阶单位阵。

random.random(size=None)返回半开区间 内的随机浮点数,不填size只返回一个数,否则返回size大小的矩阵。

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0, *, device=None)返回num个[start, stop]上均匀分布的数组成的数组(且以这两个数为起始结尾的)。可以选择性地排除区间的右端点。类似地numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)返回对数坐标下 均匀分布的数组成的数组。

numpy.arange([start, ]stop, [step, ]dtype=None, *, device=None, like=None)返回区间[start, stop)中按step步长均匀分布的数。arange(stop)被解释为在[0, stop)上,step则默认为1。

ndarray.ndim是ndarray的维数。ndarray.shape是一个描述了ndarray形状的元组。ndarrary.size是ndarray的大小,ndarray.dtype则是数据类型。

Python提供了functions,modules,packages和classes作为模块化程序的工具。

Function

docstring是一种出现在模块、函数、类或者方法定义的第一行说明的字符串,这种docstring就会作为该对象的__docs__属性。它形如

1
2
3
def kos_root():
    """Optional Function Description (Docstring)"""
    ... FUNCTION CODE ...

函数返回值时如果用逗号分开多个返回值,python会自动把它们打包为一个tuple。

没有返回值的函数叫做void function,返回None

positional argument按函数定义中参数顺序传参,不需要参数命名。keyword arguments通过kwarg=value传参。keyword arguments需在positional argument后。

在函数中修改不可变参数(如number,string)不影响调用函数的原程序(calling program)中传入函数的变量的值,而原程序中可变参数(如list)则会跟着改变。

使用形如def name(arg1=default_value, ... ):的句子可以为参数设置默认值,这样的参数称为默认参数(default parameters),调用函数时可以不给。一般来讲默认参数定义在函数参数末尾处。

可变参数(arbitrary argument)可以让你传入多个参数。*args允许函数接收任意数量的位置参数,这些参数会被打包成一个tuple,**kwargs则用于接收任意数量的关键字参数,这些参数会被打包成一个字典。。*args必须在positional argument之后,而**kwargs必须在最右。参数命名不一定非要用argskwargs,但这是约定俗成的命名。

python程序可从命令行(command line)中接受任意多参数。import sys以接受这些参数,sys.argv是这些参数被打包而成的string的list(如控制台输入python a b c则sys.argv为['a', 'b', 'c']。

python程序中可以用global关键词使全局变量可以在函数中被修改。

lambda表达式是python中可用的内嵌(in-line)函数,它形如lambda arg1, arg2, ... : expression

filter(function, iterable)函数用于过滤可迭代对象,过滤掉不符合条件的元素,返回由符合条件元素组成的新可迭代对象。function为判断函数,返回True或False。

map(function, iterable, *iterables)返回一个可迭代对象,由function分别应用在可迭代对象iterable每一项得到。如果传递了额外的可迭代对象参数,则函数必须接受相同数量的参数,并并行应用于所有可迭代对象中的项。对于多个可迭代对象,迭代器在最短的可迭代对象耗尽时停止。

Module

模块(Module)是是包含Python定义和语句的文件。文件名是模块名加上.py后缀,模块中的定义可以导入到其他模块或主模块中。在模块中,模块的命名(作为字符串)可以作为全局变量__name__的值使用。模块有一个包含任意Python对象的命名空间。模块通过import过程加载到Python中。

例如一个名为fibo.py的文件可以通过import fibo导入为模块。假若它具有以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Fibonacci numbers module

def fib(n): # write Fibonacci series up to n
a, b = 0, 1
while a < n:
print(a, end=' ')
a, b = b, a+b
print()

def fib2(n): # return Fibonacci series up to n
result = []
a, b = 0, 1
while a < n:
result.append(a)
a, b = b, a+b
return result

那么运行
1
2
3
4
5
6
>>> fibo.fib(1000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
>>> fibo.fib2(100)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
>>> fibo.__name__
'fibo'

类似地可以给模块中函数赋一个本地命名
1
2
3
>>> fib = fibo.fib
>>> fib(500)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377

模块可以包含可执行语句及函数定义。这些语句用于初始化模块。它们只在import语句中第一次遇到模块名时执行。事实上,函数定义也是被“执行”的“语句”;模块中函数定义的执行将函数名添加到模块的全局命名空间中。(如果文件作为脚本执行,也会运行它们)。

每个模块都有自己的私有命名空间,它是模块中定义函数的全局命名空间。使用modname.itemname可以调用模块的全局变量。

可以直接导入模块中的命名到当前调用这个模块的命名空间,例如

1
2
3
>>> from fibo import fib, fib2
>>> fib(500)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377

import将整个模块作为一个对象导入到当前命名空间中,不会导致命名的混淆。而from … import则有可能导致命名的混淆。

而形如from fibo import *的句子则可以导入模块中全部不以_开头的命名。它有可能覆盖主程序中此前定义的命名,因而会有风险。

import后加as可以将一个新命名绑定到被导入模块命名,如import fibo as fib

每个模块在每个解释器会话中只导入一次。

内置函数dir()用于查找模块定义了哪些名称。它返回全部模块中定义的名称对应字符串组成的列表。

Python有内置的help函数。调用内置的帮助系统。(此功能仅供交互使用。)如果没有给出参数,交互式帮助系统将在解释器控制台上启动。如果参数是字符串,则将该字符串作为模块、函数、类、方法、关键字或文档主题的名称进行查找,并在控制台上打印帮助页。如果参数是任何其他类型的对象,则生成该对象的帮助页面。

Package

包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件,该文件的内容可以为空。 __init__.py 用于标识当前文件夹是一个包。这可以防止具有公共名称(如string)的目录无意中隐藏稍后在模块搜索路径上出现的有效模块。在最简单的情况下, __init__.py 可以只是一个空文件,但它也可以执行包的初始化代码或设置 __all__ 变量。

包是通过使用“带点的模块名”来构建Python模块命名空间的一种方式。例如,模块名A.B在一个名为a的包中指定了一个名为B的子模块。就像使用模块可以使不同模块的作者不必担心彼此的全局变量名一样,使用带点的模块名可以使NumPy或Pillow等多模块包的作者不必担心彼此的模块名。

可以从包中导入单个模块,如import sound.effects.echo

模块中的代码也可以当作脚本被执行,就像导入它时一样,但__name__设置为__main__

关于环的可视化,大体有三种比较直接的方法:画出环中每个元素、画出环的一组基和画出环的素理想。

环元素作为点的可视化

这种可视化适用于加群可嵌入线性空间的环,所以它对代数数域的代数整数环,从而对代数数论很有用。这种可视化最简单的例子如下此外有高斯整数 的可视化这种可视化手段的一个直接应用是:

是欧几里得整环,从而是UFD

上继承的复数绝对值,我们将证明它给出一个符合ED公理的尺度函数(这里ED定义我们要求尺度函数是 到某个良序集的映射)。也就是说,对 ,我们想证明存在 满足也即而我们只需考虑到如图所示,以某个 中元素为圆心,半径为1的开圆盘覆盖了复平面则立即可知上述 的存在性。

类似的方法可以毫无阻碍地推广到

是欧几里得整环,从而是UFD

画图立即可知。

不过绝对值并非总是尺度函数,例如对 中整点距离至少是 非但如此, 还可以证明一定不可能是ED,甚至不是UFD(只需注意到 给出不唯一的素因子分解)。也因此它有非主理想,事实上 就是一个例子,这一点的证明依然可以画图这里 是全部黑色格点(从而主理想都是这个矩阵格点旋转伸缩,所以也是矩阵形状的格点),而 是红色三角形格,并非矩形格点,因此不可能是主理想。

不过这个问题可以一定程度上“修复”。例如考虑 。如图所示,这显然是ED

某种意义上ED是稀有的,即使在UFD中也是如此。例如考虑 是UFD,则 也是UFD,但并不一定是PID(例如 ,从而未必ED)。而实践中的PID大多是ED,例如 、 离散赋值环、 等,不过也有反例。

是PID,但不是ED,这点可以作如下考虑:假若它是ED,那么取某个尺度函数最小的不可逆元 ,则 中元素都可以选取一个可逆或者是 的代表元,但 中可逆元只有 ,所以 至多只能有三个元素,但可以验证 对任意 都至少有四个元素。

环一组基作为点的可视化

Exercises: 1.18, 1.19

如果我们的环像 一样,是域 上线性空间,那么就可以通过它的一组基来可视化这个环,例如:

考虑 ,我们只需要考虑把商掉的理想画出来红圈中的元素便给出商环的一组基,于是立即可知

考虑二阶群作用于 ,把 打到 打到 ,则它的不变量是某个多项式环上的自由模。这里画图证明不变量 上的自由模注意到不变量环同构于 (其中 ),于是我们也可以用上面的画图道理来研究例如圆锥 的结构等等。譬如说考虑 的子式生成的理想,也就是 ,注意到 ,令 ,则立即可知这是 作用的不变量( 是三次单位根),从而知 上自由模,且是整环,从而 是素理想。类似地通过画图我们也能知道 不是 上有限生成模

对形式幂级数环 ,Weiestrass多项式是 中的首一多项式 ,其中 常数项为零(也就是不可逆)

(Weiestrass预备定理) 中任何形式幂级数可以唯一写作 ,其中, 是某个Weiestrass多项式, 是可逆元

只对 情形证明其中任何形式幂级数可以唯一写作 ,多元情况的证明没区别。

假设 非零,把 因子提出来,那么不妨设系数非零的 中次数最小者为 ,则如图所示,给 乘上某个 可以消去 项,再乘某个 可以消去 项……这样下来乘上这些元素的无穷乘积即可消去诸 ( ),进而类似地乘 消去 ,……把这些乘积再乘起来得到某个可逆元,作用于 则得到Weiestrass多项式。从这样证明中其实也立即可见如此分解的唯一性。

域上多元形式幂级数环是UFD

考虑二元情况。假设 不可约且 ,想证明 之一成立,则只需考虑 是Weiestrass多项式的情形。现在 ,如果可以证明 是Weiestrass多项式,那么由 是UFD可以推出 。而想证明这点只需要考虑将 分解为 ,其中 是Weiestrass多项式,于是 给出 意义下的唯一分解,由是知 。多元情形与此并无区别,归纳即可。

注1:我们不能希望像 UFD推 UFD那样证明形式幂级数环UFD,因为 UFD不意味着 UFD,例如 是UFD( 的局部化)但其形式幂级数环不然。

注2:收敛幂级数环并非UFD。例如考虑一个有无穷多零点 的收敛幂级数 ,那么 皆整除 ……

环素谱的可视化

Exercises: 1.24

引入素谱的动机从一类特殊的环说起。对紧Hausdorff空间 ,考虑 (即 连续函数环),它是一个交换 -代数。 的极大理想和 中的点有着一一对应, 对应极大理想 。类似地也可以通过这样的办法来重建 的拓扑。

具体来说,首先证明 中素理想 中函数公共零点存在且唯一,从而极大理想自然具有 形式。如果不存在,那么对每个 都存在 ,从而在 某个开邻域非零,那么由紧性可以取出有限个 使对应开邻域覆盖 ,从而 为可逆元,矛盾。而若 是公共零点, ,那么取 的不交开邻域 ,由Urysohn引理存在 ,在 ,和 ,在 ,则 意味着 之一属于 ,可知 属于 从而 并非公共零点。

这种漂亮的对应我们希望也能推广到任意环上,于是得到了所谓环的极大谱,但有一个问题是极大谱不具有函子性(极大理想的原像不一定是极大理想,如 )。不过考虑到 的极大理想对应 满射的核, 复合不一定能确保满射,只能保证像 的子环,也就是像是整环,所以应该把极大理想修改为素理想,而且这样确实可以处理这一问题。于是我们便得到了素谱:

素谱 定义为 全体素理想组成的集合,配备由 定义闭集所给出的拓扑,其中 为全体包含理想 的素理想组成的集合。具体的验证和一些性质见Atiyah第一章习题。

零环的素谱是空集; 由单点组成。

中极大理想的拓扑和 的拓扑完全相同。事实上考虑 子集 的闭包对应 中的极大理想,证明同样Urysohn秒杀之。

的素理想里面极大的部分形如 ,其中 ,而唯一的非极大素理想是 ,它在拓扑上是一个“一般点”(generic point),闭包是全空间。可视化的话就可以画成如图中的样子,不过全体闭集是全集和一切有限集,蓝色的是一般点

考虑 ,其中极大理想是 ,非极大理想是 ,闭集是 的有限子集或 ,它可以被可视化为这样的形象,其中 是一个“一维的”一般点,而诸极大理想落在其闭包上

中,极大理想是 ,非极大理想依然是一般点 ,某种意义上可以看作“对折”的 。更一般地来说, 加上 作用于 的轨道,其中 的代数闭包。

,则 便是 的特征值(考虑到 ,从而非零素理想都形如 ),而特征值被称作谱是由于量子力学上的渊源,这也是为什么素谱被称作“spectrum”的原因之一。

某种意义上我们可以这样分解

考虑 嵌入诱导出 ,从而给出这样的可视化

中,极大理想形如 对应单点,其它非零素理想形如 其中 是素元( 中互素多项式 只能有有限多个公共零点,从而对非主理想 是基数 的有限集(按零点定理如果它只有唯一公共零点,则具有 形式),从而可约,于是 非素理想),除此以外依然有一般点 ,可视化如图

中,极大理想只有 元素皆可逆),而非极大素理想皆为主理想(考虑到 的分式域 ,也就是全体 组成的形式幂级数域,假设素理想 非主,也就是存在互素 ,对 使用Weiestrass预备定理,则要么直接 中,要么不妨设 是Weiestrass多项式,但后一种情况下在 中存在环量组合为 ,也就是 中存在 使 ,于是知 ,类似对 应用预备定理知 ,从而 ),形如 ,其中 不可约,某种意义上可以可视化为过原点的全体“无穷小”这样的

考虑 ,首先由 得到 ,然后考虑这个映射的纤维: 的原像即为 中包含 的素理想,也即是 ,而对 的原像,考虑 中常数项平凡的素理想 ,则有 (考虑到 中生成的理想形如 ),

考虑模形式定义Hecke算子考虑 张成的Hecke代数,于是这个Hecke代数也可以视为 的子环,由一切 生成,而已知 ,于是我们知道这个环 实际就是所有 ,其中 。通过 嵌入得到 ,而考虑到 ,于是有如下可视化像691这样的素数被称为Eisenstein素数。

Exercises: 1.13, 1.14
Draw Spec R, where R is the subring of elements (m,n) of the product ZxZ with m = n mod 100.

素谱的拓扑

的素谱 拟紧

被开集族 覆盖相当于说不存在某个素(极大)理想包含一切 ,也就是诸 生成的理想是 ,其中有限多 环量组合出

注:拟紧和紧的定义完全一致,叫这个名字只是因为20世纪50年代拟紧被定义时,紧经常指紧Hausdorff。

,而后三个环都只有一个素理想,因而 形如

为Klein四元群,考虑 。假设 的特征,也就是 中同态,则 是幂等元。具体到 由四个元素 组成,其中 ,从而易知 有四个特征,于是得到四个幂等元满足 ,于是从而可以可视化为

Exercises: 1.10, 2.25
Draw Spec Z[Z/6Z] = Z[x]/(x6-1), the group ring of the cyclic group of order 6.

不可约空间

称拓扑空间 不可约,如果 非空且不是两个真闭子集的并,或者等价来说 中任意两个非空开集有交

不可约是极强的性质,而且高度非Hausdorff,事实上Hausdorff且不可约等于说 是单点。

,从而不可约。

为Klein四元群, 是一个非不可约空间的例子。事实上 嵌入,以及 的四个特征给出素谱间的反向连续映射。事实上考虑 的纤维,其中 包含素数 的素理想 一一对应于 的素理想,而 到域的同态像特征 ,从而只能是 ,由是知 时, 的素理想对应 的四个特征,而不包含任何素数的情形就是 的例子。接着考虑 的四个映射,便得到可视化总共这里有四个不可约分支,对应四个 中点的闭包

形如 轴和 轴之和,这是两个不可约分支(irreducible component)

不可约

假设 是环 的乘性子集, 是与 不交的理想,则存在素理想包含 且与 不交

对全体包含 且与 不交的集合应用Zorn引理得到某个极大元 ,假设 ,则 不能都与 有交,不妨假设是 ,从而由极大性

中,某个闭集不可约当且仅当其具有 形式

事实上假设 不可约,那么不妨设 ,现证 是素理想。事实上对 意味着 ,则由不可约应有 ,不妨设 ,那么假若 ,则 不交,应用引理得到素理想 包含 且与 不交,与 矛盾。

对紧Hausdorff空间 ,考虑 (即 连续函数环)的素谱。首先 中极大理想具有 形式。假设 的素理想,则 中函数公共零点存在且唯一,从而包含于唯一的 。此外可以证明,如果 是闭的素理想,则

但非闭的素理想则会变得奇异。考虑如此构造:取某个非孤立点 ,则可以找到 使得 的任何邻域上不恒为零,于是取 为某个在 某个邻域上为 汉斯组成的理想, ,依 存在素理想 包含 而与 不交,所以 真包含于 ,于是是非极大的素理想。而且商掉非闭的素理想会导致商环本身拓扑非Hausdorff,这是很糟糕的性质。

Exercises: 1.9, 1.11, 1.25

诺特空间

拓扑空间 诺特,如果下列等价条件成立:
(i) 非空闭集族有极小元
(ii) 非空开集族有极大元
(iii) 开集无穷包含升链稳定(闭集包含降链同理)
(iv) 开集(事实上任何子集)皆拟紧

诺特环 的素谱 是诺特空间

考虑到 中闭集皆形如 中的(i)。

,则 只有唯一的素理想 ,此理想非有限生成,故 非诺特,但 是单点从而诺特。这说明 的逆命题并不成立。

Hausdorff和诺特是高度不相容的性质。

若Hausdorff空间 诺特,则 是有限集的离散拓扑

只需证 有限,有限Hausdorff自动离散。取 ,对任意 ,取不交开集 分离 ,其中 ,则依 紧性,可以取出有限多 覆盖 ,而对应 的交 是开集。

(Noetherian induction)假设 是诺特空间, 是关于 的闭集的性质,则如果对任意闭集 的任何子集具有 蕴含 ,则 的任何子集都具有

取所有不满足 的闭集组成集合,如果非空则取极小元即得矛盾。

诺特空间中的闭集皆为有限多不可约闭集的并

为“ 是有限多不可约闭集的并”,则闭集 要么本身不可约,要么是有限多真子闭集的并,故可以应用诺特归纳。

结合某种意义上就分类了诺特环素谱的全部闭集。

为紧Hausdorff空间, 并非诺特环,考虑 中不可约闭集形如 ,所以如 中所述,至多包含一个极大理想,因此 中显然会有巨量闭集不能被表示为有限多不可约闭集之并(譬如说考虑到 中极大理想重建了 的拓扑,见 ),是一个高度非诺特的空间。

的中心,也就是 生成的环(有限群的话只取决于共轭类),作为Abel群 ,而且现在我们想研究 和其中的不可约元素。

中素理想 ,则 ,即 。带入上面其它约束条件知 时得到 ,而 ,这给出了 三种可能的同态(事实上 ),诱导出三个同态

现在考虑 的纤维,和 时完全相同,包含素数 的理想对应 系数的情形,而模 时, 同态和 同态相同,而 同态只在模 时与前两者相同,于是有如下可视化三个不可约分支对应三个 的闭包。由此也可以得到 的全部不可约闭子集,无非是图上某个点的闭包。这和 的表示密切相关,这三条线某种意义上和 的三个不可约表示有对应,具体的对应关系图中已经标注。图中除了 的其它素数处和 处并无本质区别,某种意义上这是因为 的表示论在特征非 的域上和特征 情形区别不大,而特征为 时则会出现奇异的性质,这与 的modular representation theory很有关系。

Exercises: 1.2

(v) 局部化和取radical交换

一方面显然 。反过来,如果对 ,即 对某个 ,即 ,则可知 ,于是

的生成元,取 杀掉 ,诸 乘积杀掉

只需验证对 ,任意 可逆,按理想吸收律只需验证 总可逆,然而分子分母都是 中元素,因而可逆。

已知 ,需要证存在 使 ,由 相当于要证 其中 ,而 意味着 ,又 包含于 的Jacobson根,所以

考虑如下图表,实箭头都是局部化的自然映射,由于 打到可逆元,所以依局部化泛性质存在唯一 使图表交换,类似地, 分解出 分解出 。显然这两个映射互逆,从而为同构。

AS¡1A(ST)¡1AU¡1(S¡1A)

首先验证 -模,事实上 自然给出了数乘。现在考虑 ,如果 ,考虑 上数乘定义即 ,于是即知良定义,线性和单满性立即可知。

可知 ,于是在 中, ,即 被某个 中元素杀掉,但取 为包含 的极大理想, 需要被 中元素杀掉,矛盾。

整环的情形则有反例。考虑 (环直积),则素理想是 ,然而关于任一的局部环都同构于 (比如说关于 中被杀掉的元素只有 ,也就是自然同态 ,因而 是整环。

依Zorn引理存在极大的乘性子集 。如果能证明 是理想(从而是素理想),则自动是极小的素理想(每个素理想都包含极小的素理想, )。事实上极大的条件相当于任意 都被某个 杀掉,从而立即可知 是理想。

(i):如果 是素理想,则 依定义满足 ,因此任意多素理想补集的交依然具有saturated性质。反过来,对 ,考虑上一题中的 可以改成不交而不影响证明,于是知包含 而不包含 和某个 的全体极大乘性子集之交是 ,而这些极大乘性子集的补集都是素理想,从而得以将 表为素理想的并。

(ii):考虑到某个saturated乘性子集包含 ,当且仅当它是某些与 不交的素理想之并的补集。对 ,考虑到 不交当且仅当 ,于是立即知 ,也就是一切包含 极大理想之并的补集。

(i)(ii): 是同构,把 打到unit,因而 是unit。反过来,如果 总是unit,那么 如果把 打到 ,则 被某个 零化,从而 ,因此 单;由于 ,所以 满。
(ii)(iii): 当且仅当 ,即 ,反过来如果 ,则考虑 即可
(iii)(iv):定义
(iv)(v):显然。
(v)(ii): 中不被包含于任何素理想,从而是可逆元。

如果 ,那么 ,进而 ,故 ,从而 multiplicative,而saturated显然。要证极小素理想都是零因子,只需证极大乘性子集都包含 ,再应用 ,事实上乘性子集添进来 不会致使它中出现
(i):显然。(ii): 的子环,因而 中零因子在 中仍是零因子,而非零因子则就是 中元素,从而可逆。(iii):关于全部可逆元局部化得到它自己。

(i)(ii):
(ii)(iii):假设 ,故 ,但
(iii)(iv): ,由于 平坦保持嵌入,所以只需要对 ,证明 即可,而 ,从而 ,假设 包含于极大理想 ,则 ,于是

考虑到 属于 一切开邻域之交等价于 ,即 ,而 中素理想和 中包含于 的素理想一一对应。

正合当且仅当正合对任意 成立,其中 的拉回;类似地对推出也有相同的结论

假设正合恒成立。

现证 正合,假若不然,则投影 非平凡,但取 ,与 正合矛盾。 再证 正合。 意味着 对任意 成立,取 。类似地 意味着对任意 当且仅当 ,则取 为投影,则

反过来假设正合,则首先显然正合。如果 ,也就是 ,即 ,那么由于 满,依商 泛性质可以唯一分解出

下面证明用的符号依照Lang书上, 看作 的映射,因此上下水平箭头都是

kerd0kerdkerd00M0MM0000N0NN00cokerd0cokerdcokerd00¹f¹gfgfg±¹f¹g


的定义首先直观上是,对 ,由 满射性存在 使 ,再将 沿 竖直下移得到 ,因为 ,从而 ,从而可以取 ,于是直观上 。事实上考虑到 ,而

一般地来讲,形如

M0MN0Nfd0dh


的交换图中, 诱导出 的态射,具体来说 意味着 。类似地, 诱导出 的态射,具体来说 ,而

关于 处正合性:先证 ,事实上对 ,从而 ,于是 ,而 ,于是
反过来证 ,假设 ,那么立即可知 从而 ,即

关于 处正合性:依定义直接有 ),而反过来,考虑 ,由正合性 ,于是 ,即得到反向的包含。

关于 处正合性:由 正合性和图表交换性,

关于 处正合性: 当且仅当 ,由 正合性知 ,也即

(iii):只需验证 满足 的泛性质,而每个 出发的双线性映射都唯一分解为 出发双线性映射之和。

另证:考虑函子 ,和 上的诸投影 ,有关系 ,而 也满足这些关系,于是给出 的直和分解。

或者另证:考虑自然的双线性映射 ,诱导出 。反过来 嵌入 给出 态射 ,从而 直和 态射,把 打到 ,于是易知 互逆。

-模结构直观上应该由 给出,而事实上考虑双线性映射 ,唯一分解出 -线性映射 ,显然 ,于是 的确是 -模,类似地道理知 -模。

取某个 ,则 诱导出 -线性映射 ,而 关于 -线性(后者只需考虑到 的数乘 在泛性质图表里复合后一致即可),从而给出映射 ,这便是我们所求的同构。

或者可以这么考虑:重线性映射 诱导出 ,从而得到双线性映射 ,使 具有 -模结构。

正合意味着 正合,记 的拉回为 ,则其中 典范同构中, 对应于 ,于是 自然被对应至

(i)(ii):正合列可以被分裂为要求 平坦则是要求总正合,从而(i)和(ii)等价性只需注意到

显然。

直观上讲 中为零的部分是 ,实际考虑张量积上 ,而 自然同构于 (只需验证 满足 泛性质即可)。

另证:考虑乘法定义的映射 ,它显然良定义且双线性,从而分解出 。一方面显然这是满射,一方面 中元素皆有 形式,因而被打到 当且仅当 ,从而 ,因而这是单射。

的极大理想, 同理,则 意味着 ,而 的投影也为 -双线性,从而诱导 的满射,意味着

或者考虑结合约束,有于是

张量积的分配律。

,然后应用

考虑到 ,于是 (注意到 的证明适用于任意多直和的情况)。

考虑自然的映射 ,它的 ,而 是整环。极大理想情形结论一般不成立,考虑到

(i):先乘 再乘 便是。(ii):

中元素 ,使其像生成 ,再取 生成元 ,则这些元素生成

,则由

作为 -模的同构自然诱导作为 -模的同构。如果 满射,那么由于张量积右正合, 是满射,从而由 -模的满射得到 -模的满射。

至于 是单射的情形,则结论自然等于说 中任何 个不同元素都线性相关,也就是方程总有非零解。首先考虑一些简单情形,则 有非零解 。对如果子式 不全为令,则便是一组解(行列式按行列展开和重线性等只是整系数多项式道理,所以交换环上依然成立),否则则三个子式均为 ,而比如说 会导致有一组解 (或 ),而这六个系数总有非零的(否则任取一组解),那考虑对应子式(不妨设是 对应方程系数不全是 ),得到一组解,再置 即可。

现在考虑一般的 的情况。如果 阶子式不全为 ,则自然存在一组非零解,具体来说 为系数矩阵消去第 列的行列式。如果 阶子式全为 ,则可以考虑置比如说 全为 取为消去第 列以及某行的 阶子式。如果 阶子式也全为 ,则继续递归下去,如果 不全为 则至少 阶子式不全为 ,于是以上方程组总能得到非零解。

单射情形的另证:假设存在单射 ,复合嵌入 得到单射 ,取其极小多项式,作用于 考虑第 个分量知常数项为 ,然而这意味着 非零,矛盾。

使 ,假设诸 生成子模 ,则 。取 的生成元在 上的投影,则它们生成

考虑到 比起 ,前者被商掉的关系严格包含于后者,而 的单射,从而自然是 的单射。

另证:注意到 的同构由数乘给出,于是考虑由数乘诱导出的线性映射 ,则 有左逆是单射。同时知 ,而 ,故

中元素可以被表为 的有限和,因为directed set的性质存在 大于等于诸 ,然后换 即可。如果 ,那么 可以被表为有限和 ,把 乘进去就是 。考虑投影 ,取 大于等于诸 ,则

考虑诸 给出 ,而 ,故 泛性质给出唯一的 。就一般定义而言,一个 -模的direct system是某个direct set (任何两元素集有上界的偏序集)到 - 的函子(也就是这个偏序集形状的交换图),它上的一个锥是模 配备一系列映射 ,且使如下图表交换(这里

NMjMiMk


两个锥 间的同态是使两个锥的图表带上这个映射之后的大图表交换的线性映射,容易验证这样我们定义了一个范畴。它的direct limit 就是其上锥的始对象,具体泛性质如以下交换图

lim¡!MiNMjMiMk9!

显然 满足余极限泛性质。

取16题中 即可。就一般的余极限定义来讲,direct system是函子 ,那么 就是 自然变换。而余极限本身,比如说 ,则是universal的自然变换 ,那么自然变换的合成给出了 的自然变换,于是题中所求态射立即由 的泛性质给出。

假设 附带的态射是 ,自然变换的相容性条件要求 ,极限态射要求 (实际一堆条件一图了然)。

现证 :考虑 ,由 :假若 ,由于 ,故相当于存在 ,从而 ,依定义 ,从而

我们已经知道,和direct system相容的一族线性映射 和某个 是相同的(泛性质),我们现在希望能证明 出发的满足某些相容性条件的双线性映射族,和 出发的双线性映射相同,从而可以把这种等同性推到张量积上。

考虑和这个direct system相容的一组双线性映射 ,这里具体来说,考虑 出发的线性映射相当于 出发的双线性映射,然后 关于 组成direct system的相容性约束就相当于,固定任意 ,则 给出一族和direct system相容的线性映射,而这族线性映射关于 又线性。

现在我们说明通过泛性质分解出的一族映射 关于 线性,从而是双线性映射。考虑 分解为 ,于是 ,类似地可以验证保持数乘。从而就证明了 关于 线性。

又因为对每个 出发双线性映射,它复合上 都给出一族符合约束的双线性映射族,所以我们给出的双线性映射族到 出发双线性映射的对应关系也是满的,因此现在就有了我们想要的, 出发双线性映射族,和 出发双线性映射的自然的一一对应关系。换言之,我们验证了 满足 的泛性质。

另证: 中已经说明同一个direct set的两个direct system之间的自然变换一一对应于它们direct limit间的线性映射。现在对典范双线性映射 ,固定某个 ,则得到一个自然变换,从而 的线性映射,显然它关于 也线性,于是 得到一个双线性映射 ,从而有一个线性映射 ,而我们从线性映射族 分解出唯一的线性映射 ,容易验证这两者互逆,从而是同构。

0%