|
97 | 97 | $)) |
98 | 98 | 那么,我们大致上就要要求展映射 $(Gamma, A) -> Gamma$ 可以沿着任何代换 $Delta -> Gamma$ 作拉回,并且得到的新映射 $(Delta, A sigma) -> Delta$ 仍然是展映射。 |
99 | 99 |
|
100 | | -对于 $Sigma$ 类型,我们同样先考虑集合范畴中的直观。假如有展映射 $(Gamma, A) -> Gamma$ 与 $(Gamma, A, B) -> (Gamma, A)$,分别表示两个集合族 $A_(x in Gamma)$ 与 $B_(x in (Gamma, A))$,那么如果想取 $Sigma$ 类型 $Sigma A B$,那么对应的映射应当恰好是复合映射 $(Gamma, A, B) -> Gamma$,如@fig:sigma-compcat 所示。这样看,$Sigma$ 类型在展映射的语言中就对应映射的复合。#footnote[ |
| 100 | +对于 $Sigma$ 类型,我们同样先考虑集合范畴中的直观。假如有展映射 $(Gamma, A) -> Gamma$ 与 $(Gamma, A, B) -> (Gamma, A)$,分别表示两个集合族 $A_(x in Gamma)$ 与 $B_(x in (Gamma, A))$,那么如果想取 $Sigma$ 类型 $Sigma A B$,那么对应的映射应当恰好是复合映射 $(Gamma, A, B) -> Gamma$,如@fig:sigma-compcat 所示。这样看,$Sigma$ 类型在展映射的语言中就对应映射的复合.#footnote[ |
101 | 101 | 读者或许注意到,按照这个论证,$Sigma$ 类型应该只要求某个同构于复合映射的映射是展映射,而不要求复合映射本身就是展映射。我们暂时遵循范畴论的观点,不区分同构的事物,即认为同构于展映射的映射也必须是展映射。 |
102 | 102 | ] |
103 | 103 | #numbered-figure(caption: [$Sigma$ 类型示意], canvas({ |
|
135 | 135 | content((-1.5, 5.1), text(fill: red.darken(50%), $(Sigma A B)_x$)) |
136 | 136 | })) <fig:sigma-compcat> |
137 | 137 |
|
| 138 | +对于 $Pi$ 类型,在 #[@sec:model-definition]中提到 $Pi A B$ 满足 $"Tm"(Gamma, Pi A B)$ 与 $"Tm"((Gamma, A), B)$ 之间有自然双射。 |
| 139 | + |
| 140 | +#eq(diagram(spacing: (1em, 3em), { |
| 141 | + node((1, 0), [$(Gamma,A)$]) |
| 142 | + node((2, 0), [$Gamma$]) |
| 143 | + node((2, -1), [$(Gamma, Pi A B)$]) |
| 144 | + node((0, -1), [$(Gamma,A,B)$]) |
| 145 | + node((2, -2), [$Delta$]) |
| 146 | + node((1, -2), [$(Delta,sigma^*A)$]) |
| 147 | + pullback("dr") |
| 148 | + edge((1, 0), (2, 0), "->") |
| 149 | + edge((0, -1), (1, 0), "->") |
| 150 | + edge((2, -1), (2, 0), "->") |
| 151 | + edge((2, -2), (2, -1), [$[sigma,f]$], label-side: left, "->") |
| 152 | + edge((1, -2), (1, 0), "->") |
| 153 | + edge((1, -2), (2, -2), "->") |
| 154 | + edge((1, -2), (0, -1), "-->") |
| 155 | +})) |
| 156 | + |
| 157 | +(introduce slice categories as going into a context) |
| 158 | + |
| 159 | +(pullback is adjoint to composition) |
| 160 | + |
138 | 161 | 接下来,我们考察外延类型论中的相等类型。假设有类型 $A$,对应展映射 $frak(p) : (Gamma, A) -> Gamma$。相等类型依赖于两个变量 $(Gamma, x : A, y : A)$,因此这里第二个变量的类型实际上需要经过代换 $A frak(p)$ 表示它不使用第一个变量 $x : A$。前面提到代换在展映射的语言下是拉回,因此有 |
139 | 162 | #eq(diagram($ |
140 | 163 | (Gamma, A, A frak(p)) edge(->) edge("d", ->) |
|
156 | 179 |
|
157 | 180 | 将 $(Gamma, A)$ 记作 $Delta$,则 $(Gamma, A, A frak(p))$ 是拉回 $Delta times_Gamma Delta$。在代数几何中,有许多条件是关于对角映射 $Delta -> Delta times_Gamma Delta$ 的,例如某映射拟分离当且仅当其对角映射拟紧,某映射分离当且仅当对角映射是闭嵌入,等等。这些条件可以看作是对某类型的相等类型作限制。 |
158 | 181 |
|
159 | | -(every morphism is display) |
| 182 | +从纯语法的视角,我们已经知道类型论中添加了外延相等类型会对理论的性质产生极大影响。从语义的视角也不例外。以下我们假设范畴中每个对象 $Gamma$ 到终对象的映射都是展映射 —— 这是比较合理的要求,因为每个对象应当表示某个语境 $(x_1 : A_1, dots, x_n : A_n)$,因此是从空语境 $1$ 开始逐步搭建的。如果取一个大 $Sigma$ 类型,就能将 $Gamma$ 表示为空语境中的类型,即展映射 $Gamma -> 1$。 |
160 | 183 |
|
| 184 | +在这个假设下,一旦有了外延相等类型,可以证明_所有的映射_都必须成为展映射。具体如图所示: |
161 | 185 | #eq(diagram({ |
162 | 186 | node((1, 0), [$Delta$]) |
163 | 187 | node((1, -1), [$Delta times Gamma$]) |
|
167 | 191 | node((2, -2), [$Delta^2$]) |
168 | 192 | edge((1, -1), (1, 0), "->") |
169 | 193 | edge((1, -2), (1, -1), "->") |
170 | | - edgeL((2, -2), (2, -1), [$(id, delta)$], "->") |
171 | | - edgeR((1, -1), (2, -1), [$(delta, f)$], "->") |
| 194 | + edgeL((2, -2), (2, -1), [$[id, delta]$], "->") |
| 195 | + edgeR((1, -1), (2, -1), [$[delta, f]$], "->") |
172 | 196 | edge((1, -2), (2, -2), "->") |
173 | 197 | })) |
| 198 | +假设有映射 $f : Gamma -> Delta$。图中 $Delta times Gamma -> Delta$ 的投影映射是展映射,因为它是 $Gamma -> 1$ 沿着 $Delta -> 1$ 的拉回。其次,对角映射 $delta : Delta -> Delta^2$ 也是展映射,因为它代表了展映射 $Delta -> 1$ 上的相等类型。因此,图中 $Delta^2 -> Delta^3$ 也是展映射,从而沿着 $[delta, f]$ 拉回得到的也是展映射。最后左侧两个展映射复合也是展映射。通过追图可以得知这个复合恰好是 $f$,换句话说 $f$ 必须是展映射。 |
174 | 199 |
|
175 | | -(introduce slice categories as going into a context) |
| 200 | +从语法的视角,这是因为某个映射 $f : A -> B$ 可以利用 $Sigma$ 类型与外延相等写成 $B$ 上的依值类型 $P(x) = (a : A) times (f(a) = x)$。而此依值类型对应的展映射 $(x : B, y : P(x)) -> B$ 与 $A -> B$ 是同构的。注意到这里的同构是范畴意义上的同构,因此用到的相等关系是判值相等。如果将 $P$ 中的相等类型改为一般的内涵相等类型,则同构不成立。 |
176 | 201 |
|
177 | | -(pullback is adjoint to composition) |
178 | | - |
179 | | -- $Pi$: right adjoint with (automatic) Frobenius condition |
| 202 | +=== 局部积闭范畴的语言 |
180 | 203 |
|
181 | 204 | - Examples of comprehension categories with Pi and Sigma types |
182 | 205 | - LCCC |
|
200 | 223 |
|
201 | 224 | 如果要以展映射为基础定义类型论的模型,就要考虑态射范畴 $cal(C)^->$,即对象是 $cal(C)$ 中的态射,态射是 $cal(C)$ 中的交换方的范畴。我们的第一个想法是选择其子范畴 $cal(E) arrow.hook cal(C)^->$。不过我们可暂且先取任意的函子 $F : cal(E) -> cal(C)^->$,有需要时再讨论将此函子限定为子范畴含入映射的情况。这样,$cal(E)$ 就是全体语义类型的范畴,而 $cal(C)$ 是全体语义语境的范畴。我们有函子 $cal(E) -> cal(C)^(->)$ 将 $Gamma$ 上的依值类型 $A$ 映射到对应的展映射 $(Gamma, A) -> Gamma$。可以发现,$F$ 复合上函子 $cod : cal(C)^(->) -> cal(C)$ 得到的 $cal(E) -> cal(C)$ 就应该将每个类型映射到它所处的语境。 |
202 | 225 |
|
203 | | -接下来,我们需要将代换操作翻译到展映射的语言中。(...) |
204 | | - |
205 | | -范畴语言中,展映射是某个对象 $A in cal(E)$,有函子将其映射到 $(Gamma, A) -> Gamma$。因此我们的实际情况是 |
| 226 | +前面我们大致提到,代换在展映射的语言中应当解释为拉回。 |
| 227 | +范畴语言中是某个对象 $A in cal(E)$,用函子 $F$ 将其映射到 “真正的展映射” $(Gamma, A) -> Gamma$。因此我们的实际情况是 |
206 | 228 | #eq(diagram($ |
207 | 229 | A sigma edge(->) edge("d", |->) |
208 | 230 | & A edge("d", |->) \ |
209 | 231 | Delta edge(->, sigma) & Gamma |
210 | | -$), top: -1em) |
| 232 | +$)) |
211 | 233 | 其中上半部分在 $cal(E)$ 中,由上至下的映射是 $p = cod compose F : cal(E) -> cal(C)$。那么,我们只需先定义这种图表上的广义 “拉回”,再要求 $F$ 将每个这样的广义拉回映射到 $cal(C)^->$ 中真正的拉回方。 |
212 | 234 |
|
213 | 235 | #definition[ |
|
0 commit comments