|
| 1 | +/- |
| 2 | +Copyright (c) 2025 Joël Riou. All rights reserved. |
| 3 | +Released under Apache 2.0 license as described in the file LICENSE. |
| 4 | +Authors: Joël Riou |
| 5 | +-/ |
| 6 | +import Mathlib.AlgebraicTopology.SimplexCategory.Basic |
| 7 | +import Mathlib.CategoryTheory.MorphismProperty.Composition |
| 8 | + |
| 9 | +/-! |
| 10 | +# Properties of morphisms in the simplex category |
| 11 | +
|
| 12 | +In this file, we show that morphisms in the simplex category |
| 13 | +are generated by faces and degeneracies. This is stated by |
| 14 | +saying that if `W : MorphismProperty SimplexCategory` is |
| 15 | +multiplicative, and contains faces and degeneracies, then `W = ⊤`. |
| 16 | +This statement is deduced from a similar statement for |
| 17 | +the category `SimplexCategory.Truncated d`. |
| 18 | +
|
| 19 | +-/ |
| 20 | + |
| 21 | +open CategoryTheory |
| 22 | + |
| 23 | +namespace SimplexCategory |
| 24 | + |
| 25 | +lemma Truncated.morphismProperty_eq_top |
| 26 | + {d : ℕ} (W : MorphismProperty (Truncated d)) [W.IsMultiplicative] |
| 27 | + (δ_mem : ∀ (n : ℕ) (hn : n < d) (i : Fin (n + 2)), |
| 28 | + W (SimplexCategory.δ (n := n) i : ⟨.mk n, by dsimp; omega⟩ ⟶ |
| 29 | + ⟨.mk (n + 1), by dsimp; omega⟩)) |
| 30 | + (σ_mem : ∀ (n : ℕ) (hn : n < d) (i : Fin (n + 1)), |
| 31 | + W (SimplexCategory.σ (n := n) i : ⟨.mk (n + 1), by dsimp; omega⟩ ⟶ |
| 32 | + ⟨.mk n, by dsimp; omega⟩)) : |
| 33 | + W = ⊤ := by |
| 34 | + ext ⟨a, ha⟩ ⟨b, hb⟩ f |
| 35 | + simp only [MorphismProperty.top_apply, iff_true] |
| 36 | + induction' a using SimplexCategory.rec with a |
| 37 | + induction' b using SimplexCategory.rec with b |
| 38 | + dsimp at ha hb |
| 39 | + generalize h : a + b = c |
| 40 | + induction c generalizing a b with |
| 41 | + | zero => |
| 42 | + obtain rfl : a = 0 := by omega |
| 43 | + obtain rfl : b = 0 := by omega |
| 44 | + obtain rfl : f = 𝟙 _ := by |
| 45 | + ext i : 3 |
| 46 | + apply Subsingleton.elim (α := Fin 1) |
| 47 | + apply MorphismProperty.id_mem |
| 48 | + | succ c hc => |
| 49 | + let f' : mk a ⟶ mk b := f |
| 50 | + by_cases h₁ : Function.Surjective f'.toOrderHom; swap |
| 51 | + · obtain _ | b := b |
| 52 | + · exact (h₁ (fun _ ↦ ⟨0, Subsingleton.elim (α := Fin 1) _ _⟩)).elim |
| 53 | + · obtain ⟨i, g', hf'⟩ := eq_comp_δ_of_not_surjective _ h₁ |
| 54 | + obtain rfl : f = (g' : _ ⟶ ⟨mk b, by dsimp; omega⟩) ≫ δ i := hf' |
| 55 | + exact W.comp_mem _ _ (hc _ _ _ _ _ (by omega)) |
| 56 | + (δ_mem _ (by omega) _) |
| 57 | + by_cases h₂ : Function.Injective f'.toOrderHom; swap |
| 58 | + · obtain _ | a := a |
| 59 | + · exact (h₂ (Function.injective_of_subsingleton (α := Fin 1) _)).elim |
| 60 | + · obtain ⟨i, g', hf'⟩ := eq_σ_comp_of_not_injective _ h₂ |
| 61 | + obtain rfl : f = (by exact σ i) ≫ (g' : ⟨mk a, by dsimp; omega⟩ ⟶ _) := hf' |
| 62 | + exact W.comp_mem _ _ (σ_mem _ (by omega) _) (hc _ _ _ _ _ (by omega)) |
| 63 | + rw [← epi_iff_surjective] at h₁ |
| 64 | + rw [← mono_iff_injective] at h₂ |
| 65 | + obtain rfl : a = b := le_antisymm (len_le_of_mono h₂) (len_le_of_epi h₁) |
| 66 | + obtain rfl : f = 𝟙 _ := eq_id_of_mono f' |
| 67 | + apply W.id_mem |
| 68 | + |
| 69 | +lemma morphismProperty_eq_top |
| 70 | + (W : MorphismProperty SimplexCategory) [W.IsMultiplicative] |
| 71 | + (δ_mem : ∀ {n : ℕ} (i : Fin (n + 2)), W (SimplexCategory.δ i)) |
| 72 | + (σ_mem : ∀ {n : ℕ} (i : Fin (n + 1)), W (SimplexCategory.σ i)) : |
| 73 | + W = ⊤ := by |
| 74 | + have hW (d : ℕ) : W.inverseImage (Truncated.inclusion d) = ⊤ := |
| 75 | + Truncated.morphismProperty_eq_top _ (fun _ _ i ↦ δ_mem i) |
| 76 | + (fun _ _ i ↦ σ_mem i) |
| 77 | + ext a b f |
| 78 | + simp only [MorphismProperty.top_apply, iff_true] |
| 79 | + change W.inverseImage (Truncated.inclusion _) |
| 80 | + (f : ⟨a, Nat.le_max_left _ _⟩ ⟶ ⟨b, Nat.le_max_right _ _⟩) |
| 81 | + simp only [hW, MorphismProperty.top_apply] |
| 82 | + |
| 83 | +end SimplexCategory |
0 commit comments