-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCatT.typ
169 lines (131 loc) · 3.13 KB
/
CatT.typ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
// category
#let ob = $upright("Ob")$
#let mor = $upright("Mor")$
#let dom = $sans("dom")$
#let cod = $sans("cod")$
#let id = $sans("id")$ // identity arrow
#let after = sym.compose // TODO deprecated
#let aft = after
#let op = $sans("op")$ // opposite category
#let Hom = $upright("Hom")$
#let sim = $tilde$
// Concrete Categories
#let Cat = $bold("Cat")$
#let CAT = $bold("CAT")$
#let Set = $bold("Set")$
#let Setp = $bold("Set")_star$
#let FinSet = $bold("FinSet")$
#let Rel = $bold("Rel")$
#let Pos = $bold("Pos")$
#let Ord = $bold("Ord")$
#let FinOrd = $bold("FinOrd")$
#let Bool = $bold("Bool")$
#let Prop = $bold("Prop")$
#let Mon = $bold("Mon")$
#let Grp = $bold("Grp")$
#let Ab = $bold("Ab")$
#let Ring = $bold("Ring")$
#let Vect = $bold("Vect")$
#let Gph = $bold("Gph")$
#let Top = $bold("Top")$
#let oCPO = $bold(omega"-CPO")$
// category variables
#let cA = $cal(A)$
#let cB = $cal(B)$
#let cC = $cal(C)$
#let cD = $cal(D)$
#let cE = $cal(E)$
#let cI = $cal(I)$
#let cJ = $cal(J)$
#let cCop = $cC^op$
#let cat(x) = ({
let ci = $circle.filled$
if x == "0" {$bold(0)$}
else if x == "1" {$ci arrow.ccw id_ci$}
else if x == "2" {$ci -> ci$}
})
// small cats
#let cat0 = $bold(bb(0))$
#let cat1 = $bold(bb(1))$
#let cat1ob = $circle.filled.small$
#let ob1 = cat1ob
#let cat2 = $bold(bb(2))$
// arrows
#let to = $->$
#let gets = $<-$
#let monic = [monic]
#let smonic = [split monic]
#let epic = [epic]
#let sepic = [split epic]
// in Set
#let mapto = $|->$
#let restrict = $harpoon.tr$
#let singleton = ${*}$
#let inclusion = $sans(i)$
#let inj = [injective]
#let surj = [surjective]
// isomorphisms
#let isom = [iso]
#let iso = sym.tilde.equiv
#let inv = $-1$
// functors
#let Fct(x, y) = $bold("Fct")[#x, #y]$
#let Id = $sans("Id")$ // identity functor
#let comma = $arrow.b$
#let slice = $\/$
// placeholders
#let sq(x) = $square_#x$
#let sq1 = sq($1$)
#let sq2 = sq($2$)
// concrete functors
#let Free = $sans("Free")$
#let Forget = $sans("Forget")$
// Natural Transformations
#let Nat = $upright("Nat")$
#let nt = $=>$
#let natiso = $==>^tilde$
// object
#let term = $excl$
#let init = $excl.inv$
#let null = $"null"$
#let elem = math.arrow
// product
#let pair(..things) = $angle.l lr(#things.pos().join($,$)) angle.r$
#let p1 = $pi_1$
#let p2 = $pi_2$
#let proj(n) = $pi_#n$
// coproduct
#let inl = $sans("inl")$
#let inr = $sans("inr")$
// exponential
#let ev = $sans("eval")$
#let curry = $sans(upright(lambda))$
// limits
#let limit = $limits(lim)_arrow.long.l$
#let colimit = $limits(lim)_arrow.long.r$
#let Cone = $sans("Cone")$
#let Cocone = $sans("Cocone")$
// Yoneda Lemma
#let yo = $bold("よ")$ // yoneda embedding
#let yy = $bold(cal(Y))$
#let xx = $bold(cal(X))$
#let Eval = $sans("Eval")$
// representable and universal element
#let Elem = $sans("Elem")$
#let uc(x) = $overline(#x)^upright(sans(u))$
// adjoints
#let ladj = $tack.l$
#let radj = $tack$
#let adj = ladj
#let adjars = $arrows.rl$
// Kan
#let Lan = $sans("Lan")$
#let Ran = $sans("Ran")$
// topo
#let pow = $cal(P)$
#let subrel = $lt.eq.curly$
#let subeqv = $equiv$
#let Sub = $sans("Sub")$
// natural-numbers object
#let zero = $sans("zero")$
#let succ = $sans("succ")$