Loogle!
Result
Found 150 declarations mentioning CategoryTheory.Subfunctor.obj.
- CategoryTheory.Subfunctor.obj 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor C (Type w)} (self : CategoryTheory.Subfunctor F) (U : C) : Set (F.obj U) - CategoryTheory.Subfunctor.toFunctor_obj 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor C (Type w)} (G : CategoryTheory.Subfunctor F) (U : C) : G.toFunctor.obj U = ↑(G.obj U) - CategoryTheory.Subfunctor.ext 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} {inst✝ : CategoryTheory.Category.{v, u} C} {F : CategoryTheory.Functor C (Type w)} {x y : CategoryTheory.Subfunctor F} (obj : x.obj = y.obj) : x = y - CategoryTheory.Subfunctor.ext_iff 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} {inst✝ : CategoryTheory.Category.{v, u} C} {F : CategoryTheory.Functor C (Type w)} {x y : CategoryTheory.Subfunctor F} : x = y ↔ x.obj = y.obj - CategoryTheory.Subfunctor.le_def 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor C (Type w)} (S T : CategoryTheory.Subfunctor F) : S ≤ T ↔ ∀ (U : C), S.obj U ⊆ T.obj U - CategoryTheory.Subfunctor.iInf_obj 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor C (Type w)} {ι : Sort u_1} (S : ι → CategoryTheory.Subfunctor F) (U : C) : (⨅ i, S i).obj U = ⋂ i, (S i).obj U - CategoryTheory.Subfunctor.iSup_obj 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor C (Type w)} {ι : Sort u_1} (S : ι → CategoryTheory.Subfunctor F) (U : C) : (⨆ i, S i).obj U = ⋃ i, (S i).obj U - CategoryTheory.Subfunctor.max_obj 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor C (Type w)} (S T : CategoryTheory.Subfunctor F) (i : C) : (S ⊔ T).obj i = S.obj i ∪ T.obj i - CategoryTheory.Subfunctor.min_obj 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor C (Type w)} (S T : CategoryTheory.Subfunctor F) (i : C) : (S ⊓ T).obj i = S.obj i ∩ T.obj i - CategoryTheory.Subfunctor.sInf_obj 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor C (Type w)} (S : Set (CategoryTheory.Subfunctor F)) (U : C) : (sInf S).obj U = sInf ((fun T => T.obj U) '' S) - CategoryTheory.Subfunctor.sSup_obj 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor C (Type w)} (S : Set (CategoryTheory.Subfunctor F)) (U : C) : (sSup S).obj U = sSup ((fun T => T.obj U) '' S) - CategoryTheory.Subfunctor.bot_obj 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Functor C (Type w)) (i : C) : ⊥.obj i = ⊥ - CategoryTheory.Subfunctor.top_obj 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Functor C (Type w)) (i : C) : ⊤.obj i = ⊤ - CategoryTheory.Subfunctor.ι_app 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor C (Type w)} (G : CategoryTheory.Subfunctor F) (x✝ : C) : G.ι.app x✝ = TypeCat.ofHom fun x => ↑x - CategoryTheory.Subfunctor.map 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor C (Type w)} (self : CategoryTheory.Subfunctor F) {U V : C} (i : U ⟶ V) : self.obj U ⊆ ⇑(CategoryTheory.ConcreteCategory.hom (F.map i)) ⁻¹' self.obj V - CategoryTheory.Subfunctor.homOfLe_app 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor C (Type w)} {G G' : CategoryTheory.Subfunctor F} (h : G ≤ G') (U : C) : (CategoryTheory.Subfunctor.homOfLe h).app U = TypeCat.ofHom fun x => ⟨↑x, ⋯⟩ - CategoryTheory.Subfunctor.toFunctor_map 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor C (Type w)} (G : CategoryTheory.Subfunctor F) {X✝ Y✝ : C} (i : X✝ ⟶ Y✝) : G.toFunctor.map i = TypeCat.ofHom fun x => ⟨(CategoryTheory.ConcreteCategory.hom (F.map i)) ↑x, ⋯⟩ - CategoryTheory.Subfunctor.nat_trans_naturality 📋 Mathlib.CategoryTheory.Subfunctor.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] {F F' : CategoryTheory.Functor C (Type w)} (G : CategoryTheory.Subfunctor F) (f : F' ⟶ G.toFunctor) {U V : C} (i : U ⟶ V) (x : F'.obj U) : ↑((CategoryTheory.ConcreteCategory.hom (f.app V)) ((CategoryTheory.ConcreteCategory.hom (F'.map i)) x)) = (CategoryTheory.ConcreteCategory.hom (F.map i)) ↑((CategoryTheory.ConcreteCategory.hom (f.app U)) x) - CategoryTheory.Sieve.shrinkFunctor_obj 📋 Mathlib.CategoryTheory.Sites.Sieves.Shrink
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.LocallySmall.{w, v₁, u₁} C] {X : C} (S : CategoryTheory.Sieve X) (Y : Cᵒᵖ) : (CategoryTheory.Sieve.shrinkFunctor.{w, v₁, u₁} S).obj Y = {f | S.arrows (CategoryTheory.shrinkYonedaObjObjEquiv f)} - CategoryTheory.Presieve.shrinkFunctorHomEquiv_symm_apply_app 📋 Mathlib.CategoryTheory.Sites.IsSheafFor
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X : C} {S : CategoryTheory.Sieve X} [CategoryTheory.LocallySmall.{w, v₁, u₁} C] {F : CategoryTheory.Functor Cᵒᵖ (Type w)} (t : { x // x.Compatible }) (X✝ : Cᵒᵖ) : (CategoryTheory.Presieve.shrinkFunctorHomEquiv.symm t).app X✝ = TypeCat.ofHom fun f => ↑t (CategoryTheory.shrinkYonedaObjObjEquiv ↑f) ⋯ - CategoryTheory.Presieve.shrinkFunctorHomEquiv_apply_coe 📋 Mathlib.CategoryTheory.Sites.IsSheafFor
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X : C} {S : CategoryTheory.Sieve X} [CategoryTheory.LocallySmall.{w, v₁, u₁} C] {F : CategoryTheory.Functor Cᵒᵖ (Type w)} (t : (CategoryTheory.Sieve.shrinkFunctor.{w, v₁, u₁} S).toFunctor ⟶ F) (Y : C) (f : Y ⟶ X) (hf : S.arrows f) : ↑(CategoryTheory.Presieve.shrinkFunctorHomEquiv t) f hf = (CategoryTheory.ConcreteCategory.hom (t.app (Opposite.op Y))) ⟨CategoryTheory.shrinkYonedaObjObjEquiv.symm f, ⋯⟩ - CategoryTheory.Subfunctor.range_obj 📋 Mathlib.CategoryTheory.Subfunctor.Image
{C : Type u} [CategoryTheory.Category.{v, u} C] {F F' : CategoryTheory.Functor C (Type w)} (p : F' ⟶ F) (U : C) : (CategoryTheory.Subfunctor.range p).obj U = Set.range ⇑(CategoryTheory.ConcreteCategory.hom (p.app U)) - CategoryTheory.Subfunctor.image_obj 📋 Mathlib.CategoryTheory.Subfunctor.Image
{C : Type u} [CategoryTheory.Category.{v, u} C] {F F' : CategoryTheory.Functor C (Type w)} (G : CategoryTheory.Subfunctor F) (f : F ⟶ F') (i : C) : (G.image f).obj i = ⇑(CategoryTheory.ConcreteCategory.hom (f.app i)) '' G.obj i - CategoryTheory.Subfunctor.preimage_obj 📋 Mathlib.CategoryTheory.Subfunctor.Image
{C : Type u} [CategoryTheory.Category.{v, u} C] {F F' : CategoryTheory.Functor C (Type w)} (G : CategoryTheory.Subfunctor F) (p : F' ⟶ F) (n : C) : (G.preimage p).obj n = ⇑(CategoryTheory.ConcreteCategory.hom (p.app n)) ⁻¹' G.obj n - CategoryTheory.Subfunctor.lift_app 📋 Mathlib.CategoryTheory.Subfunctor.Image
{C : Type u} [CategoryTheory.Category.{v, u} C] {F F' : CategoryTheory.Functor C (Type w)} (f : F' ⟶ F) {G : CategoryTheory.Subfunctor F} (hf : CategoryTheory.Subfunctor.range f ≤ G) (U : C) : (CategoryTheory.Subfunctor.lift f hf).app U = TypeCat.ofHom fun x => ⟨(CategoryTheory.ConcreteCategory.hom (f.app U)) x, ⋯⟩ - CategoryTheory.Subfunctor.toRange_app_val 📋 Mathlib.CategoryTheory.Subfunctor.Image
{C : Type u} [CategoryTheory.Category.{v, u} C] {F F' : CategoryTheory.Functor C (Type w)} (p : F' ⟶ F) {i : C} (x : F'.obj i) : ↑((CategoryTheory.ConcreteCategory.hom ((CategoryTheory.Subfunctor.toRange p).app i)) x) = (CategoryTheory.ConcreteCategory.hom (p.app i)) x - CategoryTheory.Subfunctor.sieveOfSection_apply 📋 Mathlib.CategoryTheory.Subfunctor.Sieves
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor Cᵒᵖ (Type w)} (G : CategoryTheory.Subfunctor F) {U : Cᵒᵖ} (s : F.obj U) (V : C) (f : V ⟶ Opposite.unop U) : (G.sieveOfSection s).arrows f = ((CategoryTheory.ConcreteCategory.hom (F.map f.op)) s ∈ G.obj (Opposite.op V)) - CategoryTheory.Subfunctor.isSheaf_iff 📋 Mathlib.CategoryTheory.Sites.Subsheaf
{C : Type u} [CategoryTheory.Category.{v, u} C] {J : CategoryTheory.GrothendieckTopology C} {F : CategoryTheory.Functor Cᵒᵖ (Type w)} (G : CategoryTheory.Subfunctor F) (h : CategoryTheory.Presieve.IsSheaf J F) : CategoryTheory.Presieve.IsSheaf J G.toFunctor ↔ ∀ (U : Cᵒᵖ) (s : F.obj U), G.sieveOfSection s ∈ J (Opposite.unop U) → s ∈ G.obj U - CategoryTheory.Subfunctor.toRangeSheafify_app_hom_apply_coe 📋 Mathlib.CategoryTheory.Sites.Subsheaf
{C : Type u} [CategoryTheory.Category.{v, u} C] (J : CategoryTheory.GrothendieckTopology C) {F F' : CategoryTheory.Functor Cᵒᵖ (Type w)} (f : F' ⟶ F) (X : Cᵒᵖ) (a✝ : F'.obj X) : ↑((CategoryTheory.ConcreteCategory.hom ((CategoryTheory.Subfunctor.toRangeSheafify J f).app X)) a✝) = ↑(((CategoryTheory.Subfunctor.toRange f).app X).hom' a✝) - PresheafOfModules.Submodule.mem_toSubfunctor_obj 📋 Mathlib.Algebra.Category.ModuleCat.Presheaf.Submodule
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {R : CategoryTheory.Functor Cᵒᵖ RingCat} {M : PresheafOfModules R} (N : M.Submodule) {X : Cᵒᵖ} (r : ↑(M.obj X)) : r ∈ N.toSubfunctor.obj X ↔ r ∈ N.obj X - CategoryTheory.Functor.closedSieves_obj 📋 Mathlib.CategoryTheory.Sites.Closed
{C : Type u} [CategoryTheory.Category.{v, u} C] (J₁ : CategoryTheory.GrothendieckTopology C) (X : Cᵒᵖ) : (CategoryTheory.Functor.closedSieves J₁).obj X = {S | J₁.IsClosed S} - CategoryTheory.Subfunctor.mem_ofSection_obj 📋 Mathlib.CategoryTheory.Subfunctor.OfSection
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor Cᵒᵖ (Type w)} {X : Cᵒᵖ} (x : F.obj X) : x ∈ (CategoryTheory.Subfunctor.ofSection x).obj X - CategoryTheory.Subfunctor.ofSection_le_iff 📋 Mathlib.CategoryTheory.Subfunctor.OfSection
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor Cᵒᵖ (Type w)} {X : Cᵒᵖ} (x : F.obj X) (G : CategoryTheory.Subfunctor F) : CategoryTheory.Subfunctor.ofSection x ≤ G ↔ x ∈ G.obj X - CategoryTheory.Subfunctor.ofSection_obj 📋 Mathlib.CategoryTheory.Subfunctor.OfSection
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor Cᵒᵖ (Type w)} {X : Cᵒᵖ} (x : F.obj X) (U : Cᵒᵖ) : (CategoryTheory.Subfunctor.ofSection x).obj U = {u | ∃ f, (CategoryTheory.ConcreteCategory.hom (F.map f)) x = u} - SSet.Subcomplex.mem_ofSimplex_obj 📋 Mathlib.AlgebraicTopology.SimplicialSet.Subcomplex
{X : SSet} {n : ℕ} (x : X.obj (Opposite.op { len := n })) : x ∈ (SSet.Subcomplex.ofSimplex x).obj (Opposite.op { len := n }) - SSet.Subcomplex.ofSimplex_le_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.Subcomplex
{X : SSet} {n : ℕ} (x : X.obj (Opposite.op { len := n })) (A : X.Subcomplex) : SSet.Subcomplex.ofSimplex x ≤ A ↔ x ∈ A.obj (Opposite.op { len := n }) - SSet.Subcomplex.image_obj 📋 Mathlib.AlgebraicTopology.SimplicialSet.Subcomplex
{X Y : SSet} (A : X.Subcomplex) (f : X ⟶ Y) (i : SimplexCategoryᵒᵖ) : (A.image f).obj i = ⇑(CategoryTheory.ConcreteCategory.hom (f.app i)) '' A.obj i - SSet.Subcomplex.preimage_obj 📋 Mathlib.AlgebraicTopology.SimplicialSet.Subcomplex
{X Y : SSet} (A : X.Subcomplex) (p : Y ⟶ X) (n : SimplexCategoryᵒᵖ) : (A.preimage p).obj n = ⇑(CategoryTheory.ConcreteCategory.hom (p.app n)) ⁻¹' A.obj n - SSet.Subcomplex.mem_ofSimplex_obj_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.Subcomplex
{X : SSet} {n : ℕ} (x : X.obj (Opposite.op { len := n })) {m : SimplexCategoryᵒᵖ} (y : X.obj m) : y ∈ (SSet.Subcomplex.ofSimplex x).obj m ↔ ∃ f, (CategoryTheory.ConcreteCategory.hom (X.map f.op)) x = y - SSet.Subcomplex.homOfLE_app_val 📋 Mathlib.AlgebraicTopology.SimplicialSet.Subcomplex
{X : SSet} {S₁ S₂ : X.Subcomplex} (h : S₁ ≤ S₂) (Δ : SimplexCategoryᵒᵖ) (x : ↑(S₁.obj Δ)) : ↑((CategoryTheory.ConcreteCategory.hom ((SSet.Subcomplex.homOfLE h).app Δ)) x) = ↑x - SSet.Subcomplex.toRange_app_val 📋 Mathlib.AlgebraicTopology.SimplicialSet.Subcomplex
{X Y : SSet} (f : X ⟶ Y) {Δ : SimplexCategoryᵒᵖ} (x : X.obj Δ) : ↑((CategoryTheory.ConcreteCategory.hom ((SSet.Subcomplex.toRange f).app Δ)) x) = (CategoryTheory.ConcreteCategory.hom (f.app Δ)) x - SSet.Subcomplex.lift_app_coe 📋 Mathlib.AlgebraicTopology.SimplicialSet.Subcomplex
{X Y : SSet} (f : X ⟶ Y) {B : Y.Subcomplex} (hf : SSet.Subcomplex.range f ≤ B) {n : SimplexCategoryᵒᵖ} (x : X.obj n) : ↑((CategoryTheory.ConcreteCategory.hom ((SSet.Subcomplex.lift f hf).app n)) x) = (CategoryTheory.ConcreteCategory.hom (f.app n)) x - SSet.Subcomplex.toImage_app_hom_apply_coe 📋 Mathlib.AlgebraicTopology.SimplicialSet.Subcomplex
{X Y : SSet} (A : X.Subcomplex) (f : X ⟶ Y) (U : SimplexCategoryᵒᵖ) (x : A.toSSet.obj U) : ↑((CategoryTheory.ConcreteCategory.hom ((A.toImage f).app U)) x) = (CategoryTheory.ConcreteCategory.hom (CategoryTheory.CategoryStruct.comp (TypeCat.ofHom fun x => ↑x) (f.app U))) x - SSet.Subcomplex.fromPreimage_app_hom_apply_coe 📋 Mathlib.AlgebraicTopology.SimplicialSet.Subcomplex
{X Y : SSet} (A : X.Subcomplex) (p : Y ⟶ X) (U : SimplexCategoryᵒᵖ) (x : (A.preimage p).toSSet.obj U) : ↑((CategoryTheory.ConcreteCategory.hom ((A.fromPreimage p).app U)) x) = (CategoryTheory.ConcreteCategory.hom (CategoryTheory.CategoryStruct.comp (TypeCat.ofHom fun x => ↑x) (p.app U))) x - SSet.Subcomplex.eq_top_iff_contains_nonDegenerate 📋 Mathlib.AlgebraicTopology.SimplicialSet.Degenerate
{X : SSet} (A : X.Subcomplex) : A = ⊤ ↔ ∀ (n : ℕ), X.nonDegenerate n ⊆ A.obj (Opposite.op { len := n }) - SSet.Subcomplex.mem_degenerate_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.Degenerate
{X : SSet} (A : X.Subcomplex) {n : ℕ} (x : ↑(A.obj (Opposite.op { len := n }))) : x ∈ A.toSSet.degenerate n ↔ ↑x ∈ X.degenerate n - SSet.Subcomplex.mem_nonDegenerate_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.Degenerate
{X : SSet} (A : X.Subcomplex) {n : ℕ} (x : ↑(A.obj (Opposite.op { len := n }))) : x ∈ A.toSSet.nonDegenerate n ↔ ↑x ∈ X.nonDegenerate n - SSet.Subcomplex.degenerate_eq_top_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.Degenerate
{X : SSet} (A : X.Subcomplex) (n : ℕ) : A.toSSet.degenerate n = ⊤ ↔ X.degenerate n ⊓ A.obj (Opposite.op { len := n }) = A.obj (Opposite.op { len := n }) - SSet.Subcomplex.le_iff_contains_nonDegenerate 📋 Mathlib.AlgebraicTopology.SimplicialSet.Degenerate
{X : SSet} (A B : X.Subcomplex) : A ≤ B ↔ ∀ (n : ℕ) (x : ↑(X.nonDegenerate n)), ↑x ∈ A.obj (Opposite.op { len := n }) → ↑x ∈ B.obj (Opposite.op { len := n }) - SSet.Subcomplex.le_iff_of_hasDimensionLT 📋 Mathlib.AlgebraicTopology.SimplicialSet.Dimension
{X : SSet} (A B : X.Subcomplex) (d : ℕ) [X.HasDimensionLT d] : A ≤ B ↔ ∀ i < d, A.obj (Opposite.op { len := i }) ∩ X.nonDegenerate i ⊆ B.obj (Opposite.op { len := i }) - SSet.Subcomplex.eq_top_iff_of_hasDimensionLT 📋 Mathlib.AlgebraicTopology.SimplicialSet.Dimension
{X : SSet} (A : X.Subcomplex) (d : ℕ) [X.HasDimensionLT d] : A = ⊤ ↔ ∀ i < d, X.nonDegenerate i ⊆ A.obj (Opposite.op { len := i }) - SSet.stdSimplex.mem_face_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.StdSimplex
{n : ℕ} (S : Finset (Fin (n + 1))) {d : ℕ} (x : (SSet.stdSimplex.obj { len := n }).obj (Opposite.op { len := d })) : x ∈ (SSet.stdSimplex.face S).obj (Opposite.op { len := d }) ↔ ∀ (i : Fin (d + 1)), x i ∈ S - SSet.Subcomplex.yonedaEquiv_toOfSimplex 📋 Mathlib.AlgebraicTopology.SimplicialSet.StdSimplex
{X : SSet} {n : ℕ} (x : X.obj (Opposite.op { len := n })) : SSet.yonedaEquiv (SSet.Subcomplex.toOfSimplex x) = ⟨x, ⋯⟩ - SSet.stdSimplex.obj₀Equiv_symm_mem_face_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.StdSimplex
{n : ℕ} (S : Finset (Fin (n + 1))) (i : Fin (n + 1)) : SSet.stdSimplex.obj₀Equiv.symm i ∈ (SSet.stdSimplex.face S).obj (Opposite.op { len := 0 }) ↔ i ∈ S - SSet.Subcomplex.yonedaEquiv_coe 📋 Mathlib.AlgebraicTopology.SimplicialSet.StdSimplex
{X : SSet} {A : X.Subcomplex} {n : SimplexCategory} (f : SSet.stdSimplex.obj n ⟶ A.toSSet) : ↑(SSet.yonedaEquiv f) = SSet.yonedaEquiv (CategoryTheory.CategoryStruct.comp f A.ι) - SSet.stdSimplex.mem_ofSimplex_obj_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.StdSimplex
{X : SSet} {n m : ℕ} (x : X.obj (Opposite.op { len := n })) (y : X.obj (Opposite.op { len := m })) : y ∈ (SSet.Subcomplex.ofSimplex x).obj (Opposite.op { len := m }) ↔ ∃ z, y = (CategoryTheory.ConcreteCategory.hom ((SSet.yonedaEquiv.symm x).app (Opposite.op { len := m }))) z - SSet.stdSimplex.face_obj 📋 Mathlib.AlgebraicTopology.SimplicialSet.StdSimplex
{n : ℕ} (S : Finset (Fin (n + 1))) (U : SimplexCategoryᵒᵖ) : (SSet.stdSimplex.face S).obj U = {f | Finset.image ⇑(SimplexCategory.Hom.toOrderHom (SSet.stdSimplex.objEquiv f)) ⊤ ⊆ S} - SSet.stdSimplex.nonDegenerateEquiv'_symm_mem_iff_face_le 📋 Mathlib.AlgebraicTopology.SimplicialSet.StdSimplex
{n d : ℕ} (S : ↑{S | S.card = d + 1}) (A : (SSet.stdSimplex.obj { len := n }).Subcomplex) : ↑(SSet.stdSimplex.nonDegenerateEquiv'.symm S) ∈ A.obj (Opposite.op { len := d }) ↔ SSet.stdSimplex.face ↑S ≤ A - CategoryTheory.FunctorToTypes.mem_fromOverSubfunctor_iff 📋 Mathlib.CategoryTheory.Functor.TypeValuedFlat
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Functor C (Type w)) {X : C} (x : F.obj X) {U : CategoryTheory.Over X} (u : F.obj U.left) : u ∈ (CategoryTheory.FunctorToTypes.fromOverSubfunctor F x).obj U ↔ (CategoryTheory.ConcreteCategory.hom (F.map U.hom)) u = x - SSet.Subcomplex.mem_op_obj_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.SubcomplexOp
{X : SSet} (A : X.Subcomplex) {d : SimplexCategoryᵒᵖ} (x : X.op.obj d) : x ∈ A.op.obj d ↔ SSet.opObjEquiv x ∈ A.obj d - CategoryTheory.Subfunctor.mem_equalizer_iff 📋 Mathlib.CategoryTheory.Subfunctor.Equalizer
{C : Type u} [CategoryTheory.Category.{v, u} C] {F₁ F₂ : CategoryTheory.Functor C (Type w)} {A : CategoryTheory.Subfunctor F₁} (f g : A.toFunctor ⟶ F₂) {i : C} (x : A.toFunctor.obj i) : ↑x ∈ (CategoryTheory.Subfunctor.equalizer f g).obj i ↔ (CategoryTheory.ConcreteCategory.hom (f.app i)) x = (CategoryTheory.ConcreteCategory.hom (g.app i)) x - CategoryTheory.Subfunctor.equalizer_obj 📋 Mathlib.CategoryTheory.Subfunctor.Equalizer
{C : Type u} [CategoryTheory.Category.{v, u} C] {F₁ F₂ : CategoryTheory.Functor C (Type w)} {A : CategoryTheory.Subfunctor F₁} (f g : A.toFunctor ⟶ F₂) (U : C) : (CategoryTheory.Subfunctor.equalizer f g).obj U = {x | ∃ (hx : x ∈ A.obj U), (CategoryTheory.ConcreteCategory.hom (f.app U)) ⟨x, hx⟩ = (CategoryTheory.ConcreteCategory.hom (g.app U)) ⟨x, hx⟩} - SSet.horn.const 📋 Mathlib.AlgebraicTopology.SimplicialSet.Horn
(n : ℕ) (i k : Fin (n + 3)) (m : SimplexCategoryᵒᵖ) : ↑((SSet.horn (n + 2) i).obj m) - SSet.horn_obj_eq_univ 📋 Mathlib.AlgebraicTopology.SimplicialSet.Horn
{n : ℕ} (i : Fin (n + 1)) (m : ℕ) (h : m + 1 < n := by lia) : (SSet.horn n i).obj (Opposite.op { len := m }) = Set.univ - SSet.horn_obj_zero 📋 Mathlib.AlgebraicTopology.SimplicialSet.Horn
(n : ℕ) (i : Fin (n + 3)) : (SSet.horn (n + 2) i).obj (Opposite.op { len := 0 }) = ⊤ - SSet.mem_horn_iff_notMem_range 📋 Mathlib.AlgebraicTopology.SimplicialSet.Horn
{n d : ℕ} (s : (SSet.stdSimplex.obj { len := n }).obj (Opposite.op { len := d })) (i : Fin (n + 1)) : s ∈ (SSet.horn n i).obj (Opposite.op { len := d }) ↔ ∃ j, ∃ (_ : j ≠ i), j ∉ Set.range ⇑s - SSet.objEquiv_symm_notMem_horn_of_isIso 📋 Mathlib.AlgebraicTopology.SimplicialSet.Horn
{n : ℕ} (i : Fin (n + 1)) {d : SimplexCategory} (f : d ⟶ { len := n }) [CategoryTheory.IsIso f] : SSet.stdSimplex.objEquiv.symm f ∉ (SSet.horn n i).obj (Opposite.op d) - SSet.horn.const_val_apply 📋 Mathlib.AlgebraicTopology.SimplicialSet.Horn
(n : ℕ) (i k : Fin (n + 3)) {m : ℕ} (a : Fin (m + 1)) : ↑(SSet.horn.const n i k (Opposite.op { len := m })) a = k - SSet.horn.edge_coe 📋 Mathlib.AlgebraicTopology.SimplicialSet.Horn
(n : ℕ) (i a b : Fin (n + 1)) (hab : a ≤ b) (H : {i, a, b}.card ≤ n) : ↑(SSet.horn.edge n i a b hab H) = SSet.stdSimplex.edge n a b hab - SSet.horn_obj 📋 Mathlib.AlgebraicTopology.SimplicialSet.Horn
(n : ℕ) (i : Fin (n + 1)) (x✝ : SimplexCategoryᵒᵖ) : (SSet.horn n i).obj x✝ = {s | Set.range ⇑(SSet.stdSimplex.asOrderHom s) ∪ {i} ≠ Set.univ} - SSet.horn.edge₃_coe_down 📋 Mathlib.AlgebraicTopology.SimplicialSet.Horn
(n : ℕ) (i a b : Fin (n + 1)) (hab : a ≤ b) (H : 3 ≤ n) : (↑(SSet.horn.edge₃ n i a b hab H)).down = SimplexCategory.Hom.mk { toFun := ![a, b], monotone' := ⋯ } - SSet.mem_horn_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.Horn
{n : ℕ} (i : Fin (n + 1)) {m : SimplexCategoryᵒᵖ} (x : (SSet.stdSimplex.obj { len := n }).obj m) : x ∈ (SSet.horn n i).obj m ↔ Set.range ⇑(SSet.stdSimplex.asOrderHom x) ∪ {i} ≠ Set.univ - SSet.horn.primitiveEdge_coe_down 📋 Mathlib.AlgebraicTopology.SimplicialSet.Horn
{n : ℕ} {i : Fin (n + 1)} (h₀ : 0 < i) (hₙ : i < Fin.last n) (j : Fin n) : (↑(SSet.horn.primitiveEdge h₀ hₙ j)).down = SimplexCategory.Hom.mk { toFun := ![j.castSucc, j.succ], monotone' := ⋯ } - SSet.horn.primitiveTriangle_coe 📋 Mathlib.AlgebraicTopology.SimplicialSet.Horn
{n : ℕ} (i : Fin (n + 4)) (h₀ : 0 < i) (hₙ : i < Fin.last (n + 3)) (k : ℕ) (h : k < n + 2) : ↑(SSet.horn.primitiveTriangle i h₀ hₙ k h) = SSet.stdSimplex.triangle ⟨k, ⋯⟩ ⟨k + 1, ⋯⟩ ⟨k + 2, ⋯⟩ ⋯ ⋯ - SSet.objEquiv_symm_δ_mem_horn_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.Horn
{n : ℕ} (i j : Fin (n + 2)) : SSet.stdSimplex.objEquiv.symm (SimplexCategory.δ i) ∈ (SSet.horn (n + 1) j).obj (Opposite.op { len := n }) ↔ i ≠ j - SSet.objEquiv_symm_δ_notMem_horn_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.Horn
{n : ℕ} (i j : Fin (n + 2)) : SSet.stdSimplex.objEquiv.symm (SimplexCategory.δ i) ∉ (SSet.horn (n + 1) j).obj (Opposite.op { len := n }) ↔ i = j - SSet.boundary_obj_eq_univ 📋 Mathlib.AlgebraicTopology.SimplicialSet.Boundary
(m n : ℕ) (h : m < n := by lia) : (SSet.boundary n).obj (Opposite.op { len := m }) = Set.univ - SSet.stdSimplex.notMem_boundary 📋 Mathlib.AlgebraicTopology.SimplicialSet.Boundary
(n : ℕ) : SSet.stdSimplex.objMk OrderHom.id ∉ (SSet.boundary n).obj (Opposite.op { len := n }) - SSet.mem_boundary_iff_notMem_range 📋 Mathlib.AlgebraicTopology.SimplicialSet.Boundary
{n d : ℕ} (s : (SSet.stdSimplex.obj { len := n }).obj (Opposite.op { len := d })) : s ∈ (SSet.boundary n).obj (Opposite.op { len := d }) ↔ ∃ j, j ∉ Set.range ⇑s - SSet.Subcomplex.evaluation_obj 📋 Mathlib.AlgebraicTopology.SimplicialSet.SubcomplexEvaluation
(X : SSet) (j : SimplexCategoryᵒᵖ) (A : X.Subcomplex) : (SSet.Subcomplex.evaluation X j).obj A = A.obj j - SSet.Subcomplex.evaluation_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.SubcomplexEvaluation
(X : SSet) (j : SimplexCategoryᵒᵖ) {X✝ Y✝ : X.Subcomplex} (f : X✝ ⟶ Y✝) : (SSet.Subcomplex.evaluation X j).map f = CategoryTheory.homOfLE ⋯ - SSet.mem_skeleton 📋 Mathlib.AlgebraicTopology.SimplicialSet.Skeleton
(X : SSet) {i : ℕ} (x : X.obj (Opposite.op { len := i })) {n : ℕ} (hi : i < n := by lia) : x ∈ (X.skeleton n).obj (Opposite.op { len := i }) - SSet.skeleton_obj_eq_top 📋 Mathlib.AlgebraicTopology.SimplicialSet.Skeleton
(X : SSet) {d n : ℕ} (h : d < n) : (X.skeleton n).obj (Opposite.op { len := d }) = ⊤ - SSet.skeletonOfMono_obj_eq_top 📋 Mathlib.AlgebraicTopology.SimplicialSet.Skeleton
{X Y : SSet} (i : X ⟶ Y) {d n : ℕ} (h : d < n) : ((SSet.skeletonOfMono i) n).obj (Opposite.op { len := d }) = ⊤ - SSet.mem_skeleton_obj_iff_of_nonDegenerate 📋 Mathlib.AlgebraicTopology.SimplicialSet.Skeleton
(X : SSet) {d : ℕ} (x : ↑(X.nonDegenerate d)) (n : ℕ) : ↑x ∈ (X.skeleton n).obj (Opposite.op { len := d }) ↔ d < n - SSet.relativeCellComplexOfMono.Cell.mem_skeletonOfMono_obj_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.Skeleton
{X Y : SSet} {i : X ⟶ Y} {d : ℕ} (c : SSet.relativeCellComplexOfMono.Cell i d) {d' : ℕ} : c.simplex ∈ ((SSet.skeletonOfMono i) d').obj (Opposite.op { len := d }) ↔ c.simplex ∈ Set.range ⇑(CategoryTheory.ConcreteCategory.hom (i.app (Opposite.op { len := d }))) ∨ d < d' - SSet.mem_skeletonOfMono_obj_iff_of_nonDegenerate 📋 Mathlib.AlgebraicTopology.SimplicialSet.Skeleton
{X Y : SSet} (i : X ⟶ Y) {d : ℕ} (x : ↑(Y.nonDegenerate d)) (n : ℕ) : ↑x ∈ ((SSet.skeletonOfMono i) n).obj (Opposite.op { len := d }) ↔ ↑x ∈ Set.range ⇑(CategoryTheory.ConcreteCategory.hom (i.app (Opposite.op { len := d }))) ∨ d < n - SSet.skeletonOfMono_succ 📋 Mathlib.AlgebraicTopology.SimplicialSet.Skeleton
{X Y : SSet} (i : X ⟶ Y) (n : ℕ) : (SSet.skeletonOfMono i) (n + 1) = (SSet.skeletonOfMono i) n ⊔ ⨆ x, ⨆ (_ : ↑x ∉ (SSet.Subcomplex.range i).obj (Opposite.op { len := n })), SSet.Subcomplex.ofSimplex ↑x - SSet.relativeCellComplexOfMono.Cell.b_app_ι_app_objEquiv_symm_val 📋 Mathlib.AlgebraicTopology.SimplicialSet.Skeleton
{X Y : SSet} {i : X ⟶ Y} {d : ℕ} (c : SSet.relativeCellComplexOfMono.Cell i d) {n : SimplexCategory} (f : n ⟶ { len := d }) : ↑((CategoryTheory.ConcreteCategory.hom ((SSet.relativeCellComplexOfMono.b i d).app (Opposite.op n))) ((CategoryTheory.ConcreteCategory.hom (c.ιSigmaStdSimplex.app (Opposite.op n))) (SSet.stdSimplex.objEquiv.symm f))) = (CategoryTheory.ConcreteCategory.hom (Y.map f.op)) c.simplex - SSet.Subcomplex.liftPath 📋 Mathlib.AlgebraicTopology.SimplicialSet.Path
{X : SSet} (A : X.Subcomplex) {n : ℕ} (p : X.Path n) (hp₀ : ∀ (j : Fin (n + 1)), p.vertex j ∈ A.obj (Opposite.op { len := 0 })) (hp₁ : ∀ (j : Fin n), p.arrow j ∈ A.obj (Opposite.op { len := 1 })) : A.toSSet.Path n - SSet.Subcomplex.map_ι_liftPath 📋 Mathlib.AlgebraicTopology.SimplicialSet.Path
{X : SSet} (A : X.Subcomplex) {n : ℕ} (p : X.Path n) (hp₀ : ∀ (j : Fin (n + 1)), p.vertex j ∈ A.obj (Opposite.op { len := 0 })) (hp₁ : ∀ (j : Fin n), p.arrow j ∈ A.obj (Opposite.op { len := 1 })) : (A.liftPath p hp₀ hp₁).map A.ι = p - SSet.Subcomplex.liftPath_arrow_coe 📋 Mathlib.AlgebraicTopology.SimplicialSet.Path
{X : SSet} (A : X.Subcomplex) {n : ℕ} (p : X.Path n) (hp₀ : ∀ (j : Fin (n + 1)), p.vertex j ∈ A.obj (Opposite.op { len := 0 })) (hp₁ : ∀ (j : Fin n), p.arrow j ∈ A.obj (Opposite.op { len := 1 })) (j : Fin n) : ↑((A.liftPath p hp₀ hp₁).arrow j) = p.arrow j - SSet.Subcomplex.liftPath_vertex_coe 📋 Mathlib.AlgebraicTopology.SimplicialSet.Path
{X : SSet} (A : X.Subcomplex) {n : ℕ} (p : X.Path n) (hp₀ : ∀ (j : Fin (n + 1)), p.vertex j ∈ A.obj (Opposite.op { len := 0 })) (hp₁ : ∀ (j : Fin n), p.arrow j ∈ A.obj (Opposite.op { len := 1 })) (j : Fin (n + 1)) : ↑((A.liftPath p hp₀ hp₁).vertex j) = p.vertex j - SSet.horn.spineId_vertex_coe 📋 Mathlib.AlgebraicTopology.SimplicialSet.Path
{n : ℕ} (i : Fin (n + 3)) (h₀ : 0 < i) (hₙ : i < Fin.last (n + 2)) (j : Fin (n + 2 + 1)) : ↑((SSet.horn.spineId i h₀ hₙ).vertex j) = SSet.stdSimplex.const (n + 2) j (Opposite.op { len := 0 }) - SSet.horn.spineId_arrow_coe 📋 Mathlib.AlgebraicTopology.SimplicialSet.Path
{n : ℕ} (i : Fin (n + 3)) (h₀ : 0 < i) (hₙ : i < Fin.last (n + 2)) (j : Fin (n + 2)) : ↑((SSet.horn.spineId i h₀ hₙ).arrow j) = (SSet.stdSimplex.spineId (n + 2)).arrow j - SSet.Subcomplex.prod_obj 📋 Mathlib.AlgebraicTopology.SimplicialSet.Monoidal
{X Y : SSet} (A : X.Subcomplex) (B : Y.Subcomplex) (Δ : SimplexCategoryᵒᵖ) : (A.prod B).obj Δ = (A.obj Δ).prod (B.obj Δ) - SSet.Subcomplex.mem_unionProd_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.Monoidal
{X Y : SSet} (S : X.Subcomplex) (T : Y.Subcomplex) {n : SimplexCategoryᵒᵖ} (x : (CategoryTheory.MonoidalCategoryStruct.tensorObj X Y).obj n) : x ∈ (S.unionProd T).obj n ↔ x.2 ∈ T.obj n ∨ x.1 ∈ S.obj n - SSet.Subcomplex.N.mk' 📋 Mathlib.AlgebraicTopology.SimplicialSet.NonDegenerateSimplicesSubcomplex
{X : SSet} {A : X.Subcomplex} (toN : X.N) (notMem : toN.simplex ∉ A.obj (Opposite.op { len := toN.dim })) : A.N - SSet.Subcomplex.N.notMem 📋 Mathlib.AlgebraicTopology.SimplicialSet.NonDegenerateSimplicesSubcomplex
{X : SSet} {A : X.Subcomplex} (self : A.N) : self.simplex ∉ A.obj (Opposite.op { len := self.dim }) - SSet.Subcomplex.N.mk 📋 Mathlib.AlgebraicTopology.SimplicialSet.NonDegenerateSimplicesSubcomplex
{X : SSet} {A : X.Subcomplex} {n : ℕ} (x : X.obj (Opposite.op { len := n })) (hx : x ∈ X.nonDegenerate n) (hx' : x ∉ A.obj (Opposite.op { len := n })) : A.N - SSet.Subcomplex.N.mk_dim 📋 Mathlib.AlgebraicTopology.SimplicialSet.NonDegenerateSimplicesSubcomplex
{X : SSet} {A : X.Subcomplex} {n : ℕ} (x : X.obj (Opposite.op { len := n })) (hx : x ∈ X.nonDegenerate n) (hx' : x ∉ A.obj (Opposite.op { len := n })) : (SSet.Subcomplex.N.mk x hx hx').dim = n - SSet.Subcomplex.N.mk_simplex 📋 Mathlib.AlgebraicTopology.SimplicialSet.NonDegenerateSimplicesSubcomplex
{X : SSet} {A : X.Subcomplex} {n : ℕ} (x : X.obj (Opposite.op { len := n })) (hx : x ∈ X.nonDegenerate n) (hx' : x ∉ A.obj (Opposite.op { len := n })) : (SSet.Subcomplex.N.mk x hx hx').simplex = x - SSet.Subcomplex.N.mk'_surjective 📋 Mathlib.AlgebraicTopology.SimplicialSet.NonDegenerateSimplicesSubcomplex
{X : SSet} {A : X.Subcomplex} (s : A.N) : ∃ t, ∃ (ht : t.simplex ∉ A.obj (Opposite.op { len := t.dim })), s = { toN := t, notMem := ht } - SSet.Subcomplex.N.mk_surjective 📋 Mathlib.AlgebraicTopology.SimplicialSet.NonDegenerateSimplicesSubcomplex
{X : SSet} {A : X.Subcomplex} (s : A.N) : ∃ n x, ∃ (hx : x ∈ X.nonDegenerate n) (hx' : x ∉ A.obj (Opposite.op { len := n })), s = SSet.Subcomplex.N.mk x hx hx' - SSet.Subcomplex.existsN 📋 Mathlib.AlgebraicTopology.SimplicialSet.NonDegenerateSimplicesSubcomplex
{X : SSet} {n : ℕ} (s : X.obj (Opposite.op { len := n })) {A : X.Subcomplex} (hs : s ∉ A.obj (Opposite.op { len := n })) : ∃ x f, CategoryTheory.Epi f ∧ (CategoryTheory.ConcreteCategory.hom (X.map f.op)) x.simplex = s - SSet.prodStdSimplex.exists_nonDegenerate_max_dim 📋 Mathlib.AlgebraicTopology.SimplicialSet.ProdStdSimplex
{p q d : ℕ} (x : ↑((CategoryTheory.MonoidalCategoryStruct.tensorObj (SSet.stdSimplex.obj { len := p }) (SSet.stdSimplex.obj { len := q })).nonDegenerate d)) {n : ℕ} (hn : p + q = n) : ∃ y, ↑x ∈ (SSet.Subcomplex.ofSimplex ↑y).obj (Opposite.op { len := d }) - SSet.Subcomplex.PairingCore.notMem₁ 📋 Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.PairingCore
{X : SSet} {A : X.Subcomplex} (self : A.PairingCore) (s : self.ι) : self.simplex s ∉ A.obj (Opposite.op { len := self.dim s + 1 }) - SSet.Subcomplex.PairingCore.notMem₂ 📋 Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.PairingCore
{X : SSet} {A : X.Subcomplex} (self : A.PairingCore) (s : self.ι) : (CategoryTheory.ConcreteCategory.hom (CategoryTheory.SimplicialObject.δ X (self.index s))) (self.simplex s) ∉ A.obj (Opposite.op { len := self.dim s }) - SSet.Subcomplex.PairingCore.mk 📋 Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.PairingCore
{X : SSet} {A : X.Subcomplex} (ι : Type v) (dim : ι → ℕ) (simplex : (s : ι) → X.obj (Opposite.op { len := dim s + 1 })) (index : (s : ι) → Fin (dim s + 2)) (nonDegenerate₁ : ∀ (s : ι), simplex s ∈ X.nonDegenerate (dim s + 1)) (nonDegenerate₂ : ∀ (s : ι), (CategoryTheory.ConcreteCategory.hom (CategoryTheory.SimplicialObject.δ X (index s))) (simplex s) ∈ X.nonDegenerate (dim s)) (notMem₁ : ∀ (s : ι), simplex s ∉ A.obj (Opposite.op { len := dim s + 1 })) (notMem₂ : ∀ (s : ι), (CategoryTheory.ConcreteCategory.hom (CategoryTheory.SimplicialObject.δ X (index s))) (simplex s) ∉ A.obj (Opposite.op { len := dim s })) (injective_type₁' : ∀ {s t : ι}, { dim := dim s + 1, simplex := simplex s } = { dim := dim t + 1, simplex := simplex t } → s = t) (injective_type₂' : ∀ {s t : ι}, { dim := dim s, simplex := (CategoryTheory.ConcreteCategory.hom (CategoryTheory.SimplicialObject.δ X (index s))) (simplex s) } = { dim := dim t, simplex := (CategoryTheory.ConcreteCategory.hom (CategoryTheory.SimplicialObject.δ X (index t))) (simplex t) } → s = t) (type₁_ne_type₂' : ∀ (s t : ι), { dim := dim s + 1, simplex := simplex s } ≠ { dim := dim t, simplex := (CategoryTheory.ConcreteCategory.hom (CategoryTheory.SimplicialObject.δ X (index t))) (simplex t) }) (surjective' : ∀ (x : A.N), ∃ s, x.toS = { dim := dim s + 1, simplex := simplex s } ∨ x.toS = { dim := dim s, simplex := (CategoryTheory.ConcreteCategory.hom (CategoryTheory.SimplicialObject.δ X (index s))) (simplex s) }) : A.PairingCore - SSet.Subcomplex.Pairing.RankFunction.Cell.ι_b_app_apply 📋 Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
{X : SSet} {A : X.Subcomplex} {P : A.Pairing} {ι : Type v} [LinearOrder ι] {f : P.RankFunction ι} [P.IsProper] [SuccOrder ι] [NoMaxOrder ι] {j : ι} (c : f.Cell j) (x : SimplexCategoryᵒᵖ) (x✝ : (SSet.stdSimplex.obj { len := c.dim + 1 }).obj x) : (CategoryTheory.ConcreteCategory.hom ((f.b j).app x)) ((CategoryTheory.ConcreteCategory.hom (c.ιSigmaStdSimplex.app x)) x✝) = (CategoryTheory.ConcreteCategory.hom (c.mapToSucc.app x)) x✝ - SSet.Subcomplex.Pairing.RankFunction.Cell.ι_t_app_apply 📋 Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
{X : SSet} {A : X.Subcomplex} {P : A.Pairing} {ι : Type v} [LinearOrder ι] {f : P.RankFunction ι} [P.IsProper] {j : ι} (c : f.Cell j) (x : SimplexCategoryᵒᵖ) (x✝ : c.horn.toSSet.obj x) : (CategoryTheory.ConcreteCategory.hom ((f.t j).app x)) ((CategoryTheory.ConcreteCategory.hom (c.ιSigmaHorn.app x)) x✝) = (CategoryTheory.ConcreteCategory.hom ((SSet.Subcomplex.Pairing.RankFunction.Cell.mapHorn f c).app x)) x✝ - SSet.prodStdSimplex.pairingCore.IsType₂.notMem_simplex 📋 Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.UnionProd
{m : ℕ} {k : Fin (m + 1)} {n : ℕ} {x : ((SSet.horn (m + 1) k.castSucc).unionProd (SSet.boundary n)).N} (hx : SSet.prodStdSimplex.pairingCore.IsType₂ x) {d : ℕ} (hd : x.dim = d) : hx.simplex hd ∉ ((SSet.horn (m + 1) k.castSucc).unionProd (SSet.boundary n)).obj (Opposite.op { len := d + 1 }) - SSet.RelativeMorphism.ofSimplex₀ 📋 Mathlib.AlgebraicTopology.SimplicialSet.RelativeMorphism
{X Y : SSet} (f : X ⟶ Y) (x : X.obj (Opposite.op { len := 0 })) (y : Y.obj (Opposite.op { len := 0 })) (h : (CategoryTheory.ConcreteCategory.hom (f.app (Opposite.op { len := 0 }))) x = y) : SSet.RelativeMorphism (SSet.Subcomplex.ofSimplex x) (SSet.Subcomplex.ofSimplex y) (SSet.const ⟨y, ⋯⟩) - SSet.RelativeMorphism.ofSimplex₀_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.RelativeMorphism
{X Y : SSet} (f : X ⟶ Y) (x : X.obj (Opposite.op { len := 0 })) (y : Y.obj (Opposite.op { len := 0 })) (h : (CategoryTheory.ConcreteCategory.hom (f.app (Opposite.op { len := 0 }))) x = y) : (SSet.RelativeMorphism.ofSimplex₀ f x y h).map = f - SSet.RelativeMorphism.map_coe 📋 Mathlib.AlgebraicTopology.SimplicialSet.RelativeMorphism
{X Y : SSet} {A : X.Subcomplex} {B : Y.Subcomplex} {φ : A.toSSet ⟶ B.toSSet} (f : SSet.RelativeMorphism A B φ) {n : SimplexCategoryᵒᵖ} (a : ↑(A.obj n)) : (CategoryTheory.ConcreteCategory.hom (f.map.app n)) ↑a = ↑((CategoryTheory.ConcreteCategory.hom (φ.app n)) a) - SSet.RelativeMorphism.map_eq_of_mem 📋 Mathlib.AlgebraicTopology.SimplicialSet.RelativeMorphism
{X Y : SSet} {A : X.Subcomplex} {B : Y.Subcomplex} {φ : A.toSSet ⟶ B.toSSet} (f : SSet.RelativeMorphism A B φ) {n : SimplexCategoryᵒᵖ} (a : X.obj n) (ha : a ∈ A.obj n) : (CategoryTheory.ConcreteCategory.hom (f.map.app n)) a = ↑((CategoryTheory.ConcreteCategory.hom (φ.app n)) ⟨a, ha⟩) - SSet.toPairFunctor_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.SSetPair
{X✝ Y✝ : SSet} (f : X✝ ⟶ Y✝) : SSet.toPairFunctor.map f = SSetPair.homMk (SSet.Subcomplex.lift (CategoryTheory.CategoryStruct.comp ⊥.ι f) ⋯) f ⋯ - SSet.PtSimplex.MulStruct.mulOne 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} (f : X.PtSimplex n x) (i : Fin n) : f.MulStruct SSet.RelativeMorphism.const f i - SSet.PtSimplex.MulStruct.oneMul 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} (f : X.PtSimplex n x) (i : Fin n) : SSet.PtSimplex.MulStruct SSet.RelativeMorphism.const f f i - SSet.PtSimplex.relStructCastSuccEquivMulStruct 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g : X.PtSimplex n x} {i : Fin n} : f.RelStruct g i.castSucc ≃ SSet.PtSimplex.MulStruct SSet.RelativeMorphism.const f g i - SSet.PtSimplex.relStructSuccEquivMulStruct 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g : X.PtSimplex n x} {i : Fin n} : f.RelStruct g i.succ ≃ g.MulStruct SSet.RelativeMorphism.const f i - SSet.PtSimplex.comp_map_eq_const 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} (s : X.PtSimplex n x) {Y : SSet} (φ : Y ⟶ SSet.stdSimplex.obj { len := n }) [Y.HasDimensionLT n] : CategoryTheory.CategoryStruct.comp φ s.map = SSet.const x - SSet.PtSimplex.RelStruct.refl_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} (f : X.PtSimplex n x) (i : Fin (n + 1)) : (SSet.PtSimplex.RelStruct.refl f i).map = CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.σ i) f.map - SSet.PtSimplex.MulStruct.δ_castSucc_castSucc_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g fg : X.PtSimplex n x} {i : Fin n} (self : f.MulStruct g fg i) : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i.castSucc.castSucc) self.map = g.map - SSet.PtSimplex.MulStruct.δ_succ_castSucc_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g fg : X.PtSimplex n x} {i : Fin n} (self : f.MulStruct g fg i) : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i.castSucc.succ) self.map = fg.map - SSet.PtSimplex.MulStruct.δ_succ_succ_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g fg : X.PtSimplex n x} {i : Fin n} (self : f.MulStruct g fg i) : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i.succ.succ) self.map = f.map - SSet.PtSimplex.RelStruct.δ_castSucc_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g : X.PtSimplex n x} {i : Fin (n + 1)} (self : f.RelStruct g i) : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i.castSucc) self.map = f.map - SSet.PtSimplex.RelStruct.δ_succ_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g : X.PtSimplex n x} {i : Fin (n + 1)} (self : f.RelStruct g i) : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i.succ) self.map = g.map - SSet.PtSimplex.comp_map_eq_const_assoc 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} (s : X.PtSimplex n x) {Y : SSet} (φ : Y ⟶ SSet.stdSimplex.obj { len := n }) [Y.HasDimensionLT n] {Z : SSet} (h : X ⟶ Z) : CategoryTheory.CategoryStruct.comp φ (CategoryTheory.CategoryStruct.comp s.map h) = CategoryTheory.CategoryStruct.comp (SSet.const x) h - SSet.PtSimplex.RelStruct.ofEq_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g : X.PtSimplex n x} (h : f = g) (i : Fin (n + 1)) : (SSet.PtSimplex.RelStruct.ofEq h i).map = CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.σ i) f.map - SSet.PtSimplex.δ_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} (f : X.PtSimplex (n + 1) x) (i : Fin (n + 2)) : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i) f.map = SSet.const x - SSet.PtSimplex.MulStruct.δ_castSucc_castSucc_map_assoc 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g fg : X.PtSimplex n x} {i : Fin n} (self : f.MulStruct g fg i) {Z : SSet} (h : X ⟶ Z) : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i.castSucc.castSucc) (CategoryTheory.CategoryStruct.comp self.map h) = CategoryTheory.CategoryStruct.comp g.map h - SSet.PtSimplex.MulStruct.δ_succ_castSucc_map_assoc 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g fg : X.PtSimplex n x} {i : Fin n} (self : f.MulStruct g fg i) {Z : SSet} (h : X ⟶ Z) : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i.castSucc.succ) (CategoryTheory.CategoryStruct.comp self.map h) = CategoryTheory.CategoryStruct.comp fg.map h - SSet.PtSimplex.MulStruct.δ_succ_succ_map_assoc 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g fg : X.PtSimplex n x} {i : Fin n} (self : f.MulStruct g fg i) {Z : SSet} (h : X ⟶ Z) : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i.succ.succ) (CategoryTheory.CategoryStruct.comp self.map h) = CategoryTheory.CategoryStruct.comp f.map h - SSet.PtSimplex.RelStruct.δ_castSucc_map_assoc 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g : X.PtSimplex n x} {i : Fin (n + 1)} (self : f.RelStruct g i) {Z : SSet} (h : X ⟶ Z) : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i.castSucc) (CategoryTheory.CategoryStruct.comp self.map h) = CategoryTheory.CategoryStruct.comp f.map h - SSet.PtSimplex.RelStruct.δ_succ_map_assoc 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g : X.PtSimplex n x} {i : Fin (n + 1)} (self : f.RelStruct g i) {Z : SSet} (h : X ⟶ Z) : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i.succ) (CategoryTheory.CategoryStruct.comp self.map h) = CategoryTheory.CategoryStruct.comp g.map h - SSet.PtSimplex.δ_map_assoc 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} (f : X.PtSimplex (n + 1) x) (i : Fin (n + 2)) {Z : SSet} (h : X ⟶ Z) : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i) (CategoryTheory.CategoryStruct.comp f.map h) = CategoryTheory.CategoryStruct.comp (SSet.const x) h - SSet.PtSimplex.MulStruct.mulOne_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} (f : X.PtSimplex n x) (i : Fin n) : (SSet.PtSimplex.MulStruct.mulOne f i).map = CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.σ i.succ) f.map - SSet.PtSimplex.MulStruct.oneMul_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} (f : X.PtSimplex n x) (i : Fin n) : (SSet.PtSimplex.MulStruct.oneMul f i).map = CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.σ i.castSucc) f.map - SSet.PtSimplex.RelStruct.mk 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g : X.PtSimplex n x} {i : Fin (n + 1)} (map : SSet.stdSimplex.obj { len := n + 1 } ⟶ X) (δ_castSucc_map : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i.castSucc) map = f.map := by cat_disch) (δ_succ_map : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i.succ) map = g.map := by cat_disch) (δ_map_of_lt : ∀ j < i.castSucc, CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ j) map = SSet.const x := by cat_disch) (δ_map_of_gt : ∀ (j : Fin (n + 2)), i.succ < j → CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ j) map = SSet.const x := by cat_disch) : f.RelStruct g i - SSet.PtSimplex.relStructCastSuccEquivMulStruct_apply_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g : X.PtSimplex n x} {i : Fin n} (h : f.RelStruct g i.castSucc) : (SSet.PtSimplex.relStructCastSuccEquivMulStruct h).map = h.map - SSet.PtSimplex.relStructSuccEquivMulStruct_apply_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g : X.PtSimplex n x} {i : Fin n} (h : f.RelStruct g i.succ) : (SSet.PtSimplex.relStructSuccEquivMulStruct h).map = h.map - SSet.PtSimplex.MulStruct.mk 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g fg : X.PtSimplex n x} {i : Fin n} (map : SSet.stdSimplex.obj { len := n + 1 } ⟶ X) (δ_castSucc_castSucc_map : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i.castSucc.castSucc) map = g.map := by cat_disch) (δ_succ_castSucc_map : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i.castSucc.succ) map = fg.map := by cat_disch) (δ_succ_succ_map : CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ i.succ.succ) map = f.map := by cat_disch) (δ_map_of_lt : ∀ j < i.castSucc.castSucc, CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ j) map = SSet.const x := by cat_disch) (δ_map_of_gt : ∀ (j : Fin (n + 2)), i.succ.succ < j → CategoryTheory.CategoryStruct.comp (SSet.stdSimplex.δ j) map = SSet.const x := by cat_disch) : f.MulStruct g fg i - SSet.PtSimplex.relStructCastSuccEquivMulStruct_symm_apply_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g : X.PtSimplex n x} {i : Fin n} (h : SSet.PtSimplex.MulStruct SSet.RelativeMorphism.const f g i) : (SSet.PtSimplex.relStructCastSuccEquivMulStruct.symm h).map = h.map - SSet.PtSimplex.relStructSuccEquivMulStruct_symm_apply_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} {f g : X.PtSimplex n x} {i : Fin n} (h : g.MulStruct SSet.RelativeMorphism.const f i) : (SSet.PtSimplex.relStructSuccEquivMulStruct.symm h).map = h.map - SSet.PtSimplex.opEquiv_symm_apply_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} (g : X.PtSimplex n x) : (SSet.PtSimplex.opEquiv.symm g).map = SSet.yonedaEquiv.symm (SSet.opObjEquiv.symm (SSet.yonedaEquiv g.map)) - SSet.PtSimplex.opEquiv_apply_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.KanComplex.MulStruct
{X : SSet} {n : ℕ} {x : X.obj (Opposite.op { len := 0 })} (f : X.op.PtSimplex n (SSet.opObjEquiv.symm x)) : (SSet.PtSimplex.opEquiv f).map = SSet.yonedaEquiv.symm (SSet.opObjEquiv (SSet.yonedaEquiv f.map)) - CategoryTheory.Precoverage.subsheafify_obj 📋 Mathlib.CategoryTheory.Sites.Precoverage.Subsheaf
{C : Type u} [CategoryTheory.Category.{v, u} C] (K : CategoryTheory.Precoverage C) {F : CategoryTheory.Functor Cᵒᵖ (Type w)} (𝒮 : (Z : C) → Set (F.obj (Opposite.op Z))) (U : Cᵒᵖ) : (K.subsheafify 𝒮).obj U = {x | K.SubsheafClosure 𝒮 (Opposite.unop U) x} - CategoryTheory.Subfunctor.IsGeneratedBy.mem 📋 Mathlib.CategoryTheory.Subfunctor.Finite
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor Cᵒᵖ (Type w)} {G : CategoryTheory.Subfunctor F} {ι : Type w'} {X : ι → Cᵒᵖ} {x : (i : ι) → F.obj (X i)} (h : G.IsGeneratedBy x) (i : ι) : x i ∈ G.obj (X i) - CategoryTheory.SubmonoidFunctor.toSubfunctor_obj 📋 Mathlib.CategoryTheory.Subfunctor.SubmonoidFunctor
{C : Type u} [CategoryTheory.Category.{v, u} C] {M : CategoryTheory.Functor C MonCat} (S : CategoryTheory.SubmonoidFunctor M) (x✝ : C) : S.toSubfunctor.obj x✝ = (S.obj x✝).carrier
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using the Loogle command from the command palette. You can also try the
#loogle command from LeanSearchClient,
the CLI version, the Loogle
VS Code extension, the lean.nvim
integration or the Zulip bot.
Usage
Loogle finds definitions and lemmas in various ways:
By constant:
🔍Real.sin
finds all lemmas whose statement somehow mentions the sine function.By lemma name substring:
🔍"differ"
finds all lemmas that have"differ"somewhere in their lemma name.By subexpression:
🔍_ * (_ ^ _)
finds all lemmas whose statements somewhere include a product where the second argument is raised to some power.The pattern can also be non-linear, as in
🔍Real.sqrt ?a * Real.sqrt ?aIf the pattern has parameters, they are matched in any order. Both of these will find
List.map:
🔍(?a -> ?b) -> List ?a -> List ?b
🔍List ?a -> (?a -> ?b) -> List ?bBy main conclusion:
🔍|- tsum _ = _ * tsum _
finds all lemmas where the conclusion (the subexpression to the right of all→and∀) has the given shape.As before, if the pattern has parameters, they are matched against the hypotheses of the lemma in any order; for example,
🔍|- _ < _ → tsum _ < tsum _
will findtsum_lt_tsumeven though the hypothesisf i < g iis not the last.You can filter for definitions vs theorems: Using
⊢ (_ : Type _)finds all definitions which provide data while⊢ (_ : Prop)finds all theorems (and definitions of proofs).
If you pass more than one such search filter, separated by commas
Loogle will return lemmas which match all of them. The
search
🔍 Real.sin, "two", tsum, _ * _, _ ^ _, |- _ < _ → _
would find all lemmas which mention the constants Real.sin
and tsum, have "two" as a substring of the
lemma name, include a product and a power somewhere in the type,
and have a hypothesis of the form _ < _ (if
there were any such lemmas). Metavariables (?a) are
assigned independently in each filter.
The #lucky button will directly send you to the
documentation of the first hit.
Source code
You can find the source code for this service at https://github.com/nomeata/loogle. The https://loogle.lean-lang.org/ service is provided by the Lean FRO. Please review the Lean FRO Terms of Use and Privacy Policy.
This is Loogle revision 9f11169 serving mathlib revision ce5dd8c