|
| 1 | +/- |
| 2 | +Copyright (c) 2026 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 | +module |
| 7 | + |
| 8 | +public import Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RankNat |
| 9 | +public import Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex |
| 10 | +public import Mathlib.AlgebraicTopology.SimplicialSet.CategoryWithFibrations |
| 11 | +public import Mathlib.AlgebraicTopology.SimplicialSet.Presentable |
| 12 | +public import Mathlib.CategoryTheory.SmallObject.Basic |
| 13 | + |
| 14 | +/-! |
| 15 | +# Anodyne extensions |
| 16 | +
|
| 17 | +Anodyne extensions form a property of morphisms in the category of simplicial |
| 18 | +sets. It contains horn inclusions and it is closed under coproducts, pushouts, |
| 19 | +transfinite compositions and retracts. Equivalently, using the small |
| 20 | +object argument, anodyne extensions can be defined (and are defined here) |
| 21 | +as the class of morphisms that satisfy the left lifting property with respect |
| 22 | +to the class of fibrations (for the Quillen model category structure: |
| 23 | +fibrations are morphisms that have the right lifting property with respect |
| 24 | +to horn inclusions). When the Quillen model category structure is fully |
| 25 | +upstreamed (TODO @joelriou), it can be shown that a morphism `f` is an |
| 26 | +anodyne extension iff `f` is a cofibration that is also a weak equivalence. |
| 27 | +
|
| 28 | +We also introduce the class of strong anodyne extensions that could be defined |
| 29 | +as a closure similarly as anodyne extensions, but without taking the closure |
| 30 | +under retracts. Sean Moss has given a combinatorial description of these |
| 31 | +strong anodyne extensions: the inclusion `A.ι : A ⟶ X` of a subcomplex `A` |
| 32 | +of a simplicial set `X` is a strong anodyne extension iff there exists |
| 33 | +a regular pairing for `A`. In this file, we define strong anodyne extensions |
| 34 | +in terms of such regular pairings, and using the main result of the file |
| 35 | +`Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/RelativeCellComplex.lean` |
| 36 | +we show that a strong anodyne extension is an anodyne extension. |
| 37 | +
|
| 38 | +## TODO |
| 39 | +* introduce inner variants of these definitions |
| 40 | +* show that strong anodyne extensions are indeed stable under coproducts, |
| 41 | + transfinite compositions and pushouts (the proof should reduce to the |
| 42 | + construction of pairings) |
| 43 | +* study the interaction between anodyne extension and binary products: |
| 44 | + the critical case consists in showing that inclusions |
| 45 | + `Λ[m, i] ⊗ Δ[n] ∪ Δ[m] ⊗ ∂Δ[n] ⟶ Δ[m] ⊗ Δ[n]` are strong anodyne extensions (@joelriou) |
| 46 | +* show that anodyne extensions are stable under the subdivision functor (@joelriou) |
| 47 | +
|
| 48 | +## References |
| 49 | +* [P. Gabriel, M. Zisman, *Calculus of fractions and homotopy theory*, IV.2][gabriel-zisman-1967] |
| 50 | +* [Sean Moss, *Another approach to the Kan-Quillen model structure*][moss-2020] |
| 51 | +
|
| 52 | +-/ |
| 53 | + |
| 54 | +@[expose] public section |
| 55 | + |
| 56 | +universe u |
| 57 | + |
| 58 | +open CategoryTheory HomotopicalAlgebra Simplicial |
| 59 | + |
| 60 | +namespace SSet |
| 61 | + |
| 62 | +open MorphismProperty |
| 63 | + |
| 64 | +open modelCategoryQuillen in |
| 65 | +/-- In the category of simplicial sets, an anodyne extension is a morphism |
| 66 | +that has the left lifting property with respect to fibrations, where |
| 67 | +a fibration is a morphism that has the right lifting property with respect |
| 68 | +to horn inclusions. We do not introduce a typeclass for anodyne extensions |
| 69 | +because when the Quillen model structure is fully upstreamed (TODO @joelriou), |
| 70 | +the assumption `anodyneExtensions f` can be spelled as |
| 71 | +`[Cofibration f] [WeakEquivalence f]`. -/ |
| 72 | +def anodyneExtensions : MorphismProperty SSet.{u} := (fibrations _).llp |
| 73 | +deriving IsMultiplicative, RespectsIso, IsStableUnderCobaseChange, |
| 74 | + IsStableUnderRetracts, IsStableUnderTransfiniteComposition, |
| 75 | + IsStableUnderCoproducts |
| 76 | + |
| 77 | +lemma anodyneExtensions.of_isIso {X Y : SSet.{u}} (f : X ⟶ Y) [IsIso f] : |
| 78 | + anodyneExtensions f := |
| 79 | + MorphismProperty.of_isIso anodyneExtensions f |
| 80 | + |
| 81 | +lemma anodyneExtensions_eq_llp_rlp : |
| 82 | + anodyneExtensions.{u} = modelCategoryQuillen.J.rlp.llp := |
| 83 | + rfl |
| 84 | + |
| 85 | +lemma anodyneExtensions.horn_ι {n : ℕ} [NeZero n] (i : Fin (n + 1)) : |
| 86 | + anodyneExtensions.{u} Λ[n, i].ι := by |
| 87 | + rw [anodyneExtensions_eq_llp_rlp] |
| 88 | + exact le_llp_rlp _ _ (modelCategoryQuillen.horn_ι_mem_J n i) |
| 89 | + |
| 90 | +attribute [local instance] Cardinal.fact_isRegular_aleph0 |
| 91 | + Cardinal.orderBotAleph0OrdToType |
| 92 | + |
| 93 | +instance (n : ℕ) : MorphismProperty.IsSmall.{u} |
| 94 | + (MorphismProperty.ofHoms.{u} (fun (i : Fin (n + 2)) ↦ Λ[n + 1, i].ι)) := |
| 95 | + isSmall_ofHoms .. |
| 96 | + |
| 97 | +instance : MorphismProperty.IsSmall.{u} modelCategoryQuillen.J.{u} := |
| 98 | + isSmall_iSup .. |
| 99 | + |
| 100 | +instance : IsCardinalForSmallObjectArgument modelCategoryQuillen.J.{u} Cardinal.aleph0.{u} where |
| 101 | + preservesColimit {A B X Y} i hi f hf := by |
| 102 | + have : IsFinitelyPresentable.{u} A := by |
| 103 | + simp only [modelCategoryQuillen.J, iSup_iff] at hi |
| 104 | + obtain ⟨n, ⟨i⟩⟩ := hi |
| 105 | + infer_instance |
| 106 | + infer_instance |
| 107 | + |
| 108 | +instance : HasSmallObjectArgument.{u} modelCategoryQuillen.J.{u} := |
| 109 | + ⟨.aleph0, inferInstance, inferInstance, inferInstance⟩ |
| 110 | + |
| 111 | +lemma anodyneExtensions_eq_retracts_transfiniteCompositions : |
| 112 | + anodyneExtensions = (transfiniteCompositions.{u} |
| 113 | + (coproducts.{u} modelCategoryQuillen.J.{u}).pushouts).retracts := by |
| 114 | + rw [anodyneExtensions_eq_llp_rlp, llp_rlp_of_hasSmallObjectArgument] |
| 115 | + |
| 116 | +lemma anodyneExtensions_eq_retracts_transfiniteCompositionsOfShape : |
| 117 | + anodyneExtensions = (transfiniteCompositionsOfShape |
| 118 | + (coproducts.{u} modelCategoryQuillen.J.{u}).pushouts ℕ).retracts := by |
| 119 | + rw [anodyneExtensions_eq_llp_rlp, |
| 120 | + SmallObject.llp_rlp_of_isCardinalForSmallObjectArgument_aleph0] |
| 121 | + |
| 122 | +/-- In the category of simplicial sets, a strong anodyne extension is a morphism |
| 123 | +which belongs to the closure of horn inclusions by pushouts, coproducts, |
| 124 | +transfinite compositions (but not by retracts). We define this class here |
| 125 | +by saying that `f : X ⟶ Y` is a strong anodyne extension if `f` is a monomorphism |
| 126 | +and there exists a regular pairing (in the sense of Moss) for the subcomplex |
| 127 | +`Subcomplex.range f` of `Y`. -/ |
| 128 | +def strongAnodyneExtensions : MorphismProperty SSet.{u} := |
| 129 | + fun _ _ f ↦ Mono f ∧ ∃ (P : (Subcomplex.range f).Pairing), P.IsRegular |
| 130 | + |
| 131 | +lemma Subcomplex.Pairing.strongAnodyneExtensions {X : SSet.{u}} {A : X.Subcomplex} |
| 132 | + (P : A.Pairing) [P.IsRegular] : |
| 133 | + strongAnodyneExtensions A.ι := |
| 134 | + ⟨inferInstance, by |
| 135 | + generalize h : Subcomplex.range A.ι = B |
| 136 | + obtain rfl : B = A := by simpa using h.symm |
| 137 | + exact ⟨P, inferInstance⟩⟩ |
| 138 | + |
| 139 | +lemma strongAnodyneExtensions_ι_iff {X : SSet.{u}} (A : X.Subcomplex) : |
| 140 | + strongAnodyneExtensions A.ι ↔ ∃ (P : A.Pairing), P.IsRegular := |
| 141 | + ⟨fun hA ↦ by |
| 142 | + obtain ⟨_, P, _, rfl⟩ : |
| 143 | + ∃ (B : X.Subcomplex) (P : B.Pairing), P.IsRegular ∧ B = A := by |
| 144 | + obtain ⟨_, P, _⟩ := hA |
| 145 | + exact ⟨_, P, inferInstance, by simp⟩ |
| 146 | + exact ⟨P, inferInstance⟩, |
| 147 | + fun ⟨P, _⟩ ↦ P.strongAnodyneExtensions⟩ |
| 148 | + |
| 149 | +lemma Subcomplex.Pairing.anodyneExtensions {X : SSet.{u}} {A : X.Subcomplex} |
| 150 | + (P : A.Pairing) [P.IsRegular] : |
| 151 | + anodyneExtensions A.ι := |
| 152 | + transfiniteCompositionsOfShape_le _ _ _ |
| 153 | + ⟨P.rankFunction.relativeCellComplex.toTransfiniteCompositionOfShape, fun j hj ↦ by |
| 154 | + refine (?_ : (_ : MorphismProperty _) ≤ _ ) _ |
| 155 | + (P.rankFunction.relativeCellComplex.attachCells j hj).pushouts_coproducts |
| 156 | + simp only [pushouts_le_iff, coproducts_le_iff] |
| 157 | + rintro _ _ _ ⟨c⟩ |
| 158 | + exact .horn_ι c.index⟩ |
| 159 | + |
| 160 | +lemma strongAnodyneExtensions_le_anodyneExtensions : |
| 161 | + strongAnodyneExtensions.{u} ≤ anodyneExtensions := by |
| 162 | + rintro X Y f ⟨_, P, _⟩ |
| 163 | + rw [← Subfunctor.toRange_ι f] |
| 164 | + exact comp_mem _ _ _ (.of_isIso _) P.anodyneExtensions |
| 165 | + |
| 166 | +end SSet |
0 commit comments