Loogle!
Result
Found 98 declarations mentioning SSet.Truncated.Edge.
- SSet.Truncated.Edge.id 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} (x : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })) : SSet.Truncated.Edge x x - SSet.Truncated.Edge 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} (x₀ x₁ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })) : Type u - SSet.Truncated.Edge.CompStruct.compId 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x y : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} (e : SSet.Truncated.Edge x y) : e.CompStruct (SSet.Truncated.Edge.id y) e - SSet.Truncated.Edge.CompStruct.idComp 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x y : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} (e : SSet.Truncated.Edge x y) : (SSet.Truncated.Edge.id x).CompStruct e e - SSet.Truncated.Edge.edge 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} (self : SSet.Truncated.Edge x₀ x₁) : X.obj (Opposite.op { obj := { len := 1 }, property := SSet.Truncated.Edge._proof_2 }) - SSet.Truncated.Edge.instSubsingleton 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} [Subsingleton (X.obj (Opposite.op { obj := { len := 1 }, property := SSet.Truncated.Edge._proof_2 }))] {x y : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} : Subsingleton (SSet.Truncated.Edge x y) - SSet.Truncated.Edge.CompStruct 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} (e₀₁ : SSet.Truncated.Edge x₀ x₁) (e₁₂ : SSet.Truncated.Edge x₁ x₂) (e₀₂ : SSet.Truncated.Edge x₀ x₂) : Type u - SSet.Truncated.Edge.ext 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} {x y : SSet.Truncated.Edge x₀ x₁} (edge : x.edge = y.edge) : x = y - SSet.Truncated.Edge.ext_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} {x y : SSet.Truncated.Edge x₀ x₁} : x = y ↔ x.edge = y.edge - SSet.Truncated.Edge.CompStruct.simplex 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (self : e₀₁.CompStruct e₁₂ e₀₂) : X.obj (Opposite.op { obj := { len := 2 }, property := SSet.Truncated.Edge.CompStruct._proof_1 }) - SSet.Truncated.Edge.CompStruct.ext 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} {x y : e₀₁.CompStruct e₁₂ e₀₂} (simplex : x.simplex = y.simplex) : x = y - SSet.Truncated.Edge.CompStruct.ext_iff 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} {x y : e₀₁.CompStruct e₁₂ e₀₂} : x = y ↔ x.simplex = y.simplex - SSet.Truncated.Edge.exists_of_simplex 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} (s : X.obj (Opposite.op { obj := { len := 1 }, property := SSet.Truncated.Edge._proof_2 })) : ∃ x₀ x₁ e, e.edge = s - SSet.Truncated.Edge.CompStruct.exists_of_simplex 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} (s : X.obj (Opposite.op { obj := { len := 2 }, property := SSet.Truncated.Edge.CompStruct._proof_1 })) : ∃ x₀ x₁ x₂ e₀₁ e₁₂ e₀₂ h, h.simplex = s - SSet.Truncated.Edge.src_eq 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} (self : SSet.Truncated.Edge x₀ x₁) : (CategoryTheory.ConcreteCategory.hom (X.map (SimplexCategory.Truncated.δ₂ 1 SSet.Truncated.Edge._proof_1 SSet.Truncated.Edge._proof_3).op)) self.edge = x₀ - SSet.Truncated.Edge.tgt_eq 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} (self : SSet.Truncated.Edge x₀ x₁) : (CategoryTheory.ConcreteCategory.hom (X.map (SimplexCategory.Truncated.δ₂ 0 SSet.Truncated.Edge._proof_1 SSet.Truncated.Edge._proof_3).op)) self.edge = x₁ - SSet.Truncated.Edge.CompStruct.d₀ 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (self : e₀₁.CompStruct e₁₂ e₀₂) : (CategoryTheory.ConcreteCategory.hom (X.map (SimplexCategory.Truncated.δ₂ 0 SSet.Truncated.Edge._proof_2 SSet.Truncated.Edge.CompStruct._proof_2).op)) self.simplex = e₁₂.edge - SSet.Truncated.Edge.CompStruct.d₁ 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (self : e₀₁.CompStruct e₁₂ e₀₂) : (CategoryTheory.ConcreteCategory.hom (X.map (SimplexCategory.Truncated.δ₂ 1 SSet.Truncated.Edge._proof_2 SSet.Truncated.Edge.CompStruct._proof_2).op)) self.simplex = e₀₂.edge - SSet.Truncated.Edge.CompStruct.d₂ 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (self : e₀₁.CompStruct e₁₂ e₀₂) : (CategoryTheory.ConcreteCategory.hom (X.map (SimplexCategory.Truncated.δ₂ 2 SSet.Truncated.Edge._proof_2 SSet.Truncated.Edge.CompStruct._proof_2).op)) self.simplex = e₀₁.edge - SSet.Truncated.Edge.map 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X Y : SSet.Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} (e : SSet.Truncated.Edge x₀ x₁) (f : X ⟶ Y) : SSet.Truncated.Edge ((CategoryTheory.ConcreteCategory.hom (f.app (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 }))) x₀) ((CategoryTheory.ConcreteCategory.hom (f.app (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 }))) x₁) - SSet.Truncated.Edge.map_id 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X Y : SSet.Truncated 2} (x : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })) (f : X ⟶ Y) : (SSet.Truncated.Edge.id x).map f = SSet.Truncated.Edge.id ((CategoryTheory.ConcreteCategory.hom (f.app (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 }))) x) - SSet.Truncated.Edge.mk' 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} (s : X.obj (Opposite.op { obj := { len := 1 }, property := SSet.Truncated.Edge._proof_2 })) : SSet.Truncated.Edge ((CategoryTheory.ConcreteCategory.hom (X.map (SimplexCategory.Truncated.δ₂ 1 SSet.Truncated.Edge._proof_1 SSet.Truncated.Edge._proof_3).op)) s) ((CategoryTheory.ConcreteCategory.hom (X.map (SimplexCategory.Truncated.δ₂ 0 SSet.Truncated.Edge._proof_1 SSet.Truncated.Edge._proof_3).op)) s) - SSet.Truncated.Edge.map_edge 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X Y : SSet.Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} (e : SSet.Truncated.Edge x₀ x₁) (f : X ⟶ Y) : (e.map f).edge = (CategoryTheory.ConcreteCategory.hom (f.app (Opposite.op { obj := { len := 1 }, property := SSet.Truncated.Edge._proof_2 }))) e.edge - SSet.Truncated.Edge.CompStruct.map 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X Y : SSet.Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (h : e₀₁.CompStruct e₁₂ e₀₂) (f : X ⟶ Y) : (e₀₁.map f).CompStruct (e₁₂.map f) (e₀₂.map f) - SSet.Truncated.Edge.mk 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} (edge : X.obj (Opposite.op { obj := { len := 1 }, property := SSet.Truncated.Edge._proof_2 })) (src_eq : (CategoryTheory.ConcreteCategory.hom (X.map (SimplexCategory.Truncated.δ₂ 1 SSet.Truncated.Edge._proof_1 SSet.Truncated.Edge._proof_3).op)) edge = x₀ := by cat_disch) (tgt_eq : (CategoryTheory.ConcreteCategory.hom (X.map (SimplexCategory.Truncated.δ₂ 0 SSet.Truncated.Edge._proof_1 SSet.Truncated.Edge._proof_3).op)) edge = x₁ := by cat_disch) : SSet.Truncated.Edge x₀ x₁ - SSet.Truncated.Edge.CompStruct.map_simplex 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X Y : SSet.Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (h : e₀₁.CompStruct e₁₂ e₀₂) (f : X ⟶ Y) : (h.map f).simplex = (CategoryTheory.ConcreteCategory.hom (f.app (Opposite.op { obj := { len := 2 }, property := SSet.Truncated.Edge.CompStruct._proof_1 }))) h.simplex - SSet.Truncated.Edge.CompStruct.mk 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStructTruncated
{X : SSet.Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (simplex : X.obj (Opposite.op { obj := { len := 2 }, property := SSet.Truncated.Edge.CompStruct._proof_1 })) (d₂ : (CategoryTheory.ConcreteCategory.hom (X.map (SimplexCategory.Truncated.δ₂ 2 SSet.Truncated.Edge._proof_2 SSet.Truncated.Edge.CompStruct._proof_2).op)) simplex = e₀₁.edge := by cat_disch) (d₀ : (CategoryTheory.ConcreteCategory.hom (X.map (SimplexCategory.Truncated.δ₂ 0 SSet.Truncated.Edge._proof_2 SSet.Truncated.Edge.CompStruct._proof_2).op)) simplex = e₁₂.edge := by cat_disch) (d₁ : (CategoryTheory.ConcreteCategory.hom (X.map (SimplexCategory.Truncated.δ₂ 1 SSet.Truncated.Edge._proof_2 SSet.Truncated.Edge.CompStruct._proof_2).op)) simplex = e₀₂.edge := by cat_disch) : e₀₁.CompStruct e₁₂ e₀₂ - SSet.Edge.ofTruncated 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStruct
{X : SSet} {x₀ x₁ : X.obj (Opposite.op { len := 0 })} (e : SSet.Truncated.Edge x₀ x₁) : SSet.Edge x₀ x₁ - SSet.Edge.toTruncated 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStruct
{X : SSet} {x₀ x₁ : X.obj (Opposite.op { len := 0 })} (e : SSet.Edge x₀ x₁) : SSet.Truncated.Edge x₀ x₁ - SSet.Edge.toTruncated_id 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStruct
{X : SSet} (x₀ : X.obj (Opposite.op { len := 0 })) : (SSet.Edge.id x₀).toTruncated = SSet.Truncated.Edge.id x₀ - SSet.Edge.ofTruncated_edge 📋 Mathlib.AlgebraicTopology.SimplicialSet.CompStruct
{X : SSet} {x₀ x₁ : X.obj (Opposite.op { len := 0 })} (e : SSet.Truncated.Edge x₀ x₁) : (SSet.Edge.ofTruncated e).edge = e.edge - SSet.OneTruncation₂.reflQuiver_id 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
(S : SSet.Truncated 2) (x : S.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })) : CategoryTheory.ReflQuiver.id x = SSet.Truncated.Edge.id x - SSet.OneTruncation₂.reflQuiver_Hom 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
(S : SSet.Truncated 2) (x₀ x₁ : S.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge._proof_1 })) : (x₀ ⟶ x₁) = SSet.Truncated.Edge x₀ x₁ - SSet.Truncated.HomotopyCategory.morphismPropertyHomMk_of_edge 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {x y : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} (e : SSet.Truncated.Edge x y) : SSet.Truncated.HomotopyCategory.morphismPropertyHomMk V (SSet.Truncated.HomotopyCategory.homMk e) - SSet.Truncated.HomotopyCategory.homMk 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {x₀ x₁ : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} (e : SSet.Truncated.Edge x₀ x₁) : SSet.Truncated.HomotopyCategory.mk x₀ ⟶ SSet.Truncated.HomotopyCategory.mk x₁ - SSet.Truncated.HomotopyCategory.morphismProperty_eq_top 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {W : CategoryTheory.MorphismProperty V.HomotopyCategory} [W.IsMultiplicative] (hW : ∀ {x y : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} (e : SSet.Truncated.Edge x y), W (SSet.Truncated.HomotopyCategory.homMk e)) : W = ⊤ - SSet.Truncated.HomotopyCategory.hom_rec 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {motive : {x y : V.HomotopyCategory} → (x ⟶ y) → Prop} (homMk : ∀ {x y : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} (e : SSet.Truncated.Edge x y), motive (SSet.Truncated.HomotopyCategory.homMk e)) (comp : ∀ {x y z : V.HomotopyCategory} (f : x ⟶ y) (g : y ⟶ z), motive f → motive g → motive (CategoryTheory.CategoryStruct.comp f g)) {x y : V.HomotopyCategory} (f : x ⟶ y) : motive f - SSet.Truncated.HomotopyCategory.homMk_comp_homMk 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {x₀ x₁ x₂ : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (h : e₀₁.CompStruct e₁₂ e₀₂) : CategoryTheory.CategoryStruct.comp (SSet.Truncated.HomotopyCategory.homMk e₀₁) (SSet.Truncated.HomotopyCategory.homMk e₁₂) = SSet.Truncated.HomotopyCategory.homMk e₀₂ - SSet.Truncated.HomotopyCategory.homMk_comp_homMk_assoc 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {x₀ x₁ x₂ : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (h : e₀₁.CompStruct e₁₂ e₀₂) {Z : V.HomotopyCategory} (h✝ : SSet.Truncated.HomotopyCategory.mk x₂ ⟶ Z) : CategoryTheory.CategoryStruct.comp (SSet.Truncated.HomotopyCategory.homMk e₀₁) (CategoryTheory.CategoryStruct.comp (SSet.Truncated.HomotopyCategory.homMk e₁₂) h✝) = CategoryTheory.CategoryStruct.comp (SSet.Truncated.HomotopyCategory.homMk e₀₂) h✝ - SSet.Truncated.HomotopyCategory.congr_arrowMk_homMk 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {x₀ x₁ : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} (e : SSet.Truncated.Edge x₀ x₁) {y₀ y₁ : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} (e' : SSet.Truncated.Edge y₀ y₁) (h : e.edge = e'.edge) : CategoryTheory.Arrow.mk (SSet.Truncated.HomotopyCategory.homMk e) = CategoryTheory.Arrow.mk (SSet.Truncated.HomotopyCategory.homMk e') - SSet.OneTruncation₂.HoRel₂.of_compStruct 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {x₀ x₁ x₂ : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (h : e₀₁.CompStruct e₁₂ e₀₂) : SSet.OneTruncation₂.HoRel₂ V ((CategoryTheory.Cat.FreeRefl.quotientFunctor (SSet.OneTruncation₂ V)).map (CategoryTheory.CategoryStruct.comp (Quiver.Hom.toPath e₀₁) (Quiver.Hom.toPath e₁₂))) ((CategoryTheory.Cat.FreeRefl.quotientFunctor (SSet.OneTruncation₂ V)).map (Quiver.Hom.toPath e₀₂)) - SSet.Truncated.HomotopyCategory.mkNatTrans 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] {F G : CategoryTheory.Functor V.HomotopyCategory D} (φ : (x : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })) → F.obj (SSet.Truncated.HomotopyCategory.mk x) ⟶ G.obj (SSet.Truncated.HomotopyCategory.mk x)) (hφ : ∀ ⦃x y : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })⦄ (e : SSet.Truncated.Edge x y), CategoryTheory.CategoryStruct.comp (F.map (SSet.Truncated.HomotopyCategory.homMk e)) (φ y) = CategoryTheory.CategoryStruct.comp (φ x) (G.map (SSet.Truncated.HomotopyCategory.homMk e)) := by cat_disch) : F ⟶ G - SSet.Truncated.HomotopyCategory.mkNatIso 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] {F G : CategoryTheory.Functor V.HomotopyCategory D} (iso : (x : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })) → F.obj (SSet.Truncated.HomotopyCategory.mk x) ≅ G.obj (SSet.Truncated.HomotopyCategory.mk x)) (hiso : ∀ ⦃x y : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })⦄ (e : SSet.Truncated.Edge x y), CategoryTheory.CategoryStruct.comp (F.map (SSet.Truncated.HomotopyCategory.homMk e)) (iso y).hom = CategoryTheory.CategoryStruct.comp (iso x).hom (G.map (SSet.Truncated.HomotopyCategory.homMk e)) := by cat_disch) : F ≅ G - SSet.Truncated.HomotopyCategory.functor_ext 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] {F G : CategoryTheory.Functor V.HomotopyCategory D} (h₁ : ∀ (x : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })), F.obj (SSet.Truncated.HomotopyCategory.mk x) = G.obj (SSet.Truncated.HomotopyCategory.mk x)) (h₂ : ∀ ⦃x y : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })⦄ (e : SSet.Truncated.Edge x y), F.map (SSet.Truncated.HomotopyCategory.homMk e) = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom ⋯) (CategoryTheory.CategoryStruct.comp (G.map (SSet.Truncated.HomotopyCategory.homMk e)) (CategoryTheory.eqToHom ⋯))) : F = G - SSet.Truncated.HomotopyCategory.mkNatTrans_app_mk 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] {F G : CategoryTheory.Functor V.HomotopyCategory D} (φ : (x : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })) → F.obj (SSet.Truncated.HomotopyCategory.mk x) ⟶ G.obj (SSet.Truncated.HomotopyCategory.mk x)) (hφ : ∀ ⦃x y : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })⦄ (e : SSet.Truncated.Edge x y), CategoryTheory.CategoryStruct.comp (F.map (SSet.Truncated.HomotopyCategory.homMk e)) (φ y) = CategoryTheory.CategoryStruct.comp (φ x) (G.map (SSet.Truncated.HomotopyCategory.homMk e)) := by cat_disch) (v : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })) : (SSet.Truncated.HomotopyCategory.mkNatTrans φ hφ).app (SSet.Truncated.HomotopyCategory.mk v) = φ v - SSet.Truncated.HomotopyCategory.lift 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] (obj : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 }) → D) (map : {x y : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} → SSet.Truncated.Edge x y → (obj x ⟶ obj y)) (map_id : ∀ (x : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })), map (SSet.Truncated.Edge.id x) = CategoryTheory.CategoryStruct.id (obj x)) (map_comp : ∀ {x₀ x₁ x₂ : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (x : e₀₁.CompStruct e₁₂ e₀₂), CategoryTheory.CategoryStruct.comp (map e₀₁) (map e₁₂) = map e₀₂) : CategoryTheory.Functor V.HomotopyCategory D - SSet.Truncated.HomotopyCategory.mkNatIso_hom_app_mk 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] {F G : CategoryTheory.Functor V.HomotopyCategory D} (iso : (x : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })) → F.obj (SSet.Truncated.HomotopyCategory.mk x) ≅ G.obj (SSet.Truncated.HomotopyCategory.mk x)) (hiso : ∀ ⦃x y : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })⦄ (e : SSet.Truncated.Edge x y), CategoryTheory.CategoryStruct.comp (F.map (SSet.Truncated.HomotopyCategory.homMk e)) (iso y).hom = CategoryTheory.CategoryStruct.comp (iso x).hom (G.map (SSet.Truncated.HomotopyCategory.homMk e)) := by cat_disch) (v : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })) : (SSet.Truncated.HomotopyCategory.mkNatIso iso hiso).hom.app (SSet.Truncated.HomotopyCategory.mk v) = (iso v).hom - SSet.Truncated.HomotopyCategory.mkNatIso_inv_app_mk 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] {F G : CategoryTheory.Functor V.HomotopyCategory D} (iso : (x : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })) → F.obj (SSet.Truncated.HomotopyCategory.mk x) ≅ G.obj (SSet.Truncated.HomotopyCategory.mk x)) (hiso : ∀ ⦃x y : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })⦄ (e : SSet.Truncated.Edge x y), CategoryTheory.CategoryStruct.comp (F.map (SSet.Truncated.HomotopyCategory.homMk e)) (iso y).hom = CategoryTheory.CategoryStruct.comp (iso x).hom (G.map (SSet.Truncated.HomotopyCategory.homMk e)) := by cat_disch) (v : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })) : (SSet.Truncated.HomotopyCategory.mkNatIso iso hiso).inv.app (SSet.Truncated.HomotopyCategory.mk v) = (iso v).inv - SSet.Truncated.HomotopyCategory.lift_obj_mk 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] (obj : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 }) → D) (map : {x y : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} → SSet.Truncated.Edge x y → (obj x ⟶ obj y)) (map_id : ∀ (x : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })), map (SSet.Truncated.Edge.id x) = CategoryTheory.CategoryStruct.id (obj x)) (map_comp : ∀ {x₀ x₁ x₂ : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (x : e₀₁.CompStruct e₁₂ e₀₂), CategoryTheory.CategoryStruct.comp (map e₀₁) (map e₁₂) = map e₀₂) (x : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })) : (SSet.Truncated.HomotopyCategory.lift obj (fun {x y} => map) map_id ⋯).obj (SSet.Truncated.HomotopyCategory.mk x) = obj x - SSet.OneTruncation₂.map_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{S T : SSet.Truncated 2} (f : S ⟶ T) {X✝ Y✝ : SSet.OneTruncation₂ S} (e : X✝ ⟶ Y✝) : (SSet.OneTruncation₂.map f).map e = SSet.Truncated.Edge.map e f - SSet.Truncated.mapHomotopyCategory_homMk 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V W : SSet.Truncated 2} (f : V ⟶ W) {x y : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} (e : SSet.Truncated.Edge x y) : (SSet.Truncated.mapHomotopyCategory f).map (SSet.Truncated.HomotopyCategory.homMk e) = SSet.Truncated.HomotopyCategory.homMk (e.map f) - SSet.Truncated.HomotopyCategory.lift_map_homMk 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] (obj : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 }) → D) (map : {x y : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} → SSet.Truncated.Edge x y → (obj x ⟶ obj y)) (map_id : ∀ (x : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })), map (SSet.Truncated.Edge.id x) = CategoryTheory.CategoryStruct.id (obj x)) (map_comp : ∀ {x₀ x₁ x₂ : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (x : e₀₁.CompStruct e₁₂ e₀₂), CategoryTheory.CategoryStruct.comp (map e₀₁) (map e₁₂) = map e₀₂) {x y : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })} (e : SSet.Truncated.Edge x y) : (SSet.Truncated.HomotopyCategory.lift obj (fun {x y} => map) map_id ⋯).map (SSet.Truncated.HomotopyCategory.homMk e) = map e - SSet.Truncated.Edge.tensor 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y : SSet.Truncated 2} {x x' : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₁ : SSet.Truncated.Edge x x') {y y' : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₂ : SSet.Truncated.Edge y y') : SSet.Truncated.Edge (x, y) (x', y') - SSet.Truncated.Edge.id_tensor_id 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y : SSet.Truncated 2} (x : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })) (y : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })) : (SSet.Truncated.Edge.id x).tensor (SSet.Truncated.Edge.id y) = SSet.Truncated.Edge.id (x, y) - SSet.Truncated.Edge.tensor_edge 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y : SSet.Truncated 2} {x x' : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₁ : SSet.Truncated.Edge x x') {y y' : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₂ : SSet.Truncated.Edge y y') : (e₁.tensor e₂).edge = (e₁.edge, e₂.edge) - SSet.Truncated.Edge.CompStruct.tensor 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y : SSet.Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (hx : e₀₁.CompStruct e₁₂ e₀₂) {y₀ y₁ y₂ : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} {e'₀₁ : SSet.Truncated.Edge y₀ y₁} {e'₁₂ : SSet.Truncated.Edge y₁ y₂} {e'₀₂ : SSet.Truncated.Edge y₀ y₂} (hy : e'₀₁.CompStruct e'₁₂ e'₀₂) : (e₀₁.tensor e'₀₁).CompStruct (e₁₂.tensor e'₁₂) (e₀₂.tensor e'₀₂) - SSet.Truncated.Edge.tensor_surjective 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y : SSet.Truncated 2} {x x' : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} {y y' : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e : SSet.Truncated.Edge (x, y) (x', y')) : ∃ e₁ e₂, e₁.tensor e₂ = e - SSet.Truncated.Edge.CompStruct.tensor_simplex_fst 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y : SSet.Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (hx : e₀₁.CompStruct e₁₂ e₀₂) {y₀ y₁ y₂ : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} {e'₀₁ : SSet.Truncated.Edge y₀ y₁} {e'₁₂ : SSet.Truncated.Edge y₁ y₂} {e'₀₂ : SSet.Truncated.Edge y₀ y₂} (hy : e'₀₁.CompStruct e'₁₂ e'₀₂) : (hx.tensor hy).simplex.1 = hx.simplex - SSet.Truncated.Edge.CompStruct.tensor_simplex_snd 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y : SSet.Truncated 2} {x₀ x₁ x₂ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₀₂ : SSet.Truncated.Edge x₀ x₂} (hx : e₀₁.CompStruct e₁₂ e₀₂) {y₀ y₁ y₂ : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} {e'₀₁ : SSet.Truncated.Edge y₀ y₁} {e'₁₂ : SSet.Truncated.Edge y₁ y₂} {e'₀₂ : SSet.Truncated.Edge y₀ y₂} (hy : e'₀₁.CompStruct e'₁₂ e'₀₂) : (hx.tensor hy).simplex.2 = hy.simplex - SSet.Truncated.HomotopyCategory.BinaryProduct.inverse_map_mkHom_homMk_id 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y : SSet.Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e : SSet.Truncated.Edge x₀ x₁) (y : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })) : (SSet.Truncated.HomotopyCategory.BinaryProduct.inverse X Y).map (CategoryTheory.Prod.mkHom (SSet.Truncated.HomotopyCategory.homMk e) (CategoryTheory.CategoryStruct.id (SSet.Truncated.HomotopyCategory.mk y))) = SSet.Truncated.HomotopyCategory.homMk (e.tensor (SSet.Truncated.Edge.id y)) - SSet.Truncated.HomotopyCategory.BinaryProduct.inverse_map_mkHom_id_homMk 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y : SSet.Truncated 2} (x : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })) {y₀ y₁ : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e : SSet.Truncated.Edge y₀ y₁) : (SSet.Truncated.HomotopyCategory.BinaryProduct.inverse X Y).map (CategoryTheory.Prod.mkHom (CategoryTheory.CategoryStruct.id (SSet.Truncated.HomotopyCategory.mk x)) (SSet.Truncated.HomotopyCategory.homMk e)) = SSet.Truncated.HomotopyCategory.homMk ((SSet.Truncated.Edge.id x).tensor e) - SSet.Truncated.HomotopyCategory.BinaryProduct.inverse_map_mkHom_homMk_homMk 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y : SSet.Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e : SSet.Truncated.Edge x₀ x₁) {y₀ y₁ : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e' : SSet.Truncated.Edge y₀ y₁) : (SSet.Truncated.HomotopyCategory.BinaryProduct.inverse X Y).map (CategoryTheory.Prod.mkHom (SSet.Truncated.HomotopyCategory.homMk e) (SSet.Truncated.HomotopyCategory.homMk e')) = SSet.Truncated.HomotopyCategory.homMk (e.tensor e') - SSet.Truncated.HomotopyCategory.BinaryProduct.functor_map 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y : SSet.Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e : SSet.Truncated.Edge x₀ x₁) {y₀ y₁ : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e' : SSet.Truncated.Edge y₀ y₁) : (SSet.Truncated.HomotopyCategory.BinaryProduct.functor X Y).map (SSet.Truncated.HomotopyCategory.homMk (e.tensor e')) = (SSet.Truncated.HomotopyCategory.homMk e, SSet.Truncated.HomotopyCategory.homMk e') - SSet.Truncated.Edge.map_fst 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y : SSet.Truncated 2} {x x' : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₁ : SSet.Truncated.Edge x x') {y y' : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₂ : SSet.Truncated.Edge y y') : (e₁.tensor e₂).map (CategoryTheory.SemiCartesianMonoidalCategory.fst X Y) = e₁ - SSet.Truncated.Edge.map_snd 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y : SSet.Truncated 2} {x x' : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₁ : SSet.Truncated.Edge x x') {y y' : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₂ : SSet.Truncated.Edge y y') : (e₁.tensor e₂).map (CategoryTheory.SemiCartesianMonoidalCategory.snd X Y) = e₂ - SSet.Truncated.HomotopyCategory.BinaryProduct.square 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y : SSet.Truncated 2} {x₀ x₁ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (ex : SSet.Truncated.Edge x₀ x₁) {y₀ y₁ : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (ey : SSet.Truncated.Edge y₀ y₁) : CategoryTheory.CategoryStruct.comp (SSet.Truncated.HomotopyCategory.homMk (ex.tensor (SSet.Truncated.Edge.id y₀))) (SSet.Truncated.HomotopyCategory.homMk ((SSet.Truncated.Edge.id x₁).tensor ey)) = CategoryTheory.CategoryStruct.comp (SSet.Truncated.HomotopyCategory.homMk ((SSet.Truncated.Edge.id x₀).tensor ey)) (SSet.Truncated.HomotopyCategory.homMk (ex.tensor (SSet.Truncated.Edge.id y₁))) - SSet.Truncated.Edge.map_whiskerLeft 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y Y' : SSet.Truncated 2} {x x' : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₁ : SSet.Truncated.Edge x x') {y y' : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₂ : SSet.Truncated.Edge y y') (g : Y ⟶ Y') : (e₁.tensor e₂).map (CategoryTheory.MonoidalCategoryStruct.whiskerLeft X g) = e₁.tensor (e₂.map g) - SSet.Truncated.Edge.map_whiskerRight 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y X' : SSet.Truncated 2} {x x' : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₁ : SSet.Truncated.Edge x x') {y y' : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₂ : SSet.Truncated.Edge y y') (f : X ⟶ X') : (e₁.tensor e₂).map (CategoryTheory.MonoidalCategoryStruct.whiskerRight f Y) = (e₁.map f).tensor e₂ - SSet.Truncated.Edge.map_tensorHom 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y X' Y' : SSet.Truncated 2} {x x' : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₁ : SSet.Truncated.Edge x x') {y y' : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₂ : SSet.Truncated.Edge y y') (f : X ⟶ X') (g : Y ⟶ Y') : (e₁.tensor e₂).map (CategoryTheory.MonoidalCategoryStruct.tensorHom f g) = (e₁.map f).tensor (e₂.map g) - SSet.Truncated.Edge.map_associator_hom 📋 Mathlib.AlgebraicTopology.SimplicialSet.HoFunctorMonoidal
{X Y Z : SSet.Truncated 2} {x x' : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₁ : SSet.Truncated.Edge x x') {y y' : Y.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₂ : SSet.Truncated.Edge y y') {z z' : Z.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Edge.tensor._proof_1 })} (e₃ : SSet.Truncated.Edge z z') : ((e₁.tensor e₂).tensor e₃).map (CategoryTheory.MonoidalCategoryStruct.associator X Y Z).hom = e₁.tensor (e₂.tensor e₃) - SSet.Truncated.instSetoidEdge 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{A : SSet.Truncated 2} [A.Quasicategory₂] (x y : A.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })) : Setoid (SSet.Truncated.Edge x y) - SSet.Truncated.HomotopicL 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{X : SSet.Truncated 2} {x y : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} (f g : SSet.Truncated.Edge x y) : Prop - SSet.Truncated.HomotopicR 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{X : SSet.Truncated 2} {x y : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} (f g : SSet.Truncated.Edge x y) : Prop - SSet.Truncated.HomotopicL.refl 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{X : SSet.Truncated 2} {x y : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {f : SSet.Truncated.Edge x y} : SSet.Truncated.HomotopicL f f - SSet.Truncated.HomotopicR.refl 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{X : SSet.Truncated 2} {x y : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {f : SSet.Truncated.Edge x y} : SSet.Truncated.HomotopicR f f - SSet.Truncated.HomotopyCategory₂.homMk 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{A : SSet.Truncated 2} [A.Quasicategory₂] {x y : A.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} (f : SSet.Truncated.Edge x y) : { pt := x } ⟶ { pt := y } - SSet.Truncated.HomotopicL.homotopicR 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{X : SSet.Truncated 2} [X.Quasicategory₂] {x y : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {f g : SSet.Truncated.Edge x y} (h : SSet.Truncated.HomotopicL f g) : SSet.Truncated.HomotopicR f g - SSet.Truncated.HomotopicL.symm 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{X : SSet.Truncated 2} [X.Quasicategory₂] {x y : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {f g : SSet.Truncated.Edge x y} (hfg : SSet.Truncated.HomotopicL f g) : SSet.Truncated.HomotopicL g f - SSet.Truncated.HomotopicR.homotopicL 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{X : SSet.Truncated 2} [X.Quasicategory₂] {x y : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {f g : SSet.Truncated.Edge x y} (h : SSet.Truncated.HomotopicR f g) : SSet.Truncated.HomotopicL f g - SSet.Truncated.HomotopicR.symm 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{X : SSet.Truncated 2} [X.Quasicategory₂] {x y : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {f g : SSet.Truncated.Edge x y} (hfg : SSet.Truncated.HomotopicR f g) : SSet.Truncated.HomotopicR g f - SSet.Truncated.homotopicL_iff_homotopicR 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{X : SSet.Truncated 2} [X.Quasicategory₂] {x y : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {f g : SSet.Truncated.Edge x y} : SSet.Truncated.HomotopicL f g ↔ SSet.Truncated.HomotopicR f g - SSet.Truncated.HomotopyCategory₂.homMk_surjective 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{A : SSet.Truncated 2} [A.Quasicategory₂] {x y : A.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} : Function.Surjective SSet.Truncated.HomotopyCategory₂.homMk - SSet.Truncated.HomotopicL.trans 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{X : SSet.Truncated 2} [X.Quasicategory₂] {x y : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {f g h : SSet.Truncated.Edge x y} (hfg : SSet.Truncated.HomotopicL f g) (hgh : SSet.Truncated.HomotopicL g h) : SSet.Truncated.HomotopicL f h - SSet.Truncated.HomotopicR.trans 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{X : SSet.Truncated 2} [X.Quasicategory₂] {x y : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {f g h : SSet.Truncated.Edge x y} (hfg : SSet.Truncated.HomotopicR f g) (hgh : SSet.Truncated.HomotopicR g h) : SSet.Truncated.HomotopicR f h - SSet.Truncated.HomotopicL.congr_homotopyCategory₂HomMk 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{A : SSet.Truncated 2} [A.Quasicategory₂] {x y : A.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {f g : SSet.Truncated.Edge x y} (h : SSet.Truncated.HomotopicL f g) : SSet.Truncated.HomotopyCategory₂.homMk f = SSet.Truncated.HomotopyCategory₂.homMk g - SSet.Truncated.HomotopicR.congr_homotopyCategory₂HomMk 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{A : SSet.Truncated 2} [A.Quasicategory₂] {x y : A.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {f g : SSet.Truncated.Edge x y} (h : SSet.Truncated.HomotopicR f g) : SSet.Truncated.HomotopyCategory₂.homMk f = SSet.Truncated.HomotopyCategory₂.homMk g - SSet.Truncated.Edge.comp 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{A : SSet.Truncated 2} [A.Quasicategory₂] {x y z : A.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} (f : SSet.Truncated.Edge x y) (g : SSet.Truncated.Edge y z) : SSet.Truncated.Edge x z - SSet.Truncated.Edge.compStruct 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{A : SSet.Truncated 2} [A.Quasicategory₂] {x y z : A.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} (f : SSet.Truncated.Edge x y) (g : SSet.Truncated.Edge y z) : f.CompStruct g (f.comp g) - SSet.Truncated.Quasicategory₂.fill21 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{X : SSet.Truncated 2} [self : X.Quasicategory₂] {x₀ x₁ x₂ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} (e₀₁ : SSet.Truncated.Edge x₀ x₁) (e₁₂ : SSet.Truncated.Edge x₁ x₂) : Nonempty ((e₀₂ : SSet.Truncated.Edge x₀ x₂) × e₀₁.CompStruct e₁₂ e₀₂) - SSet.Truncated.Edge.CompStruct.comp_unique 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{A : SSet.Truncated 2} [A.Quasicategory₂] {x y z : A.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {f f' : SSet.Truncated.Edge x y} {g g' : SSet.Truncated.Edge y z} {h h' : SSet.Truncated.Edge x z} (s : f.CompStruct g h) (s' : f'.CompStruct g' h') (hf : SSet.Truncated.HomotopicL f f') (hg : SSet.Truncated.HomotopicL g g') : SSet.Truncated.HomotopicL h h' - SSet.Truncated.Edge.CompStruct.homotopyCategory₂_fac 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{A : SSet.Truncated 2} [A.Quasicategory₂] {x y z : A.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {f : SSet.Truncated.Edge x y} {g : SSet.Truncated.Edge y z} {h : SSet.Truncated.Edge x z} (s : f.CompStruct g h) : CategoryTheory.CategoryStruct.comp (SSet.Truncated.HomotopyCategory₂.homMk f) (SSet.Truncated.HomotopyCategory₂.homMk g) = SSet.Truncated.HomotopyCategory₂.homMk h - SSet.Truncated.Edge.CompStruct.ofHomotopyCategory₂Fac 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{A : SSet.Truncated 2} [A.Quasicategory₂] {x y z : A.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {f : SSet.Truncated.Edge x y} {g : SSet.Truncated.Edge y z} {h : SSet.Truncated.Edge x z} (fac : CategoryTheory.CategoryStruct.comp (SSet.Truncated.HomotopyCategory₂.homMk f) (SSet.Truncated.HomotopyCategory₂.homMk g) = SSet.Truncated.HomotopyCategory₂.homMk h) : f.CompStruct g h - SSet.Truncated.Edge.CompStruct.nonempty_iff 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{A : SSet.Truncated 2} [A.Quasicategory₂] {x y z : A.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {f : SSet.Truncated.Edge x y} {g : SSet.Truncated.Edge y z} {h : SSet.Truncated.Edge x z} : Nonempty (f.CompStruct g h) ↔ CategoryTheory.CategoryStruct.comp (SSet.Truncated.HomotopyCategory₂.homMk f) (SSet.Truncated.HomotopyCategory₂.homMk g) = SSet.Truncated.HomotopyCategory₂.homMk h - SSet.Truncated.Quasicategory₂.fill31 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{X : SSet.Truncated 2} [self : X.Quasicategory₂] {x₀ x₁ x₂ x₃ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₂₃ : SSet.Truncated.Edge x₂ x₃} {e₀₂ : SSet.Truncated.Edge x₀ x₂} {e₁₃ : SSet.Truncated.Edge x₁ x₃} {e₀₃ : SSet.Truncated.Edge x₀ x₃} (f₃ : e₀₁.CompStruct e₁₂ e₀₂) (f₀ : e₁₂.CompStruct e₂₃ e₁₃) (f₂ : e₀₁.CompStruct e₁₃ e₀₃) : Nonempty (e₀₂.CompStruct e₂₃ e₀₃) - SSet.Truncated.Quasicategory₂.fill32 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{X : SSet.Truncated 2} [self : X.Quasicategory₂] {x₀ x₁ x₂ x₃ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₂₃ : SSet.Truncated.Edge x₂ x₃} {e₀₂ : SSet.Truncated.Edge x₀ x₂} {e₁₃ : SSet.Truncated.Edge x₁ x₃} {e₀₃ : SSet.Truncated.Edge x₀ x₃} (f₃ : e₀₁.CompStruct e₁₂ e₀₂) (f₀ : e₁₂.CompStruct e₂₃ e₁₃) (f₁ : e₀₂.CompStruct e₂₃ e₀₃) : Nonempty (e₀₁.CompStruct e₁₃ e₀₃) - SSet.Truncated.Quasicategory₂.mk 📋 Mathlib.AlgebraicTopology.Quasicategory.TwoTruncated
{X : SSet.Truncated 2} (fill21 : ∀ {x₀ x₁ x₂ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} (e₀₁ : SSet.Truncated.Edge x₀ x₁) (e₁₂ : SSet.Truncated.Edge x₁ x₂), Nonempty ((e₀₂ : SSet.Truncated.Edge x₀ x₂) × e₀₁.CompStruct e₁₂ e₀₂)) (fill31 : ∀ {x₀ x₁ x₂ x₃ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₂₃ : SSet.Truncated.Edge x₂ x₃} {e₀₂ : SSet.Truncated.Edge x₀ x₂} {e₁₃ : SSet.Truncated.Edge x₁ x₃} {e₀₃ : SSet.Truncated.Edge x₀ x₃} (f₃ : e₀₁.CompStruct e₁₂ e₀₂) (f₀ : e₁₂.CompStruct e₂₃ e₁₃) (f₂ : e₀₁.CompStruct e₁₃ e₀₃), Nonempty (e₀₂.CompStruct e₂₃ e₀₃)) (fill32 : ∀ {x₀ x₁ x₂ x₃ : X.obj (Opposite.op { obj := { len := 0 }, property := SSet.Truncated.Quasicategory₂._proof_1 })} {e₀₁ : SSet.Truncated.Edge x₀ x₁} {e₁₂ : SSet.Truncated.Edge x₁ x₂} {e₂₃ : SSet.Truncated.Edge x₂ x₃} {e₀₂ : SSet.Truncated.Edge x₀ x₂} {e₁₃ : SSet.Truncated.Edge x₁ x₃} {e₀₃ : SSet.Truncated.Edge x₀ x₃} (f₃ : e₀₁.CompStruct e₁₂ e₀₂) (f₀ : e₁₂.CompStruct e₂₃ e₁₃) (f₁ : e₀₂.CompStruct e₂₃ e₀₃), Nonempty (e₀₁.CompStruct e₁₃ e₀₃)) : X.Quasicategory₂ - SSet.Truncated.HomotopyCategory.homToNerveMk_app_edge 📋 Mathlib.AlgebraicTopology.SimplicialSet.NerveAdjunction
{X : SSet.Truncated 2} {C : Type u} [CategoryTheory.SmallCategory C] (F : CategoryTheory.Functor X.HomotopyCategory C) {x y : X.obj (Opposite.op { obj := { len := 0 }, property := _proof_12✝ })} (e : SSet.Truncated.Edge x y) : (CategoryTheory.ConcreteCategory.hom ((SSet.Truncated.HomotopyCategory.homToNerveMk F).app (Opposite.op { obj := { len := 1 }, property := SSet.Truncated.Edge._proof_2 }))) e.edge = CategoryTheory.ComposableArrows.mk₁ (F.map (SSet.Truncated.HomotopyCategory.homMk e)) - SSet.Truncated.HomotopyCategory.descOfTruncation_map_homMk 📋 Mathlib.AlgebraicTopology.SimplicialSet.NerveAdjunction
{X : SSet.Truncated 2} {C : Type u} [CategoryTheory.SmallCategory C] (φ : X ⟶ (SSet.truncation 2).obj (CategoryTheory.nerve C)) {x₀ x₁ : X.obj (Opposite.op { obj := { len := 0 }, property := _proof_12✝ })} (e : SSet.Truncated.Edge x₀ x₁) : (SSet.Truncated.HomotopyCategory.descOfTruncation φ).map (SSet.Truncated.HomotopyCategory.homMk e) = CategoryTheory.nerve.homEquiv (e.map φ)
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