Sheaf
层(Sheaf)是一个很有趣的数学概念。给定一个拓扑空间\(X\),我们可以考虑给这个拓扑空间附加一些额外的信息。比如,我们可以考虑\(X\)上的任何光滑函数,可以是定义在整个\(X\)上的,也可以是定义在\(X\)的某一个开集上的,我们可以把这些定义在开集上的光滑函数称为一个层\(\mathscr{F}\)。抽象地来说,\(\mathscr{F}\)是一个逆变的函子,它把\(X\)上的任何的开集映射到一个阿贝尔群上(并且把开集之间的映射,映射为函数在开集上的拖回映射),这个阿贝尔群就是这个开区间上光滑函数的集合。具体来说,给定一个开集\(U\subset X\),那么\(\mathcal{F}(U)\)就是定义在这个开集\(U\)上的所有光滑函数的集合。我们知道,一个流形上的光滑函数通常满足一些额外的结构,比如两个定义在不同开集\(U\)和\(V\)上的光滑函数,如果在交集\(U \cap V\)上相同的话,那么我们总可以把这个光滑函数扩展到整个并集\(U \cup V\)上面。这是光滑函数层\(\mathscr{F}\)的一个局域性质,而层实际上也正是被这种局域性质所刻画的,在下面的讨论中我们将首先引入预层(Presheaf),然后给它附加一些额外的局域结构或者信息,从而得到层。
预层(Presheaf)
给定一个拓扑空间\(X\),那么\(X\)上的一个预层\(\mathscr{F}\)包含如下的信息:
对于\(X\)的任何一个开集\(U\subset X\),\(\mathscr{F}\)会把它映射为一个阿贝尔群\(\mathscr{F}(U)\)[1]。
如果\(V\subset U\)是\(U\)的一个开子集,那么存在一个"限制同态":\(\rho_{UV} : \mathscr{F}(U) \rightarrow \mathscr{F}(V)\),它会把\(U\)上的信息限制到\(V\)上,并且满足:
\(\mathscr{F} (\emptyset) = 0\)。
\(\rho_{UU}\)是恒等映射。
如果\(W \subset V \subset U\)的话,那么限制同态满足\(\rho_{UW} = \rho_{UV} \rho_{VW}\)。
满足上述所描述的条件,我们就可以把\(\mathscr{F}\)称为\(X\)上的一个预层。给定一个开集\(U\),我们可以谈论预层\(\mathscr{F}\)在上面的"取值"\(\mathscr{F}(U)\),这实际上也是一个集合,并且这个集合\(\mathscr{F}(U)\)里的任何一个元素\(\sigma\)我们称之为一个截面(Section)。如果\(V \subset U\)是一个开子集,那么\(\sigma\)可以利用限制同态\(\rho_{UV}\)限制在\(V\)上,我们记为\(\sigma_{V} \in \mathscr{F}(V)\),也可以说\(\sigma_{V}\)是截面\(\sigma\)在\(V\)上的取值。最后,如果将\(X\)本身作为一个开集,那么\(\mathscr{F}(X)\)中的一个元素我们称之为一个整体截面(global section)。
这里谈到的的截面实际上和纤维丛中的截面是同样的东西。给定一个纤维丛\(FX\),其中\(X\)是基底,\(F\)是基底上的纤维,我们这里假定\(F\)本身也是一个阿贝尔群(比如矢量丛)。那么我们可以谈论纤维丛\(FX\)的截面,并且对于所有开区间的截面的集合实际上就构成了一个层。纤维丛和层是初学者容易混淆的两个概念,需要注意一下,两者虽然有联系,但是并不相同。
层(Sheaf)
给定了拓扑空间\(X\)上的一个预层\(\mathscr{F}\),如果它满足如下的额外条件,我们将称之为层:
(A)如果\(U,V \subset X\)是\(X\)的两个开子集,\(\sigma \in \mathscr{F}(U)\)与\(\tau \in \mathscr{F}(V)\)则是\(U,V\)上的两个截面。如果\(\sigma_{U \cap V} = \tau_{U \cap V}\)的话,那么一定存在\(\nu \in \mathscr{F}(U \cup V)\)使得\(\nu_U = \sigma\)以及\(\nu_V = \tau\)。
(B)如果\(U,V \subset X\)是\(X\)的两个开子集,\(\sigma \in \mathscr{F}(U \cup V)\)是\(U\cup V\)上的一个截面并且满足\(\sigma_U = \sigma_V = 0\),那么一定有\(\sigma=0\)。
现在我们来看一下这两个条件是什么意思。条件(A)实际上是说,两个隶属于不同开集\(U\)和\(V\)的截面,只要它们在公共开集\(U \cap V\)中是相等的,那么我们总可以把这两个截面粘在一起变成在\(U\cup V\)中的一个截面,就像之前的光滑函数一样。条件(B)的意思是,比如我找到了某个开集\(U\)的一个开覆盖\(\{ U_i \}\),如果有一个\(U\)上的截面\(\sigma \in \mathscr{F}(U)\),并且它在任何一个开子集\(U_i\)上的取值都是零,那么只有一种可能性,那就是\(\sigma\)本身就是零。这个条件实际上也可以引申为,如果\(U\)上的两个截面\(\sigma,\tau\)在任何一个开子集\(U_i\)上的取值都相等,那么必然有\(\sigma = \tau\)。
上述这两个条件是反映的是层的局域性质:(A)使得我们可以利用小开集中的信息去粘贴出大开集的信息,也就是从小到大,(B)则使得我们可以把大开集中的信息分解到小开集之中,也就是从大到小。这使得我们可以将拓扑空间\(X\)不断地细化,去分析每个点附近的局域信息,而这些所有的局域信息加在一起则构成了完整的层,或者完整的信息。因此我们说,层是被局域信息所定义的。
两个反例
最后我们来看两个不满足上述条件(A)或(B)的预层的例子,来体会一下层与预层的区别,以及为什么说层是被局域信息所定义的。
第一个例子是所谓的常数预层(Constant Presheaf),也就是对于任何一个开集,它的截面是一个常数,这个层不满足条件(A)。比如我们考虑两个不连通的开区间\(U,V \in X\)满足\(U \cap V = \emptyset\),考虑\(U\)上的截面\(\sigma\)和\(V\)上的截面\(\tau\)。因为\(U \cap V = \emptyset\),所以说我们自然有\(\sigma_{U \cap V} = \tau_{U \cap V}\),但是只有当\(\sigma\)和\(\tau\)是同一个常数的时候,我们才能够将两者粘在一起,否则粘出来的截面在\(U\)和\(V\)上会有不同的取值,因此就是不是\(U\cup V\)上的一个截面了。因此对于这个例子,如果只知道\(U\)和\(V\)中的信息,我们实际上对整体的把握仍然不够。
第二个例子要复杂一些,它不满足第二个看起来最自然不过的条件(B)。我们考虑在一个复流形\(X\)上的所有全纯函数构成的层\(\mathscr{O}\),以及另外一个由所有处处不为零的全纯函数构成的层\(\mathscr{O}^*\)[2]。接下来我们考虑指数映射\(\exp\),很明显对于任何一个全纯函数\(f\),\(\exp f\)仍然是全纯函数,并且处处不为零,因此我们有映射: \[\exp: \mathscr{O} \rightarrow \mathscr{O}^*.\] 接下来我们可以考虑上述映射的余核(Cokernel)coker(\(\exp\)),也就是所有不能够写成一个全纯函数的指数的,处处非零的全纯函数。实际上容易发现,coker(\(\exp\))恰恰就是一个不满足条件(B)的预层。比如说,我们考虑\(X=\mathbf{C}^{*}\)是去掉了原点的整个复平面,其复坐标是\(z\)。那么\(z\)本身就是一个处处不为零的全纯函数,因此\(z \in \mathscr{O}^{*}(\mathbf{C}^{*})\)是层\(\mathscr{O}^*\)的一个截面,并且\(\log z\)则并不是在\(\mathbf{C}^*\)上整体定义的全纯函数,因为\(z\)绕原点转一圈会出来一个额外的\(2\pi i\)的相位。因此我们有\(z \in \textrm{Ker}(\exp)(\mathbf{C}^*)\),也就是预层\(\textrm{Ker}(\exp)(\mathbf{C}^*)\)的一个(不为零)截面。然后我们可以考虑两个开集\(U,V\),比如让\(U\)包含\(\mathbf{C}^*\)中所有相位\(\textrm{arg}(z)\)在\((-\epsilon , 3/2 \pi)\)的点,而\(V\)包含\(\mathbf{C}^*\)中所有相位\(\textrm{arg}(z)\)在\((+\epsilon ,- 3/2 \pi)\)的点,其中\(\epsilon\)是一个小量,那么显然\(\mathbf{C}^* = U \cup V\)。但是当我们尝试把\(z \in \textrm{Ker}(\exp)(\mathbf{C}^*)\)分解到两个开集\(U\)和\(V\)上的时候,我们会发现在\(U\)和\(V\)上\(\log z\)都是可以整体定义的,因为\(U,V\)中都不包含任何一个绕原点的回路,因此不会出现相位无法确定的问题,这也就意味着\(z_U = z_V = 0\)但是\(z\)本身不为零,也就违反了条件(B)。因此对于这个例子,如果只知道\(U\)和\(V\)中的信息,我们同样对整体的把握仍然不够。