本页目录

代数拓扑 I · 同伦、基本群与可计算的绕数

前置:连续映射、紧致性、道路连通、群与同态。读完本讲,应能亲自证明圆周基本群是整数群,检查一条折线路径的绕数,并说明为什么两个整数不足以记录八字形中的全部绕法。

学习层:不要先把答案写进“绕几圈”的参数

一条路可以前进、倒退、自交,甚至在某处停住。“看起来围着原点”不能替代计算。这里安排三次不同的检查。

先在实线上指定折线提升,把它投影到圆周;这时提升端点的差就是绕数,实验重点是接续、倒放和固定端点同伦。再输入平面折线,逐段检查有没有穿过原点,确实避开后才计算绕数。最后把空间换成八字形,比较完整的自由群词和只记录两个总次数的交换化。

预测四件事:相同提升端点能否决定圆周回路的同伦类?自交回路还能否有绕数?路径恰好穿过原点时能否用四舍五入得到答案?两个总次数都为零是否足以判定八字形回路可缩?

无脚本读法。 下表与插图来自同一份完整运行记录。分数是输入十进制数对应的精确有理数;三角函数、辐角和图坐标是近似读数。存在性证明在正文,有限采样图本身不证明任意连续同伦避开原点。

提升、精确绕数与非交换词

图1.1:固定端点同伦、极细回路、碰撞临界与交换子;箭头显示行进方向。可打开原图查看四个面板。

固定运行:2026-09-11,Node 24.14.0 / darwin arm64。下载全部节点、逐段判定与词消去记录。提升A节点0、1.5、−0.5、1,B节点0、1,各自等时间间隔,s=t=0.5;极细方形顶点为(±0.000001,±0.000001),逆时针;临界方形原顶点(±1,±1),水平右移1;词w为abAB,比较词v为空。

固定参数下的量 参考值
同伦提升起点 0
输入A终点 1
输入B终点 1
中间提升绕数 1
t为0.5时的提升值 0.5
合并后的分段节点数 4
极细方形绕数 1
极细方形最小距离平方 1e-12
极细方形边数 4
极细方形浮点辐角绕数 1
临界平移路径是否合法 否
临界平移绕数 未定义
临界碰撞边编号 2
临界最小距离平方 0
交换子的约化词 abAB
交换子的约化长度 4
交换子的a净次数 0
交换子的b净次数 0

最小距离平方与绕数的精确分数见下载记录。未定义不是0;交换化为(0,0)也不等于自由群词为空。浮点辐角只用于交叉核对。

不要把三种输出混用:圆周的整数、穿孔平面的整数、八字形的约化词分别依赖指定空间。没有一个实验声称可以自动判定任意空间中的回路是否可缩。

1. 先确定允许怎样变形

道路是连续映射 \(\gamma:I\to X\),其中 \(I=[0,1]\)。若 \(\gamma(0)=\gamma(1)=x_0\),它是基于 \(x_0\) 的回路。固定端点同伦是连续映射

\[H:I\times I\to X,\qquad H(0,t)=\gamma_0(t),\quad H(1,t)=\gamma_1(t),\]
\[H(s,0)=x_0,\qquad H(s,1)=x_1.\]

我们约定 \(s\) 是变形进度,\(t\) 是沿路进度。仅对每个 \(s\) 给出一条连续路还不够:整个二元映射必须连续。端点固定时,反向播放同伦给对称性,沿 \(s\) 把两个同伦各压到半段并拼接给传递性;交界处值相同,闭集粘贴引理保证连续。

在凸集里,相同端点的两条路通过 \(H(s,t)=(1-s)\gamma_0(t)+s\gamma_1(t)\) 相连。穿孔平面不是凸集,这条公式可能穿过被删除的点。所谓“橡皮筋”必须始终留在所指定的空间里。

同伦等价要求存在 \(f:X\to Y\)、\(g:Y\to X\),使 \(gf\simeq\mathrm{id}_X\)、\(fg\simeq\mathrm{id}_Y\)。它比同胚弱。基本群是同伦不变量;这句话不表示所有拓扑问题都能由基本群解决。

2. 群运算为什么在同伦类上成立

规定先走 \(\alpha\) 再走 \(\beta\),端点必须衔接:

\[ (\alpha*\beta)(t)=\begin{cases}\alpha(2t),&0\le t\le1/2,\\\beta(2t-1),&1/2\le t\le1.\end{cases} \]

两段同伦也按此公式接续,故运算不依赖代表元。若 \(\rho:I\to I\) 连续且固定 \(0,1\),则

\[K(s,t)=\gamma\big((1-s)\rho(t)+st\big)\]

证明 \(\gamma\circ\rho\simeq\gamma\)。不要求 \(\rho\) 严格递增,但必须保持值域在 \(I\)。三个路径的两种括号分别把时间分配为 \((1/4,1/4,1/2)\) 与 \((1/2,1/4,1/4)\)。取分段线性递增 \(\rho\),依次把第二组分点 \(0,1/2,3/4,1\) 映到第一组分点 \(0,1/4,1/2,1\),上述同伦便给结合律。

常值路记作 \(e\)。\(\gamma*e\) 对应重参数化 \(\min(2t,1)\),\(e*\gamma\) 对应 \(\max(2t-1,0)\),所以 \([e]\) 是单位元。倒放 \(\bar\gamma(t)=\gamma(1-t)\) 满足

\[H(s,t)=\gamma\big((1-s)\min(2t,2-2t)\big).\]

在 \(s=0\) 时它是 \(\gamma*\bar\gamma\),在 \(s=1\) 时恒为 \(\gamma(0)\),两端始终固定。倒放顺序也成立,故 \([\bar\gamma]=[\gamma]^{-1}\)。注意逆元需要这条“逐渐缩短来回行程”的同伦,不能仅说是保持两端的重参数化。

于是 \(\pi_1(X,x_0)\) 是基于 \(x_0\) 的回路的固定端点同伦类组成的群。它通常不交换。

3. 把连续圆周路径逐段提升到实线

写 \(p(u)=e^{2\pi iu}\)。圆周任意足够短的开弧 \(U\) 都有连续辐角分支 \(b:U\to\mathbb R\);全部分支恰好相差整数。这里辐角以“圈”为单位。

给定连续 \(\gamma:I\to S^1\) 和 \(u_0\) 满足 \(p(u_0)=\gamma(0)\)。开弧的逆像覆盖紧区间。由 Lebesgue 数引理,可选有限分割 \(0=t_0\lt \cdots\lt t_N=1\),使每段像落在某一开弧 \(U_j\)。第一段取 \(b_j\circ\gamma+k_j\),选唯一整数 \(k_j\) 使起点等于 \(u_0\);以后逐段选择整数使接缝一致。闭集粘贴得到连续提升 \(\ell\)。

若 \(\ell\) 与 \(m\) 是同起点的两个提升,则

\[p(\ell(t))=p(m(t))\quad\Longrightarrow\quad \ell(t)-m(t)\in\mathbb Z.\]

连续整数值函数在连通区间上恒定,起点差为零,故处处相同。这同时说明换初始层数 \(u_0+k\) 只会把整个提升平移 \(k\),端点差不变。

“取主辐角”不等于提升。主辐角有割线跳跃,提升必须跨过接缝后接在上一层上。实验第二模式同时列出逐段辐角增量和精确穿越次数,让这两种读法互相核对。

4. 同伦为什么也能连续提升

这里只证明圆周所需情形。设 \(H:I^2\to S^1\) 连续,底边的提升已给定。用有限个开弧覆盖圆周,再以 Lebesgue 数把方块分成足够细的矩形,使每个闭矩形的像落在一个开弧内。

从底行开始,逐行、每行从左到右,在每格取局部辐角分支加整数,使它在已有边界上衔接。若已有下边及左边,它们的并集连通,且在公共角点值相同;已有提升与新分支之差是连续整数值函数,因而同一个整数同时匹配两条边。首格只有底边也一样。有限粘贴给方块上的连续提升 \(\widetilde H\)。

唯一性仍来自 \(\widetilde H-\widetilde H'\in\mathbb Z\) 和方块连通。固定端点同伦的两条竖边在圆周恒定,其提升也必须恒定。因此所有中间回路的提升具有相同起点、相同终点。

这一步解释了一个常被动画遮住的逻辑:并不是“肉眼看来没有跳层”证明绕数不变,而是连续性加离散纤维禁止端点跳到另一个整数。

5. 圆周基本群的完整计算

先固定圆周基点为 \(1\)、提升起点为 \(0\)。若 \(\gamma\) 是回路,则 \(\ell(1)\in\mathbb Z\)。定义

\[w([\gamma])=\ell(1).\]

第4节保证定义与代表元无关。令两条回路的提升为 \(\ell,m\),其端点为 \(n,k\)。接续回路的提升是

\[L(t)=\begin{cases}\ell(2t),&0\le t\le1/2,\\n+m(2t-1),&1/2\le t\le1.\end{cases}\]

两段在中点都取 \(n\),故连续,终点是 \(n+k\)。于是 \(w([\alpha][\beta])=w([\alpha])+w([\beta])\),这是同态而不仅是集合上的对应。

满射:\(t\mapsto e^{2\pi int}\) 的提升为 \(nt\),每个整数都达到。单射:若两提升同起点同终点,

\[\widetilde H(s,t)=(1-s)\ell(t)+sm(t)\]

固定两个端点,投影后就是所求回路同伦。由此 \(\pi_1(S^1,1)\cong\mathbb Z\)。一般起点的绕数为 \(\ell(1)-\ell(0)\),无需先把起点强改成 \(1\)。

实验第一模式把提升输入为等时间节点上的分段线性有理函数,支持不同节点数的两条提升。接续需把第二条整体抬高第一条的终点;倒放需写成 \(\ell(1-t)-\ell(1)\),才能继续从零起步。同伦仅在两端点相同的情况下称为固定基点回路同伦;端点不同会明确拒绝这个结论。

6. 从一条平面折线算出整数

在 \(\mathbb R^2\setminus\{0\}\) 中,径向变形

\[R(s,z)=\big((1-s)+s/|z|\big)z\]

把空间强变形收缩到圆周:系数始终正,圆周上每点固定。故归一化路径 \(z/|z|\) 的绕数完全分类穿孔平面的固定基点回路。

对有向线段 \(a=(a_x,a_y)\) 到 \(b=(b_x,b_y)\),先检查原点是否在线段上:叉积 \(a\times b=0\) 且 \(a\cdot b\le0\)。端点为零也被捕获。任一段命中时整条路径在穿孔平面中不合法,绕数未定义。

对合法闭合折线,用正向 \(x\) 轴作割线。半开穿越规则为

\[c(a,b)=\begin{cases}1,&a_y\le0\lt b_y\ \text{且 }a\times b>0,\\-1,&b_y\le0\lt a_y\ \text{且 }a\times b\lt 0,\\0,&\text{其余情形}.\end{cases}\]

为什么这些符号正确?在线段穿过 \(y=0\) 时,交点横坐标为 \((a\times b)/(b_y-a_y)\)。向上且叉积正、或向下且叉积负,恰好表示在正半轴穿越。每次向上跨割线,连续辐角相对 \([0,2\pi)\) 主值补一圈;向下减一圈。半开端点约定把一次顶点穿越只计入一条相邻边,相切会抵消或不计。沿所有边接起辐角,端点累计差就是

\[w=\sum_jc(a_j,a_{j+1}).\]

重复顶点、停留和自交都允许,只要不碰原点。实验用十进制输入的精确分数判断符号;不会用一个“接近零”的容差把细小但合法的路径抹掉。

另一个显示量是每段 \(\operatorname{atan2}(a\times b,a\cdot b)\),合法线段的辐角变化落在 \((-\pi,\pi)\)。其和除以 \(2\pi\) 在数学上也等于 \(w\);浏览器给近似值及差值,整数答案来自精确穿越规则,不来自对浮点和四舍五入。

7. 图上看不见的间隙也要检查

设 \(d=b-a\)。非退化线段到原点的最近参数为

\[u_* =\min\!\left(1,\max\!\left(0,-\frac{a\cdot d}{d\cdot d}\right)\right),\qquad q_*=|a+u_*d|^2.\]

若 \(d=0\),取 \(u_*=0\)。实验逐段保存投影参数、最近点和精确距离平方,最小值为正才是这条有限折线的避零证据;绘图分辨率不会改变结果。开路也可以检查避零和累计辐角,但不能把它叫闭合回路绕数;本实验要求显式重复首点来闭合,避免偷偷加一条危险的末边。

例子:逆时针方形顶点 \((h-1,-1),(h+1,-1),(h+1,1),(h-1,1),(h-1,-1)\)。当 \(|h|\lt 1\) 时绕数为1;\(|h|>1\) 时为0;\(h=\pm1\) 时有边穿过原点,绕数未定义。因此“从1变成0”恰好需要离开允许的路径空间。

这不是一般同伦的自动验证器。两条路径分别避零,不保证它们之间的直线插值处处避零。要断言整族变形合法,需要像第5节那样给出解析论证,或对整个连续参数域另做严格验证。

8. 基点移动、交换化和非交换信息

若 \(h\) 从 \(x_0\) 到 \(x_1\),定义 \(\beta_h[\gamma]=[h*\gamma*\bar h]\)。插入并消去 \(\bar h*h\) 证明它保持乘法,\(\beta_{\bar h}\) 是逆。不同连接路给出的同构可相差内自同构,故“基点无关”是同构类型的说法,不是天然逐元素相等。

若同伦允许基点沿 \(h\) 移动,沿同伦方块边界追踪可得两端回路经这条路径共轭;反之,可以沿 \(h\) 移动基点,收去前后两段往返路。因此道路连通空间中的自由回路同伦类对应基本群的共轭类。

八字形 \(S^1\vee S^1\) 的基本群是 \(F(a,b)\)。这一空间计算的 van Kampen 证明留到下一页;本页实验在这个已说明的模型上检验群词,不把词算法冒充任意空间算法。字母 \(A,B\) 分别表示 \(a^{-1},b^{-1}\)。相邻逆字母可消去,约化词唯一:扫描时用栈保存已约化前缀,读入逆于栈顶的字母就弹出,否则压入。插入或删除相邻逆对不改变最终栈;可用对剩余输入的归纳核实这点。

交换化只保存

\[\mathrm{ab}(w)=(\#a-\#A,\#b-\#B)\in\mathbb Z^2.\]

词 \(abAB\) 已约化且非空,所以在 \(F(a,b)\) 中非单位;但其交换化为 \((0,0)\)。在环面 \(S^1\times S^1\) 中两种绕法交换,基本群是 \(\mathbb Z^2\),同一形式的交换子就为单位。空间必须先定下来。

词实验还展示共轭 \(hwh^{-1}\)、逐字栈轨迹以及去掉首尾互逆字母后的循环约化词。只比较两个词的交换化不能判相等;只比较两个循环约化字符串是否字面相同,也不能判自由同伦,因为循环旋转仍给共轭词。

循环约化后,两个自由群词共轭当且仅当它们互为循环旋转(空词只与空词对应)。一方向是 \(uv\) 与 \(vu=u^{-1}(uv)u\) 共轭。反方向考察 \(hch^{-1}\),其中 \(c\) 已循环约化:若连接处消去,便把 \(c\) 的首字母移到尾部或尾字母移到首部,并缩短共轭词 \(h\);反复做下去,余下无消去的外层恰是首尾互逆的一对对字母,循环约化时会全部去掉。因此留下的只能是 \(c\) 的循环旋转。实验枚举全部旋转,选字典序最小者作可复查的标签;不会把逆词也自动当成同一个自由同伦类。

9. 连续映射把几何关系送进群

连续 \(f:(X,x_0)\to(Y,y_0)\) 定义 \(f_*[\gamma]=[f\circ\gamma]\)。复合同伦保证良定义,复合接续公式保证群同态。逐个代表元检查可得

\[ (g\circ f)_*=g_*\circ f_*,\qquad (\mathrm{id}_X)_*=\mathrm{id}_{\pi_1(X)}.\]

基点固定的同伦映射诱导相同同态;一般同伦中基点会走动,需要第8节的基点变换。于是一般同伦等价仍给基本群同构,但不能省掉基点说明直接宣称两个带不同目标基点的同态相等。

乘积里的回路就是一对回路,乘积里的同伦就是一对同伦,接续也逐坐标执行,因此

\[\pi_1(X\times Y,(x_0,y_0))\cong\pi_1(X,x_0)\times\pi_1(Y,y_0).\]

这里对选定基点的公式不需要额外假定两个空间全部道路连通。特别地,\(\pi_1(T^2)=\mathbb Z^2\)。

证明 \(S^n\) 在 \(n\ge2\) 时单连通,不能直接断言任意连续回路的像必漏一点。取去掉南极、去掉北极的开集 \(U,V\),它们都同胚于 \(\mathbb R^n\),交集同胚于 \(S^{n-1}\times\mathbb R\),在 \(n\ge2\) 时道路连通。先选基点 \(x_0\in U\cap V\);球面道路连通,其他基点情形由第8节的变基点同构得到。把任意回路有限分段,使每段落在 \(U\) 或 \(V\)。在每个接缝从基点选一条交集内的连接路,将相邻连接路的一正一反插入原路,就把它写成完全位于 \(U\) 或 \(V\) 内的回路乘积。各因子都可缩,故原回路可缩。\(n=1\) 时交集不道路连通,论证在准确的位置失效。

10. 两个存在性定理:把省略的步骤补出来

圆盘不能收回到边界。 若有回缩 \(r:D^2\to S^1\),使边界嵌入 \(i\) 满足 \(r\circ i=\mathrm{id}_{S^1}\),则 \(r_*i_*\) 应为 \(\mathbb Z\) 上恒等映射。但 \(i_*\) 经过平凡群 \(\pi_1(D^2)=0\),复合只能为零,矛盾。这里术语是回缩;圆盘到一点的收缩是另一回事。

二维 Brouwer。 假设连续 \(f:D^2\to D^2\) 没有不动点。令 \(a=f(x)\)、\(v=x-a\ne0\),射线 \(a+\lambda v\) 离开圆盘的参数为

\[\lambda_+(x)=\frac{-a\cdot v+\sqrt{(a\cdot v)^2+(1-|a|^2)|v|^2}}{|v|^2}.\]

因为 \(x=a+v\) 在圆盘内,正向出口满足 \(\lambda_+\ge1\);分母处处非零,公式连续。于是 \(r(x)=a+\lambda_+v\) 连续且落在边界。若 \(x\) 已在边界,则 \(\lambda_+=1\),所以 \(r(x)=x\),得到刚刚排除的回缩。矛盾证明存在不动点;并未给出数值寻找它的算法,也未证明更高维情形或 Kakutani 定理。

代数基本定理。 设 \(P(z)=a_nz^n+\sum_{j\lt n}a_jz^j\),\(n\ge1\)、\(a_n\ne0\),反设处处无根。选 \(R>1\) 且 \(|a_n|R>\sum_{j\lt n}|a_j|\),则在 \(|z|=R\) 上

\[\left|\sum_{j\lt n}a_jz^j\right|\le R^{n-1}\sum_{j\lt n}|a_j|\lt |a_n|R^n.\]

因此从 \(a_nz^n\) 连续加入低次项的整族路径都避零,大圆像的绕数为 \(n\)。另一方面 \(P(rRe^{2\pi it})\) 随 \(r\) 从1变到0,按无根假设始终避零,终点是一条常值回路,绕数为0。这里基点随 \(r\) 变化;可把每条复值回路除以它在 \(t=0\) 的非零值,再归一化,得到基于1的固定基点同伦。乘以非零常数不改变绕数。于是 \(n=0\),矛盾。

二维 Borsuk–Ulam 的延伸。 若连续 \(F:S^2\to\mathbb R^2\) 没有一对对径点同像,则 \(g(x)=(F(x)-F(-x))/|F(x)-F(-x)|\) 连续且满足 \(g(-x)=-g(x)\)。把赤道参数化后得到圆周回路 \(q(t)\),满足 \(q(t+1/2)=-q(t)\)。其连续提升 \(\ell\) 满足 \(\ell(t+1/2)-\ell(t)\in1/2+\mathbb Z\);在 \(0\le t\le1/2\) 上此差恒定,故 \(\ell(1)-\ell(0)\) 是奇整数。另一方面,赤道通过上半球的圆盘延拓可缩,复合 \(g\) 后绕数必须为0,矛盾。这只用了二维版本所需的圆周绕数,没有借此宣称所有维数已被证明。

11. 四道练习与完整答案

题1。 两条圆周回路的零起点提升分别为 \(2t+\sin(2\pi t)\) 与 \(-t\)。求各自绕数、接续与第一条的逆,并构造第一条到标准两圈的固定端点同伦。

练习1:回摆、接续与逆元怎样计算?

令提升 \(\ell(t)=2t+\sin(2\pi t)\)、\(m(t)=-t\),都从0开始。两者端点分别2与−1,故各自绕数为2与−1。接续的提升第二半段必须是 \(2+m(2t-1)\),终点为1,不能直接拼 \(m\) 而在中点产生跳跃。倒放第一条回路的零起点提升是 \(\ell(1-t)-2\),终点−2。第一条与标准两圈之间的同伦提升为 \(2t+(1-s)\sin(2\pi t)\),两端始终0与2,投影后固定基点,故属于同一个基本群元素。

题2。 逆时针方形顶点为 \((\pm10^{-6},\pm10^{-6})\)。计算绕数和到原点的最小距离平方;分析向右平移到临界位置以及超过临界位置的变化。

练习2:极细方形、平移和擦过原点

取逆时针方形顶点 \((\pm\varepsilon,\pm\varepsilon)\),按右下、右上、左上、左下、右下顺序走,\(\varepsilon=10^{-6}\)。向上的右边在正半轴贡献1,向下的左边在负半轴贡献0,水平边贡献0,因此绕数为1,最小距离平方为 \(\varepsilon^2=10^{-12}\)。不存在“太小所以绕数为0”的数学阈值。将方形中心右移 \(h\):当 \(h=\varepsilon\),左边包含原点,绕数未定义;当 \(h>\varepsilon\),向上右边与向下左边分别贡献1与−1,合计0。细小的图形必须看精确符号和账本,不能凭屏幕像素决定。

题3。 比较八字形中的交换子 \(abAB\)、共轭词 \(aabABA\) 与空词。哪些交换化相同、哪些固定基点同伦、哪些自由同伦?换成环面又怎样?

练习3:零总次数是否意味着可缩?

八字形中的 \(w=abAB\) 没有相邻逆字母,约化词仍长4,故 \(w\ne e\)。其两个字母净次数都是0,这只说明交换化为零。共轭词 \(awa^{-1}=aabABA\) 先去掉最外层 \(a,A\) 后得到相同循环词,故对应相同自由回路同伦类;它作为基于楔点的元素并不等于 \(w\),因为两者唯一约化词不同。在环面中 \(ab=ba\),于是同一交换子成为单位。不能脱离空间直接看字符串判“绕洞”。

题4。 推导角度形式的闭路积分与提升绕数的关系,并分别说明对仅连续路径、开路径以及一般空间的非交换信息有哪些限制。

练习4:积分、绕数和一般路径的区别

对分段 \(C^1\) 的避零闭合路径,局部写 \(z=r e^{i\theta}\),微分得 \((x\,dy-y\,dx)/(x^2+y^2)=d\theta\)。逐段取连续衔接的辐角并求和,得到

\[\frac1{2\pi}\oint_\gamma\frac{x\,dy-y\,dx}{x^2+y^2}=\frac{\theta(1)-\theta(0)}{2\pi}=w(\gamma).\]

因为闭合,端点辐角差为 \(2\pi\) 的整数倍。对仅连续而未给可积性条件的路径,基本群和提升绕数仍有定义,但不能不加说明直接写上述经典线积分。对开路径,连续辐角变化也可有意义,却不必是 \(2\pi\) 的整数倍。角度形式的非零周期说明穿孔平面的这个闭形式不恰当;一般空间的一阶实上同调只记录交换化后的实值周期,不能找回第3题被交换化抹去的非交换信息。

12. 从本讲通向覆盖空间与更高不变量

圆周的通用覆盖用整数层数记录回路;一般覆盖的纤维可以被回路置换,这通向单值化与基本群作用。有限图中的覆盖树记录完整约化词,比每个边的净次数保留更多信息。下一讲将用覆盖与 van Kampen 真正计算更复杂的群,而不是给所有“洞”编号后直接相加。

继续向前,局部系统把沿路运输变成线性映射;基本群表示研究这些映射怎样组成一个群作用。高阶同伦和同调补充基本群看不出的结构,例如 \(S^2\) 虽单连通却不可缩。本页并未因此完成这些后续理论,也不把一个绕数动画作为拓扑数据分析或拓扑量子场论的完整实验。

核对与延伸阅读。 Hatcher 的 《Algebraic Topology》第1章,§1.1 中的路径与同伦提升、圆周计算、函子性及二维不动点应用,是本讲的基础核对来源;§1.2–1.3 支撑下一讲的群计算。此处的精确折线判定、账本与习题推导单独展开,不能把阅读引用当作运行验收。

下一页:覆盖空间与 van Kampen。