Loogle!
Result
Found 37 declarations mentioning SSet.Truncated.HomotopyCategory.mk.
- SSet.Truncated.HomotopyCategory.mk 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} (x : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })) : V.HomotopyCategory - SSet.Truncated.HomotopyCategory.mk_surjective 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} : Function.Surjective SSet.Truncated.HomotopyCategory.mk - SSet.Truncated.HomotopyCategory.cases_on 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} {motive : V.HomotopyCategory → Prop} (h : ∀ (x : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })), motive (SSet.Truncated.HomotopyCategory.mk x)) (x : V.HomotopyCategory) : motive x - SSet.Truncated.HomotopyCategory.homMk_id 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V : SSet.Truncated 2} (x : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })) : SSet.Truncated.HomotopyCategory.homMk (SSet.Truncated.Edge.id x) = CategoryTheory.CategoryStruct.id (SSet.Truncated.HomotopyCategory.mk 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.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.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.mapHomotopyCategory_obj 📋 Mathlib.AlgebraicTopology.SimplicialSet.HomotopyCat
{V W : SSet.Truncated 2} (f : V ⟶ W) (x : V.obj (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 })) : (SSet.Truncated.mapHomotopyCategory f).obj (SSet.Truncated.HomotopyCategory.mk x) = SSet.Truncated.HomotopyCategory.mk ((CategoryTheory.ConcreteCategory.hom (f.app (Opposite.op { obj := { len := 0 }, property := SSet.OneTruncation₂._proof_1 }))) x) - 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.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.HomotopyCategory.BinaryProduct.functor_obj 📋 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.HomotopyCategory.BinaryProduct.functor X Y).obj (SSet.Truncated.HomotopyCategory.mk (x, y)) = (SSet.Truncated.HomotopyCategory.mk x, SSet.Truncated.HomotopyCategory.mk y) - SSet.Truncated.HomotopyCategory.BinaryProduct.inverse_obj 📋 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.HomotopyCategory.BinaryProduct.inverse X Y).obj (SSet.Truncated.HomotopyCategory.mk x, SSet.Truncated.HomotopyCategory.mk y) = SSet.Truncated.HomotopyCategory.mk (x, y) - SSet.Truncated.HomotopyCategory.BinaryProduct.inverseCompFunctorIso_inv_app 📋 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.HomotopyCategory.BinaryProduct.inverseCompFunctorIso X Y).inv.app (SSet.Truncated.HomotopyCategory.mk x, SSet.Truncated.HomotopyCategory.mk y) = CategoryTheory.CategoryStruct.id ((CategoryTheory.Functor.id (X.HomotopyCategory × Y.HomotopyCategory)).obj (SSet.Truncated.HomotopyCategory.mk x, SSet.Truncated.HomotopyCategory.mk y)) - SSet.Truncated.HomotopyCategory.BinaryProduct.inverseCompFunctorIso_hom_app 📋 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.HomotopyCategory.BinaryProduct.inverseCompFunctorIso X Y).hom.app (SSet.Truncated.HomotopyCategory.mk x, SSet.Truncated.HomotopyCategory.mk y) = CategoryTheory.CategoryStruct.id (((SSet.Truncated.HomotopyCategory.BinaryProduct.inverse X Y).comp (SSet.Truncated.HomotopyCategory.BinaryProduct.functor X Y)).obj (SSet.Truncated.HomotopyCategory.mk x, SSet.Truncated.HomotopyCategory.mk y)) - 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.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.HomotopyCategory.BinaryProduct.functorCompInverseIso_inv_app 📋 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.HomotopyCategory.BinaryProduct.functorCompInverseIso X Y).inv.app (SSet.Truncated.HomotopyCategory.mk (x, y)) = CategoryTheory.CategoryStruct.id ((CategoryTheory.Functor.id (CategoryTheory.MonoidalCategoryStruct.tensorObj X Y).HomotopyCategory).obj (SSet.Truncated.HomotopyCategory.mk (x, y))) - SSet.Truncated.HomotopyCategory.BinaryProduct.functorCompInverseIso_hom_app 📋 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.HomotopyCategory.BinaryProduct.functorCompInverseIso X Y).hom.app (SSet.Truncated.HomotopyCategory.mk (x, y)) = CategoryTheory.CategoryStruct.id (((SSet.Truncated.HomotopyCategory.BinaryProduct.functor X Y).comp (SSet.Truncated.HomotopyCategory.BinaryProduct.inverse X Y)).obj (SSet.Truncated.HomotopyCategory.mk (x, y))) - SSet.Truncated.HomotopyCategory.descOfTruncation_obj_mk 📋 Mathlib.AlgebraicTopology.SimplicialSet.NerveAdjunction
{X : SSet.Truncated 2} {C : Type u} [CategoryTheory.SmallCategory C] (φ : X ⟶ (SSet.truncation 2).obj (CategoryTheory.nerve C)) (x : X.obj (Opposite.op { obj := { len := 0 }, property := _proof_12✝ })) : (SSet.Truncated.HomotopyCategory.descOfTruncation φ).obj (SSet.Truncated.HomotopyCategory.mk x) = CategoryTheory.nerveEquiv ((CategoryTheory.ConcreteCategory.hom (φ.app (Opposite.op { obj := { len := 0 }, property := _proof_12✝ }))) x) - SSet.Truncated.HomotopyCategory.homToNerveMk_app_zero 📋 Mathlib.AlgebraicTopology.SimplicialSet.NerveAdjunction
{X : SSet.Truncated 2} {C : Type u} [CategoryTheory.SmallCategory C] (F : CategoryTheory.Functor X.HomotopyCategory C) (x : X.obj (Opposite.op { obj := { len := 0 }, property := _proof_12✝ })) : (CategoryTheory.ConcreteCategory.hom ((SSet.Truncated.HomotopyCategory.homToNerveMk F).app (Opposite.op { obj := { len := 0 }, property := _proof_12✝ }))) x = CategoryTheory.nerveEquiv.symm (F.obj (SSet.Truncated.HomotopyCategory.mk x)) - 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.homToNerveMk_app_one 📋 Mathlib.AlgebraicTopology.SimplicialSet.NerveAdjunction
{X : SSet.Truncated 2} {C : Type u} [CategoryTheory.SmallCategory C] (F : CategoryTheory.Functor X.HomotopyCategory C) (f : X.obj (Opposite.op { obj := { len := 1 }, property := _proof_13✝ })) : (CategoryTheory.ConcreteCategory.hom ((SSet.Truncated.HomotopyCategory.homToNerveMk F).app (Opposite.op { obj := { len := 1 }, property := _proof_13✝ }))) f = CategoryTheory.ComposableArrows.mk₁ (F.map (SSet.Truncated.HomotopyCategory.homMk (SSet.Truncated.Edge.mk' f))) - 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