Skip to content

Commit 53d1998

Browse files
committed
feat(AlgebraicTopology): notation ⦋n⦌ for SimplexCategory.mk n (#21565)
We change the notation for `SimplexCategory.mk n` from `[n]` (which conflicts with the `List` notation) to `⦋n⦌`. This also allows removing many type annotations of the form `(⦋n⦌ : SimplexCategory)`. This was done in commit [`ceb03e9`](ceb03e9). [Zulip poll](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/simplex.20category.20notations/near/497502272)
1 parent c935b3d commit 53d1998

25 files changed

+193
-200
lines changed

Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ variable {X} {Y}
135135

136136
/-- The alternating face map complex, on morphisms -/
137137
def map (f : X ⟶ Y) : obj X ⟶ obj Y :=
138-
ChainComplex.ofHom _ _ _ _ _ _ (fun n => f.app (op [n])) fun n => by
138+
ChainComplex.ofHom _ _ _ _ _ _ (fun n => f.app (op ⦋n⦌)) fun n => by
139139
dsimp
140140
rw [comp_sum, sum_comp]
141141
refine Finset.sum_congr rfl fun _ _ => ?_
@@ -145,7 +145,7 @@ def map (f : X ⟶ Y) : obj X ⟶ obj Y :=
145145
apply f.naturality
146146

147147
@[simp]
148-
theorem map_f (f : X ⟶ Y) (n : ℕ) : (map f).f n = f.app (op [n]) :=
148+
theorem map_f (f : X ⟶ Y) (n : ℕ) : (map f).f n = f.app (op ⦋n⦌) :=
149149
rfl
150150

151151
end AlternatingFaceMapComplex
@@ -172,7 +172,7 @@ theorem alternatingFaceMapComplex_obj_d (X : SimplicialObject C) (n : ℕ) :
172172

173173
@[simp]
174174
theorem alternatingFaceMapComplex_map_f {X Y : SimplicialObject C} (f : X ⟶ Y) (n : ℕ) :
175-
((alternatingFaceMapComplex C).map f).f n = f.app (op [n]) :=
175+
((alternatingFaceMapComplex C).map f).f n = f.app (op ⦋n⦌) :=
176176
rfl
177177

178178
theorem map_alternatingFaceMapComplex {D : Type*} [Category D] [Preadditive D] (F : C ⥤ D)
@@ -198,7 +198,7 @@ theorem map_alternatingFaceMapComplex {D : Type*} [Category D] [Preadditive D] (
198198

199199
theorem karoubi_alternatingFaceMapComplex_d (P : Karoubi (SimplicialObject C)) (n : ℕ) :
200200
((AlternatingFaceMapComplex.obj (KaroubiFunctorCategoryEmbedding.obj P)).d (n + 1) n).f =
201-
P.p.app (op [n + 1]) ≫ (AlternatingFaceMapComplex.obj P.X).d (n + 1) n := by
201+
P.p.app (op n + 1) ≫ (AlternatingFaceMapComplex.obj P.X).d (n + 1) n := by
202202
dsimp
203203
simp only [AlternatingFaceMapComplex.obj_d_eq, Karoubi.sum_hom, Preadditive.comp_sum,
204204
Karoubi.zsmul_hom, Preadditive.comp_zsmul]
@@ -221,7 +221,7 @@ def ε [Limits.HasZeroObject C] :
221221
SimplicialObject.Augmented.point ⋙ ChainComplex.single₀ C where
222222
app X := by
223223
refine (ChainComplex.toSingle₀Equiv _ _).symm ?_
224-
refine ⟨X.hom.app (op [0]), ?_⟩
224+
refine ⟨X.hom.app (op 0), ?_⟩
225225
dsimp
226226
rw [alternatingFaceMapComplex_obj_d, objD, Fin.sum_univ_two, Fin.val_zero,
227227
pow_zero, one_smul, Fin.val_one, pow_one, neg_smul, one_smul, add_comp,
@@ -237,7 +237,7 @@ def ε [Limits.HasZeroObject C] :
237237

238238
@[simp]
239239
lemma ε_app_f_zero [Limits.HasZeroObject C] (X : SimplicialObject.Augmented C) :
240-
(ε.app X).f 0 = X.hom.app (op [0]) :=
240+
(ε.app X).f 0 = X.hom.app (op 0) :=
241241
ChainComplex.toSingle₀Equiv_symm_apply_f_zero _ _
242242

243243
@[simp]
@@ -296,7 +296,7 @@ variable (X Y : CosimplicialObject C)
296296
/-- The differential on the alternating coface map complex is the alternate
297297
sum of the coface maps -/
298298
@[simp]
299-
def objD (n : ℕ) : X.obj [n] ⟶ X.obj [n + 1] :=
299+
def objD (n : ℕ) : X.obj ⦋n⦌ ⟶ X.obj n + 1 :=
300300
∑ i : Fin (n + 2), (-1 : ℤ) ^ (i : ℕ) • X.δ i
301301

302302
theorem d_eq_unop_d (n : ℕ) :
@@ -311,14 +311,14 @@ theorem d_squared (n : ℕ) : objD X n ≫ objD X (n + 1) = 0 := by
311311

312312
/-- The alternating coface map complex, on objects -/
313313
def obj : CochainComplex C ℕ :=
314-
CochainComplex.of (fun n => X.obj [n]) (objD X) (d_squared X)
314+
CochainComplex.of (fun n => X.obj ⦋n⦌) (objD X) (d_squared X)
315315

316316
variable {X} {Y}
317317

318318
/-- The alternating face map complex, on morphisms -/
319319
@[simp]
320320
def map (f : X ⟶ Y) : obj X ⟶ obj Y :=
321-
CochainComplex.ofHom _ _ _ _ _ _ (fun n => f.app [n]) fun n => by
321+
CochainComplex.ofHom _ _ _ _ _ _ (fun n => f.app ⦋n⦌) fun n => by
322322
dsimp
323323
rw [comp_sum, sum_comp]
324324
refine Finset.sum_congr rfl fun x _ => ?_

Mathlib/AlgebraicTopology/CechNerve.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ lemma wideCospan.limitIsoPi_hom_comp_pi [Finite ι] (X : C) (j : ι) :
397397
rw [← wideCospan.limitIsoPi_inv_comp_pi, Iso.hom_inv_id_assoc]
398398

399399
/-- Given an object `X : C`, the Čech nerve of the hom to the terminal object `X ⟶ ⊤_ C` is
400-
naturally isomorphic to a simplicial object sending `[n]` to `Xⁿ⁺¹` (when `C` is `G-Set`, this is
400+
naturally isomorphic to a simplicial object sending `⦋n⦌` to `Xⁿ⁺¹` (when `C` is `G-Set`, this is
401401
`EG`, the universal cover of the classifying space of `G`. -/
402402
def iso (X : C) : (Arrow.mk (terminal.from X)).cechNerve ≅ cechNerveTerminalFrom X :=
403403
NatIso.ofComponents (fun _ => wideCospan.limitIsoPi _ _) (fun {m n} f => by

Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,11 @@ theorem postComp_φ : (f.postComp h).φ = f.φ ≫ h := by
131131
/-- A `MorphComponents` can be precomposed with a morphism of simplicial objects. -/
132132
@[simps]
133133
def preComp : MorphComponents X' n Z where
134-
a := g.app (op [n + 1]) ≫ f.a
135-
b i := g.app (op [n]) ≫ f.b i
134+
a := g.app (op n + 1) ≫ f.a
135+
b i := g.app (op ⦋n⦌) ≫ f.b i
136136

137137
@[simp]
138-
theorem preComp_φ : (f.preComp g).φ = g.app (op [n + 1]) ≫ f.φ := by
138+
theorem preComp_φ : (f.preComp g).φ = g.app (op n + 1) ≫ f.φ := by
139139
unfold φ preComp
140140
simp only [PInfty_f, comp_add]
141141
congr 1

Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ the subcomplex generated by the images of all `X.σ i`.
1717
1818
In this file, we obtain `degeneracy_comp_P_infty` which states that
1919
if `X : SimplicialObject C` with `C` a preadditive category,
20-
`θ : [n] ⟶ Δ'` is a non injective map in `SimplexCategory`, then
20+
`θ : ⦋n⦌ ⟶ Δ'` is a non injective map in `SimplexCategory`, then
2121
`X.map θ.op ≫ P_infty.f n = 0`. It follows from the more precise
2222
statement vanishing statement `σ_comp_P_eq_zero` for the `P q`.
2323
@@ -117,7 +117,7 @@ theorem σ_comp_PInfty (X : SimplicialObject C) {n : ℕ} (i : Fin (n + 1)) :
117117

118118
@[reassoc]
119119
theorem degeneracy_comp_PInfty (X : SimplicialObject C) (n : ℕ) {Δ' : SimplexCategory}
120-
(θ : ([n] : SimplexCategory) ⟶ Δ') (hθ : ¬Mono θ) : X.map θ.op ≫ PInfty.f n = 0 := by
120+
(θ : ⦋n⦌ ⟶ Δ') (hθ : ¬Mono θ) : X.map θ.op ≫ PInfty.f n = 0 := by
121121
rw [SimplexCategory.mono_iff_injective] at hθ
122122
cases n
123123
· exfalso

Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ theorem iff {j : ℕ} {i : Fin (j + 2)} : Isδ₀ (SimplexCategory.δ i) ↔ i =
5757
· rintro rfl
5858
exact ⟨rfl, by dsimp; exact Fin.succ_ne_zero (0 : Fin (j + 1))⟩
5959

60-
theorem eq_δ₀ {n : ℕ} {i : ([n] : SimplexCategory) ⟶ [n + 1]} [Mono i] (hi : Isδ₀ i) :
60+
theorem eq_δ₀ {n : ℕ} {i : ⦋n⦌ ⟶ ⦋n + 1} [Mono i] (hi : Isδ₀ i) :
6161
i = SimplexCategory.δ 0 := by
6262
obtain ⟨j, rfl⟩ := SimplexCategory.eq_δ_of_mono i
6363
rw [iff] at hi
@@ -217,7 +217,7 @@ def obj (K : ChainComplex C ℕ) : SimplicialObject C where
217217
/-- By construction, the simplicial `Γ₀.obj K` is equipped with a splitting. -/
218218
def splitting (K : ChainComplex C ℕ) : SimplicialObject.Splitting (Γ₀.obj K) where
219219
N n := K.X n
220-
ι n := Sigma.ι (Γ₀.Obj.summand K (op [n])) (Splitting.IndexSet.id (op [n]))
220+
ι n := Sigma.ι (Γ₀.Obj.summand K (op ⦋n⦌)) (Splitting.IndexSet.id (op ⦋n⦌))
221221
isColimit' Δ := IsColimit.ofIsoColimit (colimit.isColimit _) (Cofan.ext (Iso.refl _) (by
222222
intro A
223223
dsimp [Splitting.cofan']
@@ -311,7 +311,7 @@ def Γ₂ : Karoubi (ChainComplex C ℕ) ⥤ Karoubi (SimplicialObject C) :=
311311

312312
theorem HigherFacesVanish.on_Γ₀_summand_id (K : ChainComplex C ℕ) (n : ℕ) :
313313
@HigherFacesVanish C _ _ (Γ₀.obj K) _ n (n + 1)
314-
(((Γ₀.splitting K).cofan _).inj (Splitting.IndexSet.id (op [n + 1]))) := by
314+
(((Γ₀.splitting K).cofan _).inj (Splitting.IndexSet.id (op n + 1))) := by
315315
intro j _
316316
have eq := Γ₀.Obj.mapMono_on_summand_id K (SimplexCategory.δ j.succ)
317317
rw [Γ₀.Obj.Termwise.mapMono_eq_zero K, zero_comp] at eq; rotate_left
@@ -322,9 +322,9 @@ theorem HigherFacesVanish.on_Γ₀_summand_id (K : ChainComplex C ℕ) (n : ℕ)
322322

323323
@[reassoc (attr := simp)]
324324
theorem PInfty_on_Γ₀_splitting_summand_eq_self (K : ChainComplex C ℕ) {n : ℕ} :
325-
((Γ₀.splitting K).cofan _).inj (Splitting.IndexSet.id (op [n])) ≫
325+
((Γ₀.splitting K).cofan _).inj (Splitting.IndexSet.id (op ⦋n⦌)) ≫
326326
(PInfty : K[Γ₀.obj K] ⟶ _).f n =
327-
((Γ₀.splitting K).cofan _).inj (Splitting.IndexSet.id (op [n])) := by
327+
((Γ₀.splitting K).cofan _).inj (Splitting.IndexSet.id (op ⦋n⦌)) := by
328328
rw [PInfty_f]
329329
rcases n with _|n
330330
· simpa only [P_f_0_eq] using comp_id _

Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ def N₂Γ₂ : Γ₂ ⋙ N₂ ≅ 𝟭 (Karoubi (ChainComplex C ℕ)) :=
149149
@[simp]
150150
theorem N₂Γ₂_inv_app_f_f (X : Karoubi (ChainComplex C ℕ)) (n : ℕ) :
151151
(N₂Γ₂.inv.app X).f.f n =
152-
X.p.f n ≫ ((Γ₀.splitting X.X).cofan _).inj (Splitting.IndexSet.id (op [n])) := by
152+
X.p.f n ≫ ((Γ₀.splitting X.X).cofan _).inj (Splitting.IndexSet.id (op ⦋n⦌)) := by
153153
dsimp [N₂Γ₂]
154154
simp only [whiskeringLeft_obj_preimage_app, NatTrans.comp_app, Functor.comp_map,
155155
Karoubi.comp_f, N₂Γ₂ToKaroubiIso_inv_app, HomologicalComplex.comp_f,

Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ theorem Hσ_eq_zero (q : ℕ) : (Hσ q : K[X] ⟶ K[X]).f 0 = 0 := by
138138

139139
/-- The maps `hσ' q n m hnm` are natural on the simplicial object -/
140140
theorem hσ'_naturality (q : ℕ) (n m : ℕ) (hnm : c.Rel m n) {X Y : SimplicialObject C} (f : X ⟶ Y) :
141-
f.app (op [n]) ≫ hσ' q n m hnm = hσ' q n m hnm ≫ f.app (op [m]) := by
141+
f.app (op ⦋n⦌) ≫ hσ' q n m hnm = hσ' q n m hnm ≫ f.app (op ⦋m⦌) := by
142142
have h : n + 1 = m := hnm
143143
subst h
144144
simp only [hσ', eqToHom_refl, comp_id]

Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ namespace DoldKan
3434
variable {C : Type*} [Category C] [Preadditive C]
3535

3636
theorem PInfty_comp_map_mono_eq_zero (X : SimplicialObject C) {n : ℕ} {Δ' : SimplexCategory}
37-
(i : Δ' ⟶ [n]) [hi : Mono i] (h₁ : Δ'.len ≠ n) (h₂ : ¬Isδ₀ i) :
37+
(i : Δ' ⟶ ⦋n⦌) [hi : Mono i] (h₁ : Δ'.len ≠ n) (h₂ : ¬Isδ₀ i) :
3838
PInfty.f n ≫ X.map i.op = 0 := by
3939
induction' Δ' using SimplexCategory.rec with m
4040
obtain ⟨k, hk⟩ := Nat.exists_eq_add_of_lt (len_lt_of_mono i fun h => by
@@ -196,11 +196,11 @@ theorem identity_N₂_objectwise (P : Karoubi (SimplicialObject C)) :
196196
(N₂Γ₂.inv.app (N₂.obj P) : N₂.obj P ⟶ N₂.obj (Γ₂.obj (N₂.obj P))) ≫
197197
N₂.map (Γ₂N₂.natTrans.app P) = 𝟙 (N₂.obj P) := by
198198
ext n
199-
have eq₁ : (N₂Γ₂.inv.app (N₂.obj P)).f.f n = PInfty.f n ≫ P.p.app (op [n]) ≫
200-
((Γ₀.splitting (N₂.obj P).X).cofan _).inj (Splitting.IndexSet.id (op [n])) := by
199+
have eq₁ : (N₂Γ₂.inv.app (N₂.obj P)).f.f n = PInfty.f n ≫ P.p.app (op ⦋n⦌) ≫
200+
((Γ₀.splitting (N₂.obj P).X).cofan _).inj (Splitting.IndexSet.id (op ⦋n⦌)) := by
201201
simp only [N₂Γ₂_inv_app_f_f, N₂_obj_p_f, assoc]
202-
have eq₂ : ((Γ₀.splitting (N₂.obj P).X).cofan _).inj (Splitting.IndexSet.id (op [n])) ≫
203-
(N₂.map (Γ₂N₂.natTrans.app P)).f.f n = PInfty.f n ≫ P.p.app (op [n]) := by
202+
have eq₂ : ((Γ₀.splitting (N₂.obj P).X).cofan _).inj (Splitting.IndexSet.id (op ⦋n⦌)) ≫
203+
(N₂.map (Γ₂N₂.natTrans.app P)).f.f n = PInfty.f n ≫ P.p.app (op ⦋n⦌) := by
204204
dsimp
205205
rw [PInfty_on_Γ₀_splitting_summand_eq_self_assoc, Γ₂N₂.natTrans_app_f_app]
206206
dsimp

Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ instance : (N₁ : SimplicialObject C ⥤ Karoubi (ChainComplex C ℕ)).Reflects
3636
fun {X Y} f => by
3737
intro
3838
-- restating the result in a way that allows induction on the degree n
39-
suffices ∀ n : ℕ, IsIso (f.app (op [n])) by
39+
suffices ∀ n : ℕ, IsIso (f.app (op ⦋n⦌)) by
4040
haveI : ∀ Δ : SimplexCategoryᵒᵖ, IsIso (f.app Δ) := fun Δ => this Δ.unop.len
4141
apply NatIso.isIso_of_isIso_app
4242
-- restating the assumption in a more practical form
4343
have h₁ := HomologicalComplex.congr_hom (Karoubi.hom_ext_iff.mp (IsIso.hom_inv_id (N₁.map f)))
4444
have h₂ := HomologicalComplex.congr_hom (Karoubi.hom_ext_iff.mp (IsIso.inv_hom_id (N₁.map f)))
4545
have h₃ := fun n =>
46-
Karoubi.HomologicalComplex.p_comm_f_assoc (inv (N₁.map f)) n (f.app (op [n]))
46+
Karoubi.HomologicalComplex.p_comm_f_assoc (inv (N₁.map f)) n (f.app (op ⦋n⦌))
4747
simp only [N₁_map_f, Karoubi.comp_f, HomologicalComplex.comp_f,
4848
AlternatingFaceMapComplex.map_f, N₁_obj_p, Karoubi.id_f, assoc] at h₁ h₂ h₃
4949
-- we have to construct an inverse to f in degree n, by induction on n
@@ -60,7 +60,7 @@ instance : (N₁ : SimplicialObject C ⥤ Karoubi (ChainComplex C ℕ)).Reflects
6060
| succ n hn =>
6161
haveI := hn
6262
use φ { a := PInfty.f (n + 1) ≫ (inv (N₁.map f)).f.f (n + 1)
63-
b := fun i => inv (f.app (op [n])) ≫ X.σ i }
63+
b := fun i => inv (f.app (op ⦋n⦌)) ≫ X.σ i }
6464
simp only [MorphComponents.id, ← id_φ, ← preComp_φ, preComp, ← postComp_φ, postComp,
6565
PInfty_f_naturality_assoc, IsIso.hom_inv_id_assoc, assoc, IsIso.inv_hom_id_assoc,
6666
SimplicialObject.σ_naturality, h₁, h₂, h₃, and_self]⟩

Mathlib/AlgebraicTopology/DoldKan/PInfty.lean

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,12 @@ theorem QInfty_f (n : ℕ) : (QInfty.f n : X _[n] ⟶ X _[n]) = (Q n).f n :=
7171

7272
@[reassoc (attr := simp)]
7373
theorem PInfty_f_naturality (n : ℕ) {X Y : SimplicialObject C} (f : X ⟶ Y) :
74-
f.app (op [n]) ≫ PInfty.f n = PInfty.f n ≫ f.app (op [n]) :=
74+
f.app (op ⦋n⦌) ≫ PInfty.f n = PInfty.f n ≫ f.app (op ⦋n⦌) :=
7575
P_f_naturality n n f
7676

7777
@[reassoc (attr := simp)]
7878
theorem QInfty_f_naturality (n : ℕ) {X Y : SimplicialObject C} (f : X ⟶ Y) :
79-
f.app (op [n]) ≫ QInfty.f n = QInfty.f n ≫ f.app (op [n]) :=
79+
f.app (op ⦋n⦌) ≫ QInfty.f n = QInfty.f n ≫ f.app (op ⦋n⦌) :=
8080
Q_f_naturality n n f
8181

8282
@[reassoc (attr := simp)]
@@ -157,7 +157,7 @@ computes `PInfty` for the associated object in `SimplicialObject (Karoubi C)`
157157
in terms of `PInfty` for `Y.X : SimplicialObject C` and `Y.p`. -/
158158
theorem karoubi_PInfty_f {Y : Karoubi (SimplicialObject C)} (n : ℕ) :
159159
((PInfty : K[(karoubiFunctorCategoryEmbedding _ _).obj Y] ⟶ _).f n).f =
160-
Y.p.app (op [n]) ≫ (PInfty : K[Y.X] ⟶ _).f n := by
160+
Y.p.app (op ⦋n⦌) ≫ (PInfty : K[Y.X] ⟶ _).f n := by
161161
-- We introduce P_infty endomorphisms P₁, P₂, P₃, P₄ on various objects Y₁, Y₂, Y₃, Y₄.
162162
let Y₁ := (karoubiFunctorCategoryEmbedding _ _).obj Y
163163
let Y₂ := Y.X
@@ -168,7 +168,7 @@ theorem karoubi_PInfty_f {Y : Karoubi (SimplicialObject C)} (n : ℕ) :
168168
let P₃ : K[Y₃] ⟶ _ := PInfty
169169
let P₄ : K[Y₄] ⟶ _ := PInfty
170170
-- The statement of lemma relates P₁ and P₂.
171-
change (P₁.f n).f = Y.p.app (op [n]) ≫ P₂.f n
171+
change (P₁.f n).f = Y.p.app (op ⦋n⦌) ≫ P₂.f n
172172
-- The proof proceeds by obtaining relations h₃₂, h₄₃, h₁₄.
173173
have h₃₂ : (P₃.f n).f = P₂.f n := Karoubi.hom_ext_iff.mp (map_PInfty_f (toKaroubi C) Y₂ n)
174174
have h₄₃ : P₄.f n = P₃.f n := by
@@ -188,7 +188,7 @@ theorem karoubi_PInfty_f {Y : Karoubi (SimplicialObject C)} (n : ℕ) :
188188
have eq := Karoubi.hom_ext_iff.mp (PInfty_f_naturality n π)
189189
simp only [Karoubi.comp_f] at eq
190190
dsimp [π] at eq
191-
rw [← eq, app_idem_assoc Y (op [n])]
191+
rw [← eq, app_idem_assoc Y (op ⦋n⦌)]
192192

193193
end DoldKan
194194

0 commit comments

Comments
 (0)