Loogle!
Result
Found 13 declarations mentioning CategoryTheory.Limits.pushout.map.
- CategoryTheory.Limits.pushout.map_id 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {f : X ⟶ Y} {g : X ⟶ Z} [CategoryTheory.Limits.HasPushout f g] : CategoryTheory.Limits.pushout.map f g f g (CategoryTheory.CategoryStruct.id Y) (CategoryTheory.CategoryStruct.id Z) (CategoryTheory.CategoryStruct.id X) ⋯ ⋯ = CategoryTheory.CategoryStruct.id (CategoryTheory.Limits.pushout f g) - CategoryTheory.Limits.pushout.map 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z S T : C} (f₁ : S ⟶ W) (f₂ : S ⟶ X) [CategoryTheory.Limits.HasPushout f₁ f₂] (g₁ : T ⟶ Y) (g₂ : T ⟶ Z) [CategoryTheory.Limits.HasPushout g₁ g₂] (i₁ : W ⟶ Y) (i₂ : X ⟶ Z) (i₃ : S ⟶ T) (eq₁ : CategoryTheory.CategoryStruct.comp f₁ i₁ = CategoryTheory.CategoryStruct.comp i₃ g₁) (eq₂ : CategoryTheory.CategoryStruct.comp f₂ i₂ = CategoryTheory.CategoryStruct.comp i₃ g₂) : CategoryTheory.Limits.pushout f₁ f₂ ⟶ CategoryTheory.Limits.pushout g₁ g₂ - CategoryTheory.Limits.pushout.congrHom_hom 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {f₁ f₂ : X ⟶ Y} {g₁ g₂ : X ⟶ Z} (h₁ : f₁ = f₂) (h₂ : g₁ = g₂) [CategoryTheory.Limits.HasPushout f₁ g₁] [CategoryTheory.Limits.HasPushout f₂ g₂] : (CategoryTheory.Limits.pushout.congrHom h₁ h₂).hom = CategoryTheory.Limits.pushout.map f₁ g₁ f₂ g₂ (CategoryTheory.CategoryStruct.id Y) (CategoryTheory.CategoryStruct.id Z) (CategoryTheory.CategoryStruct.id X) ⋯ ⋯ - CategoryTheory.Limits.pushout.congrHom_inv 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {f₁ f₂ : X ⟶ Y} {g₁ g₂ : X ⟶ Z} (h₁ : f₁ = f₂) (h₂ : g₁ = g₂) [CategoryTheory.Limits.HasPushout f₁ g₁] [CategoryTheory.Limits.HasPushout f₂ g₂] : (CategoryTheory.Limits.pushout.congrHom h₁ h₂).inv = CategoryTheory.Limits.pushout.map f₂ g₂ f₁ g₁ (CategoryTheory.CategoryStruct.id Y) (CategoryTheory.CategoryStruct.id Z) (CategoryTheory.CategoryStruct.id X) ⋯ ⋯ - CategoryTheory.Limits.pushout.map_isIso 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z S T : C} (f₁ : S ⟶ W) (f₂ : S ⟶ X) [CategoryTheory.Limits.HasPushout f₁ f₂] (g₁ : T ⟶ Y) (g₂ : T ⟶ Z) [CategoryTheory.Limits.HasPushout g₁ g₂] (i₁ : W ⟶ Y) (i₂ : X ⟶ Z) (i₃ : S ⟶ T) (eq₁ : CategoryTheory.CategoryStruct.comp f₁ i₁ = CategoryTheory.CategoryStruct.comp i₃ g₁) (eq₂ : CategoryTheory.CategoryStruct.comp f₂ i₂ = CategoryTheory.CategoryStruct.comp i₃ g₂) [CategoryTheory.IsIso i₁] [CategoryTheory.IsIso i₂] [CategoryTheory.IsIso i₃] : CategoryTheory.IsIso (CategoryTheory.Limits.pushout.map f₁ f₂ g₁ g₂ i₁ i₂ i₃ eq₁ eq₂) - CategoryTheory.Limits.pushout.map_comp 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z X' Y' Z' X'' Y'' Z'' : C} {f : X ⟶ Y} {g : X ⟶ Z} {f' : X' ⟶ Y'} {g' : X' ⟶ Z'} {f'' : X'' ⟶ Y''} {g'' : X'' ⟶ Z''} (i₁ : X ⟶ X') (j₁ : X' ⟶ X'') (i₂ : Y ⟶ Y') (j₂ : Y' ⟶ Y'') (i₃ : Z ⟶ Z') (j₃ : Z' ⟶ Z'') [CategoryTheory.Limits.HasPushout f g] [CategoryTheory.Limits.HasPushout f' g'] [CategoryTheory.Limits.HasPushout f'' g''] (e₁ : CategoryTheory.CategoryStruct.comp f i₂ = CategoryTheory.CategoryStruct.comp i₁ f') (e₂ : CategoryTheory.CategoryStruct.comp g i₃ = CategoryTheory.CategoryStruct.comp i₁ g') (e₃ : CategoryTheory.CategoryStruct.comp f' j₂ = CategoryTheory.CategoryStruct.comp j₁ f'') (e₄ : CategoryTheory.CategoryStruct.comp g' j₃ = CategoryTheory.CategoryStruct.comp j₁ g'') : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.map f g f' g' i₂ i₃ i₁ e₁ e₂) (CategoryTheory.Limits.pushout.map f' g' f'' g'' j₂ j₃ j₁ e₃ e₄) = CategoryTheory.Limits.pushout.map f g f'' g'' (CategoryTheory.CategoryStruct.comp i₂ j₂) (CategoryTheory.CategoryStruct.comp i₃ j₃) (CategoryTheory.CategoryStruct.comp i₁ j₁) ⋯ ⋯ - CategoryTheory.Limits.pushout.map_comp_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z X' Y' Z' X'' Y'' Z'' : C} {f : X ⟶ Y} {g : X ⟶ Z} {f' : X' ⟶ Y'} {g' : X' ⟶ Z'} {f'' : X'' ⟶ Y''} {g'' : X'' ⟶ Z''} (i₁ : X ⟶ X') (j₁ : X' ⟶ X'') (i₂ : Y ⟶ Y') (j₂ : Y' ⟶ Y'') (i₃ : Z ⟶ Z') (j₃ : Z' ⟶ Z'') [CategoryTheory.Limits.HasPushout f g] [CategoryTheory.Limits.HasPushout f' g'] [CategoryTheory.Limits.HasPushout f'' g''] (e₁ : CategoryTheory.CategoryStruct.comp f i₂ = CategoryTheory.CategoryStruct.comp i₁ f') (e₂ : CategoryTheory.CategoryStruct.comp g i₃ = CategoryTheory.CategoryStruct.comp i₁ g') (e₃ : CategoryTheory.CategoryStruct.comp f' j₂ = CategoryTheory.CategoryStruct.comp j₁ f'') (e₄ : CategoryTheory.CategoryStruct.comp g' j₃ = CategoryTheory.CategoryStruct.comp j₁ g'') {Z✝ : C} (h : CategoryTheory.Limits.pushout f'' g'' ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.map f g f' g' i₂ i₃ i₁ e₁ e₂) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.map f' g' f'' g'' j₂ j₃ j₁ e₃ e₄) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.map f g f'' g'' (CategoryTheory.CategoryStruct.comp i₂ j₂) (CategoryTheory.CategoryStruct.comp i₃ j₃) (CategoryTheory.CategoryStruct.comp i₁ j₁) ⋯ ⋯) h - CategoryTheory.Limits.op_pullbackMap 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {W X Y Z S T : C} (f₁ : W ⟶ S) (f₂ : X ⟶ S) [CategoryTheory.Limits.HasPullback f₁ f₂] (g₁ : Y ⟶ T) (g₂ : Z ⟶ T) [CategoryTheory.Limits.HasPullback g₁ g₂] (i₁ : W ⟶ Y) (i₂ : X ⟶ Z) (i₃ : S ⟶ T) (eq₁ : CategoryTheory.CategoryStruct.comp f₁ i₃ = CategoryTheory.CategoryStruct.comp i₁ g₁) (eq₂ : CategoryTheory.CategoryStruct.comp f₂ i₃ = CategoryTheory.CategoryStruct.comp i₂ g₂) : (CategoryTheory.Limits.pullback.map f₁ f₂ g₁ g₂ i₁ i₂ i₃ eq₁ eq₂).op = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushoutIsoOpPullback g₁.op g₂.op).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.map g₁.op g₂.op f₁.op f₂.op i₁.op i₂.op i₃.op ⋯ ⋯) (CategoryTheory.Limits.pushoutIsoOpPullback f₁.op f₂.op).hom) - CategoryTheory.Limits.op_pushoutMap 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {W X Y Z S T : C} (f₁ : S ⟶ W) (f₂ : S ⟶ X) [CategoryTheory.Limits.HasPushout f₁ f₂] (g₁ : T ⟶ Y) (g₂ : T ⟶ Z) [CategoryTheory.Limits.HasPushout g₁ g₂] (i₁ : W ⟶ Y) (i₂ : X ⟶ Z) (i₃ : S ⟶ T) (eq₁ : CategoryTheory.CategoryStruct.comp f₁ i₁ = CategoryTheory.CategoryStruct.comp i₃ g₁) (eq₂ : CategoryTheory.CategoryStruct.comp f₂ i₂ = CategoryTheory.CategoryStruct.comp i₃ g₂) : (CategoryTheory.Limits.pushout.map f₁ f₂ g₁ g₂ i₁ i₂ i₃ eq₁ eq₂).op = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackIsoOpPushout g₁.op g₂.op).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.map g₁.op g₂.op f₁.op f₂.op i₁.op i₂.op i₃.op ⋯ ⋯) (CategoryTheory.Limits.pullbackIsoOpPushout f₁.op f₂.op).hom) - CategoryTheory.Limits.isPushout_map_codiagonal 📋 Mathlib.CategoryTheory.Limits.Shapes.Diagonal
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y : C} [CategoryTheory.Limits.HasPushouts C] {S T : C} (f : T ⟶ X) (g : T ⟶ Y) (i : S ⟶ T) : CategoryTheory.IsPushout (CategoryTheory.Limits.pushout.map i i (CategoryTheory.CategoryStruct.comp i f) (CategoryTheory.CategoryStruct.comp i g) f g (CategoryTheory.CategoryStruct.id S) ⋯ ⋯) (CategoryTheory.Limits.pushout.codiagonal i) (CategoryTheory.Limits.pushout.map (CategoryTheory.CategoryStruct.comp i f) (CategoryTheory.CategoryStruct.comp i g) f g (CategoryTheory.CategoryStruct.id X) (CategoryTheory.CategoryStruct.id Y) i ⋯ ⋯) (CategoryTheory.CategoryStruct.comp f (CategoryTheory.Limits.pushout.inl f g)) - CategoryTheory.MorphismProperty.pushoutMap 📋 Mathlib.CategoryTheory.MorphismProperty.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {P : CategoryTheory.MorphismProperty C} [P.IsStableUnderCobaseChange] [P.IsStableUnderComposition] {S X X' Y Y' : C} {f : S ⟶ X} {g : S ⟶ Y} {f' : S ⟶ X'} {g' : S ⟶ Y'} {i₁ : X ⟶ X'} [CategoryTheory.Limits.HasPushoutsAlong f] [CategoryTheory.Limits.HasPushoutsAlong g'] {i₂ : Y ⟶ Y'} (h₁ : P i₁) (h₂ : P i₂) (e₁ : f' = CategoryTheory.CategoryStruct.comp f i₁) (e₂ : g' = CategoryTheory.CategoryStruct.comp g i₂) : P (CategoryTheory.Limits.pushout.map f g f' g' i₁ i₂ (CategoryTheory.CategoryStruct.id S) ⋯ ⋯) - CategoryTheory.MorphismProperty.Under.pushoutComp_hom_app_right 📋 Mathlib.CategoryTheory.MorphismProperty.OverAdjunction
{T : Type u_1} [CategoryTheory.Category.{v_1, u_1} T] {P Q : CategoryTheory.MorphismProperty T} [Q.IsMultiplicative] {X Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) [P.IsStableUnderCobaseChangeAlong f] [P.IsStableUnderCobaseChangeAlong g] [P.HasPushoutsAlong f] [P.HasPushoutsAlong g] [Q.RespectsIso] [Q.IsStableUnderCobaseChange] (fg : X ⟶ Z := CategoryTheory.CategoryStruct.comp f g) (hfg : fg = CategoryTheory.CategoryStruct.comp f g := by cat_disch) (X✝ : P.Under Q X) : ((CategoryTheory.MorphismProperty.Under.pushoutComp f g fg hfg).hom.app X✝).right = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.map X✝.hom fg X✝.hom (CategoryTheory.CategoryStruct.comp f g) (CategoryTheory.CategoryStruct.id X✝.right) (CategoryTheory.CategoryStruct.id Z) (CategoryTheory.CategoryStruct.id X) ⋯ ⋯) (CategoryTheory.Limits.pushoutLeftPushoutInrIso X✝.hom f g).inv - CategoryTheory.MorphismProperty.Under.pushoutComp_inv_app_right 📋 Mathlib.CategoryTheory.MorphismProperty.OverAdjunction
{T : Type u_1} [CategoryTheory.Category.{v_1, u_1} T] {P Q : CategoryTheory.MorphismProperty T} [Q.IsMultiplicative] {X Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) [P.IsStableUnderCobaseChangeAlong f] [P.IsStableUnderCobaseChangeAlong g] [P.HasPushoutsAlong f] [P.HasPushoutsAlong g] [Q.RespectsIso] [Q.IsStableUnderCobaseChange] (fg : X ⟶ Z := CategoryTheory.CategoryStruct.comp f g) (hfg : fg = CategoryTheory.CategoryStruct.comp f g := by cat_disch) (X✝ : P.Under Q X) : ((CategoryTheory.MorphismProperty.Under.pushoutComp f g fg hfg).inv.app X✝).right = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushoutLeftPushoutInrIso X✝.hom f g).hom (CategoryTheory.Limits.pushout.map X✝.hom (CategoryTheory.CategoryStruct.comp f g) X✝.hom fg (CategoryTheory.CategoryStruct.id X✝.right) (CategoryTheory.CategoryStruct.id Z) (CategoryTheory.CategoryStruct.id X) ⋯ ⋯)
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using (by default) Ctrl-K Ctrl-S. 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 88c39f3 serving mathlib revision 9977002