Loogle!
Result
Found 423 declarations mentioning MonoidHom.comp. Of these, only the first 200 are shown.
- MonoidHom.comp π Mathlib.Algebra.Group.Hom.Defs
{M : Type u_4} {N : Type u_5} {P : Type u_6} [MulOne M] [MulOne N] [MulOne P] (hnp : N β* P) (hmn : M β* N) : M β* P - MonoidHom.comp_id π Mathlib.Algebra.Group.Hom.Defs
{M : Type u_4} {N : Type u_5} [MulOne M] [MulOne N] (f : M β* N) : f.comp (MonoidHom.id M) = f - MonoidHom.id_comp π Mathlib.Algebra.Group.Hom.Defs
{M : Type u_4} {N : Type u_5} [MulOne M] [MulOne N] (f : M β* N) : (MonoidHom.id N).comp f = f - MonoidHom.comp_assoc π Mathlib.Algebra.Group.Hom.Defs
{M : Type u_4} {N : Type u_5} {P : Type u_6} {Q : Type u_10} [MulOne M] [MulOne N] [MulOne P] [MulOne Q] (f : M β* N) (g : N β* P) (h : P β* Q) : (h.comp g).comp f = h.comp (g.comp f) - MonoidHom.cancel_left π Mathlib.Algebra.Group.Hom.Defs
{M : Type u_4} {N : Type u_5} {P : Type u_6} [MulOne M] [MulOne N] [MulOne P] {g : N β* P} {fβ fβ : M β* N} (hg : Function.Injective βg) : g.comp fβ = g.comp fβ β fβ = fβ - MonoidHom.cancel_right π Mathlib.Algebra.Group.Hom.Defs
{M : Type u_4} {N : Type u_5} {P : Type u_6} [MulOne M] [MulOne N] [MulOne P] {gβ gβ : N β* P} {f : M β* N} (hf : Function.Surjective βf) : gβ.comp f = gβ.comp f β gβ = gβ - MonoidHom.one_comp π Mathlib.Algebra.Group.Hom.Defs
{M : Type u_4} {N : Type u_5} {P : Type u_6} [MulOne M] [MulOne N] [MulOneClass P] (f : M β* N) : MonoidHom.comp 1 f = 1 - MonoidHom.comp_apply π Mathlib.Algebra.Group.Hom.Defs
{M : Type u_4} {N : Type u_5} {P : Type u_6} [MulOne M] [MulOne N] [MulOne P] (g : N β* P) (f : M β* N) (x : M) : (g.comp f) x = g (f x) - MonoidHom.coe_comp π Mathlib.Algebra.Group.Hom.Defs
{M : Type u_4} {N : Type u_5} {P : Type u_6} [MulOne M] [MulOne N] [MulOne P] (g : N β* P) (f : M β* N) : β(g.comp f) = βg β βf - MonoidHom.comp_one π Mathlib.Algebra.Group.Hom.Defs
{M : Type u_4} {N : Type u_5} {P : Type u_6} [MulOne M] [MulOneClass N] [MulOneClass P] (f : N β* P) : f.comp 1 = 1 - MonoidHom.toMulEquiv π Mathlib.Algebra.Group.Equiv.Defs
{M : Type u_4} {N : Type u_5} [MulOneClass M] [MulOneClass N] (f : M β* N) (g : N β* M) (hβ : g.comp f = MonoidHom.id M) (hβ : f.comp g = MonoidHom.id N) : M β* N - MulEquiv.comp_left_injective π Mathlib.Algebra.Group.Equiv.Defs
{M : Type u_4} {N : Type u_5} {P : Type u_6} [MulOneClass M] [MulOneClass N] [MulOneClass P] (e : M β* N) : Function.Injective fun f => f.comp βe - MulEquiv.comp_right_injective π Mathlib.Algebra.Group.Equiv.Defs
{M : Type u_4} {N : Type u_5} {P : Type u_6} [MulOneClass M] [MulOneClass N] [MulOneClass P] (e : M β* N) : Function.Injective fun f => (βe).comp f - MonoidHom.toMulEquiv_apply π Mathlib.Algebra.Group.Equiv.Defs
{M : Type u_4} {N : Type u_5} [MulOneClass M] [MulOneClass N] (f : M β* N) (g : N β* M) (hβ : g.comp f = MonoidHom.id M) (hβ : f.comp g = MonoidHom.id N) : β(f.toMulEquiv g hβ hβ) = βf - MonoidHom.toMulEquiv_symm_apply π Mathlib.Algebra.Group.Equiv.Defs
{M : Type u_4} {N : Type u_5} [MulOneClass M] [MulOneClass N] (f : M β* N) (g : N β* M) (hβ : g.comp f = MonoidHom.id M) (hβ : f.comp g = MonoidHom.id N) : β(f.toMulEquiv g hβ hβ).symm = βg - MulEquiv.coe_monoidHom_comp_coe_monoidHom_symm π Mathlib.Algebra.Group.Equiv.Defs
{M : Type u_4} {N : Type u_5} [MulOneClass M] [MulOneClass N] (e : M β* N) : (βe).comp βe.symm = MonoidHom.id N - MulEquiv.coe_monoidHom_symm_comp_coe_monoidHom π Mathlib.Algebra.Group.Equiv.Defs
{M : Type u_4} {N : Type u_5} [MulOneClass M] [MulOneClass N] (e : M β* N) : (βe.symm).comp βe = MonoidHom.id M - MulEquiv.coe_monoidHom_trans π Mathlib.Algebra.Group.Equiv.Defs
{M : Type u_4} {N : Type u_5} {P : Type u_6} [MulOneClass M] [MulOneClass N] [MulOneClass P] (eβ : M β* N) (eβ : N β* P) : β(eβ.trans eβ) = (βeβ).comp βeβ - invMonoidHom_comp_invMonoidHom π Mathlib.Algebra.Group.Hom.Basic
{Ξ± : Type u_1} [DivisionCommMonoid Ξ±] : invMonoidHom.comp invMonoidHom = MonoidHom.id Ξ± - MonoidHom.inv_comp π Mathlib.Algebra.Group.Hom.Basic
{M : Type u_2} {N : Type u_3} {G : Type u_5} [MulOneClass M] [MulOneClass N] [CommGroup G] (Ο : N β* G) (Ο : M β* N) : Οβ»ΒΉ.comp Ο = (Ο.comp Ο)β»ΒΉ - MonoidHom.comp_inv π Mathlib.Algebra.Group.Hom.Basic
{M : Type u_2} {G : Type u_5} {H : Type u_6} [MulOneClass M] [CommGroup G] [CommGroup H] (Ο : G β* H) (Ο : M β* G) : Ο.comp Οβ»ΒΉ = (Ο.comp Ο)β»ΒΉ - MonoidHom.mul_comp π Mathlib.Algebra.Group.Hom.Basic
{M : Type u_2} {N : Type u_3} {P : Type u_4} [MulOneClass M] [CommMonoid N] [MulOneClass P] (gβ gβ : M β* N) (f : P β* M) : (gβ * gβ).comp f = gβ.comp f * gβ.comp f - MonoidHom.comp_mul π Mathlib.Algebra.Group.Hom.Basic
{M : Type u_2} {N : Type u_3} {P : Type u_4} [MulOneClass M] [CommMonoid N] [CommMonoid P] (g : N β* P) (fβ fβ : M β* N) : g.comp (fβ * fβ) = g.comp fβ * g.comp fβ - MonoidHom.div_comp π Mathlib.Algebra.Group.Hom.Basic
{M : Type u_2} {N : Type u_3} {G : Type u_5} [MulOneClass M] [MulOneClass N] [CommGroup G] (f g : N β* G) (h : M β* N) : (f / g).comp h = f.comp h / g.comp h - MonoidHom.comp_div π Mathlib.Algebra.Group.Hom.Basic
{M : Type u_2} {G : Type u_5} {H : Type u_6} [MulOneClass M] [CommGroup G] [CommGroup H] (f : G β* H) (g h : M β* G) : f.comp (g / h) = f.comp g / f.comp h - MonoidHom.isLocalHom_of_comp π Mathlib.Algebra.Group.Units.Hom
{R : Type u_2} {S : Type u_3} {T : Type u_4} [Monoid R] [Monoid S] [Monoid T] (f : R β* S) (g : S β* T) [IsLocalHom (g.comp f)] : IsLocalHom f - Units.map_comp π Mathlib.Algebra.Group.Units.Hom
{M : Type u} {N : Type v} {P : Type w} [Monoid M] [Monoid N] [Monoid P] (f : M β* N) (g : N β* P) : Units.map (g.comp f) = (Units.map g).comp (Units.map f) - MonoidHom.isLocalHom_comp π Mathlib.Algebra.Group.Units.Hom
{R : Type u_2} {S : Type u_3} {T : Type u_4} [Monoid R] [Monoid S] [Monoid T] (g : S β* T) (f : R β* S) [IsLocalHom g] [IsLocalHom f] : IsLocalHom (g.comp f) - MonoidHom.toHomUnitsMulEquiv_symm_apply π Mathlib.Algebra.Group.Units.Hom
{G : Type u_1} {M : Type u_2} [Group G] [CommMonoid M] (f : G β* MΛ£) : MonoidHom.toHomUnitsMulEquiv.symm f = (Units.coeHom M).comp f - MonoidHom.fst_comp_inl π Mathlib.Algebra.Group.Prod
{M : Type u_3} {N : Type u_4} [MulOneClass M] [MulOneClass N] : (MonoidHom.fst M N).comp (MonoidHom.inl M N) = MonoidHom.id M - MonoidHom.snd_comp_inr π Mathlib.Algebra.Group.Prod
{M : Type u_3} {N : Type u_4} [MulOneClass M] [MulOneClass N] : (MonoidHom.snd M N).comp (MonoidHom.inr M N) = MonoidHom.id N - MonoidHom.fst_comp_prod π Mathlib.Algebra.Group.Prod
{M : Type u_3} {N : Type u_4} {P : Type u_5} [MulOneClass M] [MulOneClass N] [MulOneClass P] (f : M β* N) (g : M β* P) : (MonoidHom.fst N P).comp (f.prod g) = f - MonoidHom.snd_comp_prod π Mathlib.Algebra.Group.Prod
{M : Type u_3} {N : Type u_4} {P : Type u_5} [MulOneClass M] [MulOneClass N] [MulOneClass P] (f : M β* N) (g : M β* P) : (MonoidHom.snd N P).comp (f.prod g) = g - MonoidHom.fst_comp_inr π Mathlib.Algebra.Group.Prod
{M : Type u_3} {N : Type u_4} [MulOneClass M] [MulOneClass N] : (MonoidHom.fst M N).comp (MonoidHom.inr M N) = 1 - MonoidHom.snd_comp_inl π Mathlib.Algebra.Group.Prod
{M : Type u_3} {N : Type u_4} [MulOneClass M] [MulOneClass N] : (MonoidHom.snd M N).comp (MonoidHom.inl M N) = 1 - MonoidHom.coprod_comp_inl π Mathlib.Algebra.Group.Prod
{M : Type u_3} {N : Type u_4} {P : Type u_5} [MulOneClass M] [MulOneClass N] [CommMonoid P] (f : M β* P) (g : N β* P) : (f.coprod g).comp (MonoidHom.inl M N) = f - MonoidHom.coprod_comp_inr π Mathlib.Algebra.Group.Prod
{M : Type u_3} {N : Type u_4} {P : Type u_5} [MulOneClass M] [MulOneClass N] [CommMonoid P] (f : M β* P) (g : N β* P) : (f.coprod g).comp (MonoidHom.inr M N) = g - MonoidHom.prod_unique π Mathlib.Algebra.Group.Prod
{M : Type u_3} {N : Type u_4} {P : Type u_5} [MulOneClass M] [MulOneClass N] [MulOneClass P] (f : M β* N Γ P) : ((MonoidHom.fst N P).comp f).prod ((MonoidHom.snd N P).comp f) = f - MonoidHom.coprod_unique π Mathlib.Algebra.Group.Prod
{M : Type u_3} {N : Type u_4} {P : Type u_5} [MulOneClass M] [MulOneClass N] [CommMonoid P] (f : M Γ N β* P) : (f.comp (MonoidHom.inl M N)).coprod (f.comp (MonoidHom.inr M N)) = f - MonoidHom.prodMap_def π Mathlib.Algebra.Group.Prod
{M : Type u_3} {N : Type u_4} [MulOneClass M] [MulOneClass N] {M' : Type u_6} {N' : Type u_7} [MulOneClass M'] [MulOneClass N'] (f : M β* M') (g : N β* N') : f.prodMap g = (f.comp (MonoidHom.fst M N)).prod (g.comp (MonoidHom.snd M N)) - MonoidHom.prod_comp_prodMap π Mathlib.Algebra.Group.Prod
{M : Type u_3} {N : Type u_4} {P : Type u_5} [MulOneClass M] [MulOneClass N] {M' : Type u_6} {N' : Type u_7} [MulOneClass M'] [MulOneClass N'] [MulOneClass P] (f : P β* M) (g : P β* N) (f' : M β* M') (g' : N β* N') : (f'.prodMap g').comp (f.prod g) = (f'.comp f).prod (g'.comp g) - MonoidHom.comp_coprod π Mathlib.Algebra.Group.Prod
{M : Type u_3} {N : Type u_4} {P : Type u_5} [MulOneClass M] [MulOneClass N] [CommMonoid P] {Q : Type u_6} [CommMonoid Q] (h : P β* Q) (f : M β* P) (g : N β* P) : h.comp (f.coprod g) = (h.comp f).coprod (h.comp g) - MulEquiv.monoidHomCongrRightEquiv_apply π Mathlib.Algebra.Group.Equiv.Basic
{M : Type u_4} {Nβ : Type u_9} {Nβ : Type u_10} [MulOneClass M] [Monoid Nβ] [Monoid Nβ] (e : Nβ β* Nβ) (hmn : M β* Nβ) : e.monoidHomCongrRightEquiv hmn = e.toMonoidHom.comp hmn - MulEquiv.monoidHomCongrLeftEquiv_apply π Mathlib.Algebra.Group.Equiv.Basic
{Mβ : Type u_5} {Mβ : Type u_6} {N : Type u_8} [MulOneClass Mβ] [MulOneClass Mβ] [Monoid N] (e : Mβ β* Mβ) (f : Mβ β* N) : e.monoidHomCongrLeftEquiv f = f.comp e.symm.toMonoidHom - MulEquiv.monoidHomCongrLeft_apply π Mathlib.Algebra.Group.Equiv.Basic
{Mβ : Type u_5} {Mβ : Type u_6} {N : Type u_8} [MulOneClass Mβ] [MulOneClass Mβ] [CommMonoid N] (e : Mβ β* Mβ) (f : Mβ β* N) : e.monoidHomCongrLeft f = f.comp βe.symm - MulEquiv.monoidHomCongrRight_apply π Mathlib.Algebra.Group.Equiv.Basic
{M : Type u_4} {Nβ : Type u_9} {Nβ : Type u_10} [MulOneClass M] [CommMonoid Nβ] [CommMonoid Nβ] (e : Nβ β* Nβ) (hmn : M β* Nβ) : e.monoidHomCongrRight hmn = (βe).comp hmn - MonoidHom.compHom_apply_apply π Mathlib.Algebra.Group.Hom.Instances
{M : Type uM} {N : Type uN} {P : Type uP} [MulOneClass M] [CommMonoid N] [CommMonoid P] (g : N β* P) (hmn : M β* N) : (MonoidHom.compHom g) hmn = g.comp hmn - MonoidHom.ext_int π Mathlib.Data.Int.Cast.Lemmas
{M : Type u_4} [Monoid M] {f g : β€ β* M} (h_neg_one : f (-1) = g (-1)) (h_nat : f.comp βInt.ofNatHom = g.comp βInt.ofNatHom) : f = g - MonoidHom.ext_int_iff π Mathlib.Data.Int.Cast.Lemmas
{M : Type u_4} [Monoid M] {f g : β€ β* M} : f = g β f (-1) = g (-1) β§ f.comp βInt.ofNatHom = g.comp βInt.ofNatHom - WithZero.map'_comp π Mathlib.Algebra.GroupWithZero.WithZero
{Ξ± : Type u_1} {Ξ² : Type u_2} {Ξ³ : Type u_3} [MulOneClass Ξ±] [MulOneClass Ξ²] [MulOneClass Ξ³] (f : Ξ± β* Ξ²) (g : Ξ² β* Ξ³) : WithZero.map' (g.comp f) = (WithZero.map' g).comp (WithZero.map' f) - WithZero.monoidWithZeroHom_ext π Mathlib.Algebra.GroupWithZero.WithZero
{Ξ± : Type u_1} {Ξ² : Type u_2} [MulOneClass Ξ±] [MulZeroOneClass Ξ²] β¦f g : WithZero Ξ± β*β Ξ²β¦ (h : (βf).comp WithZero.coeMonoidHom = (βg).comp WithZero.coeMonoidHom) : f = g - WithZero.monoidWithZeroHom_ext_iff π Mathlib.Algebra.GroupWithZero.WithZero
{Ξ± : Type u_1} {Ξ² : Type u_2} [MulOneClass Ξ±] [MulZeroOneClass Ξ²] {f g : WithZero Ξ± β*β Ξ²} : f = g β (βf).comp WithZero.coeMonoidHom = (βg).comp WithZero.coeMonoidHom - WithZero.map'_map' π Mathlib.Algebra.GroupWithZero.WithZero
{Ξ± : Type u_1} {Ξ² : Type u_2} {Ξ³ : Type u_3} [MulOneClass Ξ±] [MulOneClass Ξ²] [MulOneClass Ξ³] (f : Ξ± β* Ξ²) (g : Ξ² β* Ξ³) (x : WithZero Ξ±) : (WithZero.map' g) ((WithZero.map' f) x) = (WithZero.map' (g.comp f)) x - WithZero.lift'_unique π Mathlib.Algebra.GroupWithZero.WithZero
{Ξ± : Type u_1} {Ξ² : Type u_2} [MulOneClass Ξ±] [MulZeroOneClass Ξ²] (f : WithZero Ξ± β*β Ξ²) : f = WithZero.lift' ((βf).comp WithZero.coeMonoidHom) - MonoidHom.comap_mker π Mathlib.Algebra.Group.Submonoid.Operations
{M : Type u_1} {N : Type u_2} {P : Type u_3} [MulOneClass M] [MulOneClass N] [MulOneClass P] (g : N β* P) (f : M β* N) : Submonoid.comap f (MonoidHom.mker g) = MonoidHom.mker (g.comp f) - MonoidHom.map_mrange π Mathlib.Algebra.Group.Submonoid.Operations
{M : Type u_1} {N : Type u_2} {P : Type u_3} [MulOneClass M] [MulOneClass N] [MulOneClass P] (g : N β* P) (f : M β* N) : Submonoid.map g (MonoidHom.mrange f) = MonoidHom.mrange (g.comp f) - MonoidHom.mrange_comp π Mathlib.Algebra.Group.Submonoid.Operations
{M : Type u_1} {N : Type u_2} [MulOneClass M] [MulOneClass N] {O : Type u_5} [MulOneClass O] (f : N β* O) (g : M β* N) : MonoidHom.mrange (f.comp g) = Submonoid.map f (MonoidHom.mrange g) - Submonoid.comap_comap π Mathlib.Algebra.Group.Submonoid.Operations
{M : Type u_1} {N : Type u_2} {P : Type u_3} [MulOneClass M] [MulOneClass N] [MulOneClass P] (S : Submonoid P) (g : N β* P) (f : M β* N) : Submonoid.comap f (Submonoid.comap g S) = Submonoid.comap (g.comp f) S - Submonoid.map_map π Mathlib.Algebra.Group.Submonoid.Operations
{M : Type u_1} {N : Type u_2} {P : Type u_3} [MulOneClass M] [MulOneClass N] [MulOneClass P] (S : Submonoid M) (g : N β* P) (f : M β* N) : Submonoid.map g (Submonoid.map f S) = Submonoid.map (g.comp f) S - Submonoid.subtype_comp_inclusion π Mathlib.Algebra.Group.Submonoid.Operations
{M : Type u_1} [MulOneClass M] {S T : Submonoid M} (h : S β€ T) : T.subtype.comp (Submonoid.inclusion h) = S.subtype - SubgroupClass.subtype_comp_inclusion π Mathlib.Algebra.Group.Subgroup.Defs
{G : Type u_1} [Group G] {S : Type u_4} [SetLike S G] [SubgroupClass S G] [LE S] [IsConcreteLE S G] {H K : S} (h : H β€ K) : (βK).comp (SubgroupClass.inclusion h) = βH - Subgroup.subtype_comp_inclusion π Mathlib.Algebra.Group.Subgroup.Defs
{G : Type u_1} [Group G] {H K : Subgroup G} (hH : H β€ K) : K.subtype.comp (Subgroup.inclusion hH) = H.subtype - Subgroup.comap_comap π Mathlib.Algebra.Group.Subgroup.Map
{G : Type u_1} [Group G] {N : Type u_4} [Group N] {P : Type u_5} [Group P] (K : Subgroup P) (g : N β* P) (f : G β* N) : Subgroup.comap f (Subgroup.comap g K) = Subgroup.comap (g.comp f) K - Subgroup.map_map π Mathlib.Algebra.Group.Subgroup.Map
{G : Type u_1} [Group G] (K : Subgroup G) {N : Type u_4} [Group N] {P : Type u_5} [Group P] (g : N β* P) (f : G β* N) : Subgroup.map g (Subgroup.map f K) = Subgroup.map (g.comp f) K - MonoidHom.comap_ker π Mathlib.Algebra.Group.Subgroup.Ker
{G : Type u_1} [Group G] {N : Type u_4} [Group N] {P : Type u_7} [MulOneClass P] (g : N β* P) (f : G β* N) : Subgroup.comap f g.ker = (g.comp f).ker - MonoidHom.map_range π Mathlib.Algebra.Group.Subgroup.Ker
{G : Type u_1} [Group G] {N : Type u_4} {P : Type u_5} [Group N] [Group P] (g : N β* P) (f : G β* N) : Subgroup.map g f.range = (g.comp f).range - MonoidHom.range_comp π Mathlib.Algebra.Group.Subgroup.Ker
{G : Type u_1} [Group G] {N : Type u_4} {P : Type u_5} [Group N] [Group P] (g : N β* P) (f : G β* N) : (g.comp f).range = Subgroup.map g f.range - MonoidHom.ker_comp_of_injective π Mathlib.Algebra.Group.Subgroup.Ker
{G : Type u_1} [Group G] {N : Type u_4} [Group N] {P : Type u_7} [MulOneClass P] (f : G β* N) (g : N β* P) (hg : Function.Injective βg) : (g.comp f).ker = f.ker - MonoidHom.range_le_ker_iff π Mathlib.Algebra.Group.Subgroup.Ker
{G : Type u_1} {G' : Type u_2} [Group G] [Group G'] {M : Type u_6} [MulOneClass M] (f : G β* G') (g : G' β* M) : f.range β€ g.ker β g.comp f = 1 - MonoidHom.subtype_comp_rangeRestrict π Mathlib.Algebra.Group.Subgroup.Ker
{G : Type u_1} [Group G] {N : Type u_4} [Group N] (f : G β* N) : f.range.subtype.comp f.rangeRestrict = f - MonoidHom.ker_mulEquiv_comp π Mathlib.Algebra.Group.Subgroup.Ker
{G : Type u_1} [Group G] {N : Type u_4} [Group N] {P : Type u_7} [MulOneClass P] (f : G β* N) (iso : N β* P) : ((βiso).comp f).ker = f.ker - MonoidHom.ker_comp_mulEquiv π Mathlib.Algebra.Group.Subgroup.Ker
{G : Type u_1} [Group G] {N : Type u_4} [Group N] {P : Type u_7} [MulOneClass P] (g : N β* P) (iso : G β* N) : (g.comp βiso).ker = Subgroup.map (βiso.symm) g.ker - MonoidHom.liftOfRightInverse_comp π Mathlib.Algebra.Group.Subgroup.Basic
{Gβ : Type u_4} {Gβ : Type u_5} {Gβ : Type u_6} [Group Gβ] [Group Gβ] [Group Gβ] (f : Gβ β* Gβ) (f_inv : Gβ β Gβ) (hf : Function.RightInverse f_inv βf) (g : { g // f.ker β€ g.ker }) : ((f.liftOfRightInverse f_inv hf) g).comp f = βg - MonoidHom.eq_liftOfRightInverse π Mathlib.Algebra.Group.Subgroup.Basic
{Gβ : Type u_4} {Gβ : Type u_5} {Gβ : Type u_6} [Group Gβ] [Group Gβ] [Group Gβ] (f : Gβ β* Gβ) (f_inv : Gβ β Gβ) (hf : Function.RightInverse f_inv βf) (g : Gβ β* Gβ) (hg : f.ker β€ g.ker) (h : Gβ β* Gβ) (hh : h.comp f = g) : h = (f.liftOfRightInverse f_inv hf) β¨g, hgβ© - FreeMonoid.map_comp π Mathlib.Algebra.FreeMonoid.Basic
{Ξ± : Type u_1} {Ξ² : Type u_2} {Ξ³ : Type u_3} (g : Ξ² β Ξ³) (f : Ξ± β Ξ²) : FreeMonoid.map (g β f) = (FreeMonoid.map g).comp (FreeMonoid.map f) - FreeMonoid.comp_lift π Mathlib.Algebra.FreeMonoid.Basic
{Ξ± : Type u_1} {M : Type u_4} [Monoid M] {N : Type u_5} [Monoid N] (g : M β* N) (f : Ξ± β M) : g.comp (FreeMonoid.lift f) = FreeMonoid.lift (βg β f) - Con.lift_comp_mk' π Mathlib.GroupTheory.Congruence.Hom
{M : Type u_1} {P : Type u_3} [MulOneClass M] [MulOneClass P] {c : Con M} {f : M β* P} (H : c β€ Con.ker f) : (c.lift f H).comp c.mk' = f - Con.hom_ext π Mathlib.GroupTheory.Congruence.Hom
{M : Type u_1} {P : Type u_3} [MulOneClass M] [MulOneClass P] {c : Con M} {f g : c.Quotient β* P} (h : f.comp c.mk' = g.comp c.mk') : f = g - Con.hom_ext_iff π Mathlib.GroupTheory.Congruence.Hom
{M : Type u_1} {P : Type u_3} [MulOneClass M] [MulOneClass P] {c : Con M} {f g : c.Quotient β* P} : f = g β f.comp c.mk' = g.comp c.mk' - Con.lift_unique π Mathlib.GroupTheory.Congruence.Hom
{M : Type u_1} {P : Type u_3} [MulOneClass M] [MulOneClass P] {c : Con M} {f : M β* P} (H : c β€ Con.ker f) (g : c.Quotient β* P) (Hg : g.comp c.mk' = f) : g = c.lift f H - Con.lift_apply_mk' π Mathlib.GroupTheory.Congruence.Hom
{M : Type u_1} {P : Type u_3} [MulOneClass M] [MulOneClass P] {c : Con M} (f : c.Quotient β* P) : c.lift (f.comp c.mk') β― = f - Con.comap_eq π Mathlib.GroupTheory.Congruence.Hom
{M : Type u_1} {N : Type u_2} [MulOneClass M] [MulOneClass N] {c : Con M} {f : N β* M} : Con.comap βf β― c = Con.ker (c.mk'.comp f) - QuotientGroup.lift_comp_mk' π Mathlib.GroupTheory.QuotientGroup.Defs
{G : Type u_1} {M : Type u_4} [Group G] [Monoid M] (N : Subgroup G) [nN : N.Normal] (Ο : G β* M) (HN : N β€ Ο.ker) : (QuotientGroup.lift N Ο HN).comp (QuotientGroup.mk' N) = Ο - QuotientGroup.monoidHom_ext π Mathlib.GroupTheory.QuotientGroup.Defs
{G : Type u_1} {M : Type u_4} [Group G] [Monoid M] (N : Subgroup G) [nN : N.Normal] β¦f g : G β§Έ N β* Mβ¦ (h : f.comp (QuotientGroup.mk' N) = g.comp (QuotientGroup.mk' N)) : f = g - QuotientGroup.monoidHom_ext_iff π Mathlib.GroupTheory.QuotientGroup.Defs
{G : Type u_1} {M : Type u_4} [Group G] [Monoid M] {N : Subgroup G} [nN : N.Normal] {f g : G β§Έ N β* M} : f = g β f.comp (QuotientGroup.mk' N) = g.comp (QuotientGroup.mk' N) - QuotientGroup.mk'_comp_subtype π Mathlib.GroupTheory.QuotientGroup.Defs
{G : Type u_1} [Group G] (N : Subgroup G) [nN : N.Normal] : (QuotientGroup.mk' N).comp N.subtype = 1 - QuotientGroup.map_comp_map π Mathlib.GroupTheory.QuotientGroup.Defs
{G : Type u_1} {H : Type u_2} [Group G] [Group H] (N : Subgroup G) [nN : N.Normal] {I : Type u_5} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal] (f : G β* H) (g : H β* I) (hf : N β€ Subgroup.comap f M) (hg : M β€ Subgroup.comap g O) (hgf : N β€ Subgroup.comap (g.comp f) O := β―) : (QuotientGroup.map M O g hg).comp (QuotientGroup.map N M f hf) = QuotientGroup.map N O (g.comp f) hgf - QuotientGroup.ker_le_range_iff π Mathlib.GroupTheory.QuotientGroup.Defs
{G : Type u_1} {H : Type u_2} {I : Type u_3} [Group G] [Group H] [MulOneClass I] (f : G β* H) [f.range.Normal] (g : H β* I) : g.ker β€ f.range β (QuotientGroup.mk' f.range).comp g.ker.subtype = 1 - QuotientGroup.map_map π Mathlib.GroupTheory.QuotientGroup.Defs
{G : Type u_1} {H : Type u_2} [Group G] [Group H] (N : Subgroup G) [nN : N.Normal] {I : Type u_5} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal] (f : G β* H) (g : H β* I) (hf : N β€ Subgroup.comap f M) (hg : M β€ Subgroup.comap g O) (hgf : N β€ Subgroup.comap (g.comp f) O := β―) (x : G β§Έ N) : (QuotientGroup.map M O g hg) ((QuotientGroup.map N M f hf) x) = (QuotientGroup.map N O (g.comp f) hgf) x - Abelianization.hom_ext π Mathlib.GroupTheory.Abelianization.Defs
{G : Type u} [Group G] {A : Type v} [Monoid A] (Ο Ο : Abelianization G β* A) (h : Ο.comp Abelianization.of = Ο.comp Abelianization.of) : Ο = Ο - Abelianization.hom_ext_iff π Mathlib.GroupTheory.Abelianization.Defs
{G : Type u} [Group G] {A : Type v} [Monoid A] {Ο Ο : Abelianization G β* A} : Ο = Ο β Ο.comp Abelianization.of = Ο.comp Abelianization.of - Abelianization.map_comp π Mathlib.GroupTheory.Abelianization.Defs
{G : Type u} [Group G] {H : Type v} [Group H] (f : G β* H) {I : Type w} [Group I] (g : H β* I) : (Abelianization.map g).comp (Abelianization.map f) = Abelianization.map (g.comp f) - Abelianization.map_map_apply π Mathlib.GroupTheory.Abelianization.Defs
{G : Type u} [Group G] {H : Type v} [Group H] (f : G β* H) {I : Type w} [Group I] {g : H β* I} {x : Abelianization G} : (Abelianization.map g) ((Abelianization.map f) x) = (Abelianization.map (g.comp f)) x - Abelianization.lift_symm_apply π Mathlib.GroupTheory.Abelianization.Defs
{G : Type u} [Group G] {A : Type v} [CommGroup A] (f : Abelianization G β* A) : Abelianization.lift.symm f = f.comp Abelianization.of - Abelianization.coe_lift_symm π Mathlib.GroupTheory.Abelianization.Defs
{G : Type u} [Group G] {A : Type v} [CommGroup A] : βAbelianization.lift.symm = fun x => x.comp Abelianization.of - Abelianization.lift_of_comp π Mathlib.GroupTheory.Abelianization.Defs
{G : Type u} [Group G] {H : Type v} [Group H] (f : G β* H) : Abelianization.lift (Abelianization.of.comp f) = Abelianization.map f - Submonoid.LocalizationMap.epic_of_localizationMap π Mathlib.GroupTheory.MonoidLocalization.Basic
{M : Type u_1} [CommMonoid M] {S : Submonoid M} {N : Type u_2} [CommMonoid N] (f : S.LocalizationMap N) {P : Type u_4} [Monoid P] {j k : N β* P} (h : j.comp f.toMonoidHom = k.comp f.toMonoidHom) : j = k - Submonoid.LocalizationMap.isUnit_comp π Mathlib.GroupTheory.MonoidLocalization.Basic
{M : Type u_1} [CommMonoid M] {S : Submonoid M} {N : Type u_2} [CommMonoid N] {P : Type u_3} [CommMonoid P] (f : S.LocalizationMap N) (j : N β* P) (y : β₯S) : IsUnit ((j.comp f.toMonoidHom) βy) - Submonoid.LocalizationMap.lift_of_comp π Mathlib.GroupTheory.MonoidLocalization.Maps
{M : Type u_1} [CommMonoid M] {S : Submonoid M} {N : Type u_2} [CommMonoid N] {P : Type u_3} [CommMonoid P] (f : S.LocalizationMap N) (j : N β* P) : f.lift β― = j - Submonoid.LocalizationMap.ofMulEquivOfLocalizations_eq π Mathlib.GroupTheory.MonoidLocalization.Maps
{M : Type u_1} [CommMonoid M] {S : Submonoid M} {N : Type u_2} [CommMonoid N] {P : Type u_3} [CommMonoid P] (f : S.LocalizationMap N) {k : N β* P} : (f.ofMulEquivOfLocalizations k).toMonoidHom = k.toMonoidHom.comp f.toMonoidHom - Submonoid.LocalizationMap.ofMulEquivOfLocalizations_comp π Mathlib.GroupTheory.MonoidLocalization.Maps
{M : Type u_1} [CommMonoid M] {S : Submonoid M} {N : Type u_2} [CommMonoid N] {P : Type u_3} [CommMonoid P] (f : S.LocalizationMap N) {Q : Type u_4} [CommMonoid Q] {k : N β* P} {j : P β* Q} : (f.ofMulEquivOfLocalizations (k.trans j)).toMonoidHom = j.toMonoidHom.comp (f.ofMulEquivOfLocalizations k).toMonoidHom - Submonoid.LocalizationMap.lift_comp π Mathlib.GroupTheory.MonoidLocalization.Maps
{M : Type u_1} [CommMonoid M] {S : Submonoid M} {N : Type u_2} [CommMonoid N] {P : Type u_3} [CommMonoid P] (f : S.LocalizationMap N) {g : M β* P} (hg : β (y : β₯S), IsUnit (g βy)) : (f.lift hg).comp f.toMonoidHom = g - Submonoid.LocalizationMap.ofMulEquivOfDom_eq π Mathlib.GroupTheory.MonoidLocalization.Maps
{M : Type u_1} [CommMonoid M] {S : Submonoid M} {N : Type u_2} [CommMonoid N] {P : Type u_3} [CommMonoid P] (f : S.LocalizationMap N) {T : Submonoid P} {k : P β* M} (H : Submonoid.map k.toMonoidHom T = S) : (f.ofMulEquivOfDom H).toMonoidHom = f.toMonoidHom.comp k.toMonoidHom - Submonoid.LocalizationMap.lift_comp_lift_eq π Mathlib.GroupTheory.MonoidLocalization.Maps
{M : Type u_1} [CommMonoid M] {S : Submonoid M} {N : Type u_2} [CommMonoid N] (f : S.LocalizationMap N) {Q : Type u_4} [CommMonoid Q] (k : S.LocalizationMap Q) {A : Type u_5} [CommMonoid A] {l : M β* A} (hl : β (w : β₯S), IsUnit (l βw)) : (k.lift hl).comp (f.lift β―) = f.lift hl - Submonoid.LocalizationMap.of_mulEquivOfMulEquiv π Mathlib.GroupTheory.MonoidLocalization.Maps
{M : Type u_1} [CommMonoid M] {S : Submonoid M} {N : Type u_2} [CommMonoid N] {P : Type u_3} [CommMonoid P] (f : S.LocalizationMap N) {T : Submonoid P} {Q : Type u_4} [CommMonoid Q] {k : T.LocalizationMap Q} {j : M β* P} (H : Submonoid.map j.toMonoidHom S = T) : (f.ofMulEquivOfLocalizations (f.mulEquivOfMulEquiv k H)).toMonoidHom = k.toMonoidHom.comp j.toMonoidHom - Submonoid.LocalizationMap.map_comp π Mathlib.GroupTheory.MonoidLocalization.Maps
{M : Type u_1} [CommMonoid M] {S : Submonoid M} {N : Type u_2} [CommMonoid N] {P : Type u_3} [CommMonoid P] (f : S.LocalizationMap N) {g : M β* P} {T : Submonoid P} (hy : β (y : β₯S), g βy β T) {Q : Type u_4} [CommMonoid Q] {k : T.LocalizationMap Q} : (f.map hy k).comp f.toMonoidHom = k.toMonoidHom.comp g - Submonoid.LocalizationMap.lift_comp_lift π Mathlib.GroupTheory.MonoidLocalization.Maps
{M : Type u_1} [CommMonoid M] {S : Submonoid M} {N : Type u_2} [CommMonoid N] (f : S.LocalizationMap N) {T : Submonoid M} (hST : S β€ T) {Q : Type u_4} [CommMonoid Q] (k : T.LocalizationMap Q) {A : Type u_5} [CommMonoid A] {l : M β* A} (hl : β (w : β₯T), IsUnit (l βw)) : (k.lift hl).comp (f.lift β―) = f.lift β― - Submonoid.LocalizationMap.map_comp_map π Mathlib.GroupTheory.MonoidLocalization.Maps
{M : Type u_1} [CommMonoid M] {S : Submonoid M} {N : Type u_2} [CommMonoid N] {P : Type u_3} [CommMonoid P] (f : S.LocalizationMap N) {g : M β* P} {T : Submonoid P} (hy : β (y : β₯S), g βy β T) {Q : Type u_4} [CommMonoid Q] {k : T.LocalizationMap Q} {A : Type u_5} [CommMonoid A] {U : Submonoid A} {R : Type u_6} [CommMonoid R] (j : U.LocalizationMap R) {l : P β* A} (hl : β (w : β₯T), l βw β U) : (k.map hl j).comp (f.map hy k) = f.map β― j - Submonoid.LocalizationMap.map_map π Mathlib.GroupTheory.MonoidLocalization.Maps
{M : Type u_1} [CommMonoid M] {S : Submonoid M} {N : Type u_2} [CommMonoid N] {P : Type u_3} [CommMonoid P] (f : S.LocalizationMap N) {g : M β* P} {T : Submonoid P} (hy : β (y : β₯S), g βy β T) {Q : Type u_4} [CommMonoid Q] {k : T.LocalizationMap Q} {A : Type u_5} [CommMonoid A] {U : Submonoid A} {R : Type u_6} [CommMonoid R] (j : U.LocalizationMap R) {l : P β* A} (hl : β (w : β₯T), l βw β U) (x : N) : (k.map hl j) ((f.map hy k) x) = (f.map β― j) x - Algebra.GrothendieckGroup.lift_symm_apply π Mathlib.GroupTheory.MonoidLocalization.GrothendieckGroup
{M : Type u_1} {G : Type u_2} [CommMonoid M] [CommGroup G] (f : Algebra.GrothendieckGroup M β* G) : Algebra.GrothendieckGroup.lift.symm f = f.comp Algebra.GrothendieckGroup.of - OrderMonoidHom.coe_comp_monoidHom π Mathlib.Algebra.Order.Hom.Monoid
{Ξ± : Type u_2} {Ξ² : Type u_3} {Ξ³ : Type u_4} [Preorder Ξ±] [Preorder Ξ²] [Preorder Ξ³] [MulOneClass Ξ±] [MulOneClass Ξ²] [MulOneClass Ξ³] (f : Ξ² β*o Ξ³) (g : Ξ± β*o Ξ²) : β(f.comp g) = (βf).comp βg - RingEquiv.coe_monoidHom_trans π Mathlib.Algebra.Ring.Equiv
{R : Type u_4} {S : Type u_5} {S' : Type u_6} [NonAssocSemiring R] [NonAssocSemiring S] [NonAssocSemiring S'] (eβ : R β+* S) (eβ : S β+* S') : β(eβ.trans eβ) = (βeβ).comp βeβ - MonoidHom.CompTriple.comp π Mathlib.Algebra.Group.Hom.CompTypeclasses
{M : Type u_1} {N : Type u_2} {P : Type u_3} [Monoid M] [Monoid N] [Monoid P] {Ο : M β* N} {Ο : N β* P} : Ο.CompTriple Ο (Ο.comp Ο) - MonoidHom.CompTriple.comp_eq π Mathlib.Algebra.Group.Hom.CompTypeclasses
{M : Type u_1} {N : Type u_2} {P : Type u_3} {instβ : Monoid M} {instβΒΉ : Monoid N} {instβΒ² : Monoid P} {Ο : M β* N} {Ο : N β* P} {Ο : outParam (M β* P)} [self : Ο.CompTriple Ο Ο] : Ο.comp Ο = Ο - MonoidHom.CompTriple.mk π Mathlib.Algebra.Group.Hom.CompTypeclasses
{M : Type u_1} {N : Type u_2} {P : Type u_3} [Monoid M] [Monoid N] [Monoid P] {Ο : M β* N} {Ο : N β* P} {Ο : outParam (M β* P)} (comp_eq : Ο.comp Ο = Ο) : Ο.CompTriple Ο Ο - MonoidHom.functions_ext' π Mathlib.Algebra.BigOperators.Pi
{I : Type u_7} [DecidableEq I] {M : I β Type u_8} [(i : I) β CommMonoid (M i)] [Finite I] (N : Type u_9) [CommMonoid N] (g h : ((i : I) β M i) β* N) (H : β (i : I), g.comp (MonoidHom.mulSingle M i) = h.comp (MonoidHom.mulSingle M i)) : g = h - MonoidHom.functions_ext'_iff π Mathlib.Algebra.BigOperators.Pi
{I : Type u_7} [DecidableEq I] {M : I β Type u_8} [(i : I) β CommMonoid (M i)] [Finite I] {N : Type u_9} [CommMonoid N] {g h : ((i : I) β M i) β* N} : g = h β β (i : I), g.comp (MonoidHom.mulSingle M i) = h.comp (MonoidHom.mulSingle M i) - Finsupp.mulHom_ext' π Mathlib.Data.Finsupp.Ext
{Ξ± : Type u_1} {M : Type u_2} {N : Type u_3} [AddZeroClass M] [MulOneClass N] {f g : Multiplicative (Ξ± ββ M) β* N} (H : β (x : Ξ±), f.comp (AddMonoidHom.toMultiplicative (Finsupp.singleAddHom x)) = g.comp (AddMonoidHom.toMultiplicative (Finsupp.singleAddHom x))) : f = g - Finsupp.mulHom_ext'_iff π Mathlib.Data.Finsupp.Ext
{Ξ± : Type u_1} {M : Type u_2} {N : Type u_3} [AddZeroClass M] [MulOneClass N] {f g : Multiplicative (Ξ± ββ M) β* N} : f = g β β (x : Ξ±), f.comp (AddMonoidHom.toMultiplicative (Finsupp.singleAddHom x)) = g.comp (AddMonoidHom.toMultiplicative (Finsupp.singleAddHom x)) - QuotientGroup.homQuotientZPowOfHom_comp π Mathlib.GroupTheory.QuotientGroup.Basic
{A B : Type u} [CommGroup A] [CommGroup B] (f : A β* B) (g : B β* A) (n : β€) : QuotientGroup.homQuotientZPowOfHom (f.comp g) n = (QuotientGroup.homQuotientZPowOfHom f n).comp (QuotientGroup.homQuotientZPowOfHom g n) - QuotientGroup.homQuotientZPowOfHom_comp_of_rightInverse π Mathlib.GroupTheory.QuotientGroup.Basic
{A B : Type u} [CommGroup A] [CommGroup B] (f : A β* B) (g : B β* A) (n : β€) (i : Function.RightInverse βg βf) : (QuotientGroup.homQuotientZPowOfHom f n).comp (QuotientGroup.homQuotientZPowOfHom g n) = MonoidHom.id (B β§Έ (zpowGroupHom n).range) - Con.comapQuotientEquiv π Mathlib.GroupTheory.Congruence.Basic
{M : Type u_1} {N : Type u_2} [MulOneClass M] [MulOneClass N] (c : Con M) (f : N β* M) : (Con.comap βf β― c).Quotient β* β₯(MonoidHom.mrange (c.mk'.comp f)) - MonoidAlgebra.ringHom_ext' π Mathlib.Algebra.MonoidAlgebra.Defs
{R : Type u_1} {S : Type u_2} {M : Type u_4} [Semiring R] [MulOneClass M] [Semiring S] {f g : MonoidAlgebra R M β+* S} (hβ : f.comp MonoidAlgebra.singleOneRingHom = g.comp MonoidAlgebra.singleOneRingHom) (h_of : (βf).comp (MonoidAlgebra.of R M) = (βg).comp (MonoidAlgebra.of R M)) : f = g - MonoidAlgebra.ringHom_ext'_iff π Mathlib.Algebra.MonoidAlgebra.Defs
{R : Type u_1} {S : Type u_2} {M : Type u_4} [Semiring R] [MulOneClass M] [Semiring S] {f g : MonoidAlgebra R M β+* S} : f = g β f.comp MonoidAlgebra.singleOneRingHom = g.comp MonoidAlgebra.singleOneRingHom β§ (βf).comp (MonoidAlgebra.of R M) = (βg).comp (MonoidAlgebra.of R M) - AddMonoidAlgebra.ringHom_ext' π Mathlib.Algebra.MonoidAlgebra.Defs
{R : Type u_1} {S : Type u_2} {M : Type u_4} [Semiring R] [Semiring S] [AddMonoid M] {f g : AddMonoidAlgebra R M β+* S} (hβ : f.comp AddMonoidAlgebra.singleZeroRingHom = g.comp AddMonoidAlgebra.singleZeroRingHom) (h_of : (βf).comp (AddMonoidAlgebra.of R M) = (βg).comp (AddMonoidAlgebra.of R M)) : f = g - AddMonoidAlgebra.ringHom_ext'_iff π Mathlib.Algebra.MonoidAlgebra.Defs
{R : Type u_1} {S : Type u_2} {M : Type u_4} [Semiring R] [Semiring S] [AddMonoid M] {f g : AddMonoidAlgebra R M β+* S} : f = g β f.comp AddMonoidAlgebra.singleZeroRingHom = g.comp AddMonoidAlgebra.singleZeroRingHom β§ (βf).comp (AddMonoidAlgebra.of R M) = (βg).comp (AddMonoidAlgebra.of R M) - MonoidAlgebra.mapDomainRingHom_comp π Mathlib.Algebra.MonoidAlgebra.MapDomain
{R : Type u_3} {M : Type u_6} {N : Type u_7} {O : Type u_8} [Semiring R] [Monoid M] [Monoid N] [Monoid O] (f : N β* O) (g : M β* N) : MonoidAlgebra.mapDomainRingHom R (f.comp g) = (MonoidAlgebra.mapDomainRingHom R f).comp (MonoidAlgebra.mapDomainRingHom R g) - Function.MulExact.monoidHom_comp_eq_zero π Mathlib.Algebra.Exact.Basic
{M : Type u_2} {N : Type u_4} {P : Type u_6} [Group M] [Group N] [Group P] {f : M β* N} {g : N β* P} (h : Function.MulExact βf βg) : g.comp f = 1 - MonoidHom.mulExact_of_comp_eq_one_of_ker_le_range π Mathlib.Algebra.Exact.Basic
{M : Type u_2} {N : Type u_4} {P : Type u_6} [Group M] [Group N] [Group P] {f : M β* N} {g : N β* P} (h1 : g.comp f = 1) (h2 : g.ker β€ f.range) : Function.MulExact βf βg - MonoidHom.mulExact_of_comp_of_mem_range π Mathlib.Algebra.Exact.Basic
{M : Type u_2} {N : Type u_4} {P : Type u_6} [Group M] [Group N] [Group P] {f : M β* N} {g : N β* P} (h1 : g.comp f = 1) (h2 : β (x : N), g x = 1 β x β f.range) : Function.MulExact βf βg - MonoidHom.mulExact_iff_of_surjective_of_bijective_of_injective π Mathlib.Algebra.Exact.Basic
{Mβ : Type u_8} {Mβ : Type u_9} {Mβ : Type u_10} {Nβ : Type u_11} {Nβ : Type u_12} {Nβ : Type u_13} [CommMonoid Mβ] [CommMonoid Mβ] [CommMonoid Mβ] [CommMonoid Nβ] [CommMonoid Nβ] [CommMonoid Nβ] (f : Mβ β* Mβ) (g : Mβ β* Mβ) (f' : Nβ β* Nβ) (g' : Nβ β* Nβ) (Οβ : Mβ β* Nβ) (Οβ : Mβ β* Nβ) (Οβ : Mβ β* Nβ) (commββ : f'.comp Οβ = Οβ.comp f) (commββ : g'.comp Οβ = Οβ.comp g) (hβ : Function.Surjective βΟβ) (hβ : Function.Bijective βΟβ) (hβ : Function.Injective βΟβ) : Function.MulExact βf βg β Function.MulExact βf' βg' - Function.MulExact.of_ladder_mulEquiv_of_mulExact π Mathlib.Algebra.Exact.Basic
{Xβ : Type u_8} {Xβ : Type u_9} {Xβ : Type u_10} {Yβ : Type u_11} {Yβ : Type u_12} {Yβ : Type u_13} [CommMonoid Xβ] [CommMonoid Xβ] [CommMonoid Xβ] [CommMonoid Yβ] [CommMonoid Yβ] [CommMonoid Yβ] (eβ : Xβ β* Yβ) (eβ : Xβ β* Yβ) (eβ : Xβ β* Yβ) {fββ : Xβ β* Xβ} {fββ : Xβ β* Xβ} {gββ : Yβ β* Yβ} {gββ : Yβ β* Yβ} (commββ : gββ.comp βeβ = (βeβ).comp fββ) (commββ : gββ.comp βeβ = (βeβ).comp fββ) (H : Function.MulExact βfββ βfββ) : Function.MulExact βgββ βgββ - Function.MulExact.of_ladder_mulEquiv_of_mulExact' π Mathlib.Algebra.Exact.Basic
{Xβ : Type u_8} {Xβ : Type u_9} {Xβ : Type u_10} {Yβ : Type u_11} {Yβ : Type u_12} {Yβ : Type u_13} [CommMonoid Xβ] [CommMonoid Xβ] [CommMonoid Xβ] [CommMonoid Yβ] [CommMonoid Yβ] [CommMonoid Yβ] (eβ : Xβ β* Yβ) (eβ : Xβ β* Yβ) (eβ : Xβ β* Yβ) {fββ : Xβ β* Xβ} {fββ : Xβ β* Xβ} {gββ : Yβ β* Yβ} {gββ : Yβ β* Yβ} (commββ : gββ.comp βeβ = (βeβ).comp fββ) (commββ : gββ.comp βeβ = (βeβ).comp fββ) (H : Function.MulExact βgββ βgββ) : Function.MulExact βfββ βfββ - Function.MulExact.iff_of_ladder_mulEquiv π Mathlib.Algebra.Exact.Basic
{Xβ : Type u_8} {Xβ : Type u_9} {Xβ : Type u_10} {Yβ : Type u_11} {Yβ : Type u_12} {Yβ : Type u_13} [CommMonoid Xβ] [CommMonoid Xβ] [CommMonoid Xβ] [CommMonoid Yβ] [CommMonoid Yβ] [CommMonoid Yβ] (eβ : Xβ β* Yβ) (eβ : Xβ β* Yβ) (eβ : Xβ β* Yβ) {fββ : Xβ β* Xβ} {fββ : Xβ β* Xβ} {gββ : Yβ β* Yβ} {gββ : Yβ β* Yβ} (commββ : gββ.comp βeβ = (βeβ).comp fββ) (commββ : gββ.comp βeβ = (βeβ).comp fββ) : Function.MulExact βgββ βgββ β Function.MulExact βfββ βfββ - IsLocalization.monoidHom_ext π Mathlib.RingTheory.Localization.Defs
{R : Type u_1} [CommSemiring R] (M : Submonoid R) {S : Type u_2} [CommSemiring S] [Algebra R S] [IsLocalization M S] {P : Type u_4} [Monoid P] β¦j k : S β* Pβ¦ (h : j.comp β(algebraMap R S) = k.comp β(algebraMap R S)) : j = k - MonoidAlgebra.mapDomainAlgHom_comp π Mathlib.Algebra.MonoidAlgebra.Basic
{R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} {O : Type u_9} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] [Monoid N] [Monoid O] (f : M β* N) (g : N β* O) : MonoidAlgebra.mapDomainAlgHom R A (g.comp f) = (MonoidAlgebra.mapDomainAlgHom R A g).comp (MonoidAlgebra.mapDomainAlgHom R A f) - MonoidAlgebra.lift_unique' π Mathlib.Algebra.MonoidAlgebra.Basic
{R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] (F : MonoidAlgebra R M ββ[R] A) : F = (MonoidAlgebra.lift R A M) ((βF).comp (MonoidAlgebra.of R M)) - AddMonoidAlgebra.lift_unique' π Mathlib.Algebra.MonoidAlgebra.Basic
{R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] (F : AddMonoidAlgebra R M ββ[R] A) : F = (AddMonoidAlgebra.lift R A M) ((βF).comp (AddMonoidAlgebra.of R M)) - MonoidAlgebra.algHom_ext' π Mathlib.Algebra.MonoidAlgebra.Basic
{R : Type u_1} {A : Type u_4} {B : Type u_5} {M : Type u_7} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [Monoid M] β¦Οβ Οβ : MonoidAlgebra A M ββ[R] Bβ¦ (single_one_right : (βΟβ).comp (MonoidAlgebra.of A M) = (βΟβ).comp (MonoidAlgebra.of A M)) (single_one_left : Οβ.comp MonoidAlgebra.singleOneAlgHom = Οβ.comp MonoidAlgebra.singleOneAlgHom) : Οβ = Οβ - AddMonoidAlgebra.algHom_ext' π Mathlib.Algebra.MonoidAlgebra.Basic
{R : Type u_1} {A : Type u_4} {B : Type u_5} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] β¦Οβ Οβ : AddMonoidAlgebra A M ββ[R] Bβ¦ (single_one_right : (βΟβ).comp (AddMonoidAlgebra.of A M) = (βΟβ).comp (AddMonoidAlgebra.of A M)) (single_one_left : Οβ.comp AddMonoidAlgebra.singleZeroAlgHom = Οβ.comp AddMonoidAlgebra.singleZeroAlgHom) : Οβ = Οβ - MonCat.hom_comp π Mathlib.Algebra.Category.MonCat.Basic
{M N T : MonCat} (f : M βΆ N) (g : N βΆ T) : MonCat.Hom.hom (CategoryTheory.CategoryStruct.comp f g) = (MonCat.Hom.hom g).comp (MonCat.Hom.hom f) - MonCat.ofHom_comp π Mathlib.Algebra.Category.MonCat.Basic
{M N P : Type u} [Monoid M] [Monoid N] [Monoid P] (f : M β* N) (g : N β* P) : MonCat.ofHom (g.comp f) = CategoryTheory.CategoryStruct.comp (MonCat.ofHom f) (MonCat.ofHom g) - CommMonCat.hom_comp π Mathlib.Algebra.Category.MonCat.Basic
{M N T : CommMonCat} (f : M βΆ N) (g : N βΆ T) : CommMonCat.Hom.hom (CategoryTheory.CategoryStruct.comp f g) = (CommMonCat.Hom.hom g).comp (CommMonCat.Hom.hom f) - CommMonCat.ofHom_comp π Mathlib.Algebra.Category.MonCat.Basic
{M N P : Type u} [CommMonoid M] [CommMonoid N] [CommMonoid P] (f : M β* N) (g : N β* P) : CommMonCat.ofHom (g.comp f) = CategoryTheory.CategoryStruct.comp (CommMonCat.ofHom f) (CommMonCat.ofHom g) - MonCat.uliftFunctor_map π Mathlib.Algebra.Category.MonCat.Basic
{xβ xβΒΉ : MonCat} (f : xβ βΆ xβΒΉ) : MonCat.uliftFunctor.map f = MonCat.ofHom (MulEquiv.ulift.symm.toMonoidHom.comp ((MonCat.Hom.hom f).comp MulEquiv.ulift.toMonoidHom)) - CommMonCat.uliftFunctor_map π Mathlib.Algebra.Category.MonCat.Basic
{xβ xβΒΉ : CommMonCat} (f : xβ βΆ xβΒΉ) : CommMonCat.uliftFunctor.map f = CommMonCat.ofHom (MulEquiv.ulift.symm.toMonoidHom.comp ((CommMonCat.Hom.hom f).comp MulEquiv.ulift.toMonoidHom)) - GrpCat.hom_comp π Mathlib.Algebra.Category.Grp.Basic
{X Y T : GrpCat} (f : X βΆ Y) (g : Y βΆ T) : GrpCat.Hom.hom (CategoryTheory.CategoryStruct.comp f g) = (GrpCat.Hom.hom g).comp (GrpCat.Hom.hom f) - GrpCat.ofHom_comp π Mathlib.Algebra.Category.Grp.Basic
{X Y Z : Type u} [Group X] [Group Y] [Group Z] (f : X β* Y) (g : Y β* Z) : GrpCat.ofHom (g.comp f) = CategoryTheory.CategoryStruct.comp (GrpCat.ofHom f) (GrpCat.ofHom g) - CommGrpCat.hom_comp π Mathlib.Algebra.Category.Grp.Basic
{X Y T : CommGrpCat} (f : X βΆ Y) (g : Y βΆ T) : CommGrpCat.Hom.hom (CategoryTheory.CategoryStruct.comp f g) = (CommGrpCat.Hom.hom g).comp (CommGrpCat.Hom.hom f) - CommGrpCat.ofHom_comp π Mathlib.Algebra.Category.Grp.Basic
{X Y Z : Type u} [CommGroup X] [CommGroup Y] [CommGroup Z] (f : X β* Y) (g : Y β* Z) : CommGrpCat.ofHom (g.comp f) = CategoryTheory.CategoryStruct.comp (CommGrpCat.ofHom f) (CommGrpCat.ofHom g) - GrpCat.uliftFunctor_map π Mathlib.Algebra.Category.Grp.Basic
{xβ xβΒΉ : GrpCat} (f : xβ βΆ xβΒΉ) : GrpCat.uliftFunctor.map f = GrpCat.ofHom (MulEquiv.ulift.symm.toMonoidHom.comp ((GrpCat.Hom.hom f).comp MulEquiv.ulift.toMonoidHom)) - CommGrpCat.uliftFunctor_map π Mathlib.Algebra.Category.Grp.Basic
{xβ xβΒΉ : CommGrpCat} (f : xβ βΆ xβΒΉ) : CommGrpCat.uliftFunctor.map f = CommGrpCat.ofHom (MulEquiv.ulift.symm.toMonoidHom.comp ((CommGrpCat.Hom.hom f).comp MulEquiv.ulift.toMonoidHom)) - MonoidHom.comp_noncommPiCoprod π Mathlib.GroupTheory.NoncommPiCoprod
{M : Type u_1} [Monoid M] {ΞΉ : Type u_2} [Fintype ΞΉ] {N : ΞΉ β Type u_3} [(i : ΞΉ) β Monoid (N i)] (Ο : (i : ΞΉ) β N i β* M) {hcomm : Pairwise fun i j => β (x : N i) (y : N j), Commute ((Ο i) x) ((Ο j) y)} {P : Type u_4} [Monoid P] {f : M β* P} (hcomm' : Pairwise fun i j => β (x : N i) (y : N j), Commute ((f.comp (Ο i)) x) ((f.comp (Ο j)) y) := β―) : f.comp (MonoidHom.noncommPiCoprod Ο hcomm) = MonoidHom.noncommPiCoprod (fun i => f.comp (Ο i)) hcomm' - CategoryTheory.Discrete.monoidalFunctorComp π Mathlib.CategoryTheory.Monoidal.Discrete
{M : Type u} [Monoid M] {N : Type u'} [Monoid N] {K : Type u} [Monoid K] (F : M β* N) (G : N β* K) : (CategoryTheory.Discrete.monoidalFunctor F).comp (CategoryTheory.Discrete.monoidalFunctor G) β CategoryTheory.Discrete.monoidalFunctor (G.comp F) - CategoryTheory.Discrete.monoidalFunctorComp_isMonoidal π Mathlib.CategoryTheory.Monoidal.Discrete
{M : Type u} [Monoid M] {N : Type u'} [Monoid N] {K : Type u} [Monoid K] (F : M β* N) (G : N β* K) : CategoryTheory.NatTrans.IsMonoidal (CategoryTheory.Discrete.monoidalFunctorComp F G).hom - Submonoid.LocalizationMap.AwayMap.lift_comp π Mathlib.GroupTheory.MonoidLocalization.Away
{M : Type u_1} [CommMonoid M] {N : Type u_2} [CommMonoid N] {P : Type u_3} [CommMonoid P] {g : M β* P} (x : M) (F : Submonoid.LocalizationMap.AwayMap x N) (hg : IsUnit (g x)) : (Submonoid.LocalizationMap.AwayMap.lift x F hg).comp βF = g - CategoryTheory.IsMonHom.monoidHom_comp π Mathlib.CategoryTheory.Monoidal.Cartesian.Mon
{C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.CartesianMonoidalCategory C] {M N O X : C} [CategoryTheory.MonObj M] [CategoryTheory.MonObj N] [CategoryTheory.MonObj O] (f : M βΆ N) (g : N βΆ O) [CategoryTheory.IsMonHom f] [CategoryTheory.IsMonHom g] : CategoryTheory.IsMonHom.monoidHom (CategoryTheory.CategoryStruct.comp f g) X = (CategoryTheory.IsMonHom.monoidHom g X).comp (CategoryTheory.IsMonHom.monoidHom f X) - CommGrpCat.coyonedaType_obj_map π Mathlib.Algebra.Category.Grp.Yoneda
(X : Type uα΅α΅) {Xβ Yβ : CommGrpCat} (f : Xβ βΆ Yβ) : (CommGrpCat.coyonedaType.obj X).map f = CommGrpCat.ofHom (MonoidHom.pi fun i => (CommGrpCat.Hom.hom f).comp (Pi.evalMonoidHom (fun a => βXβ) i)) - CommGrpCat.coyonedaType_map_app π Mathlib.Algebra.Category.Grp.Yoneda
{Xβ Yβ : Type uα΅α΅} (f : Xβ βΆ Yβ) (G : CommGrpCat) : (CommGrpCat.coyonedaType.map f).app G = CommGrpCat.ofHom (MonoidHom.pi fun i => Pi.evalMonoidHom (fun a => βG) ((CategoryTheory.ConcreteCategory.hom f.unop) i)) - MonoidHom.ker_eq_bot_of_cancel π Mathlib.Algebra.Category.Grp.EpiMono
{A : Type u} {B : Type v} [Group A] [Group B] {f : A β* B} (h : β (u v : β₯f.ker β* A), f.comp u = f.comp v β u = v) : f.ker = β₯ - MonoidHom.range_eq_top_of_cancel π Mathlib.Algebra.Category.Grp.EpiMono
{A : Type u} {B : Type v} [CommGroup A] [CommGroup B] {f : A β* B} (h : β (u v : B β* B β§Έ f.range), u.comp f = v.comp f β u = v) : f.range = β€ - GrpCat.shrinkFunctor_map π Mathlib.Algebra.Category.Grp.Shrink
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Functor C GrpCat) [β (X : C), Small.{w, w'} β(F.obj X)] {X Y : C} (f : X βΆ Y) : (GrpCat.shrinkFunctor.{w, w', v, u} F).map f = GrpCat.ofHom ((Shrink.mulEquiv.symm.toMonoidHom.comp (GrpCat.Hom.hom (F.map f))).comp Shrink.mulEquiv.toMonoidHom) - GrpCat.shrinkFunctorMap_app π Mathlib.Algebra.Category.Grp.Shrink
{C : Type u} [CategoryTheory.Category.{v, u} C] {F G : CategoryTheory.Functor C GrpCat} (Ο : F βΆ G) [β (X : C), Small.{w, w'} β(F.obj X)] [β (X : C), Small.{w, w'} β(G.obj X)] (X : C) : (GrpCat.shrinkFunctorMap Ο).app X = GrpCat.ofHom ((Shrink.mulEquiv.symm.toMonoidHom.comp (GrpCat.Hom.hom (Ο.app X))).comp Shrink.mulEquiv.toMonoidHom) - Matrix.GeneralLinearGroup.map_comp π Mathlib.LinearAlgebra.Matrix.GeneralLinearGroup.Defs
{n : Type u} [DecidableEq n] [Fintype n] {R : Type v} [CommRing R] {S : Type u_1} {T : Type u_2} [CommRing S] [CommRing T] (f : T β+* R) (g : R β+* S) : Matrix.GeneralLinearGroup.map (g.comp f) = (Matrix.GeneralLinearGroup.map g).comp (Matrix.GeneralLinearGroup.map f) - Matrix.GeneralLinearGroup.map_comp_apply π Mathlib.LinearAlgebra.Matrix.GeneralLinearGroup.Defs
{n : Type u} [DecidableEq n] [Fintype n] {R : Type v} [CommRing R] {S : Type u_1} {T : Type u_2} [CommRing S] [CommRing T] (f : T β+* R) (g : R β+* S) (x : GL n T) : ((Matrix.GeneralLinearGroup.map g).comp (Matrix.GeneralLinearGroup.map f)) x = (Matrix.GeneralLinearGroup.map g) ((Matrix.GeneralLinearGroup.map f) x) - WithOne.mapMulHom_comp π Mathlib.Algebra.Group.WithOne.Basic
{Ξ± : Type u} {Ξ² : Type v} {Ξ³ : Type w} [Mul Ξ±] [Mul Ξ²] [Mul Ξ³] (f : Ξ± ββ* Ξ²) (g : Ξ² ββ* Ξ³) : WithOne.mapMulHom (g.comp f) = (WithOne.mapMulHom g).comp (WithOne.mapMulHom f) - MonCat.shrinkFunctor_map π Mathlib.Algebra.Category.MonCat.Shrink
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Functor C MonCat) [β (X : C), Small.{w, w'} β(F.obj X)] {X Y : C} (f : X βΆ Y) : (MonCat.shrinkFunctor.{w, w', v, u} F).map f = MonCat.ofHom ((Shrink.mulEquiv.symm.toMonoidHom.comp (MonCat.Hom.hom (F.map f))).comp Shrink.mulEquiv.toMonoidHom) - MonCat.shrinkFunctorMap_app π Mathlib.Algebra.Category.MonCat.Shrink
{C : Type u} [CategoryTheory.Category.{v, u} C] {F G : CategoryTheory.Functor C MonCat} (Ο : F βΆ G) [β (X : C), Small.{w, w'} β(F.obj X)] [β (X : C), Small.{w, w'} β(G.obj X)] (X : C) : (MonCat.shrinkFunctorMap Ο).app X = MonCat.ofHom ((Shrink.mulEquiv.symm.toMonoidHom.comp (MonCat.Hom.hom (Ο.app X))).comp Shrink.mulEquiv.toMonoidHom) - CommMonCat.coyonedaType_obj_map π Mathlib.Algebra.Category.MonCat.Yoneda
(X : Type uα΅α΅) {Xβ Yβ : CommMonCat} (f : Xβ βΆ Yβ) : (CommMonCat.coyonedaType.obj X).map f = CommMonCat.ofHom (MonoidHom.pi fun i => (CommMonCat.Hom.hom f).comp (Pi.evalMonoidHom (fun a => βXβ) i)) - CommMonCat.coyonedaType_map_app π Mathlib.Algebra.Category.MonCat.Yoneda
{Xβ Yβ : Type uα΅α΅} (f : Xβ βΆ Yβ) (N : CommMonCat) : (CommMonCat.coyonedaType.map f).app N = CommMonCat.ofHom (MonoidHom.pi fun i => Pi.evalMonoidHom (fun a => βN) ((CategoryTheory.ConcreteCategory.hom f.unop) i)) - MonoidHom.injective_of_surjective_of_injective_of_right_exact π Mathlib.Algebra.FiveLemma
{Mβ : Type u_1} {Mβ : Type u_2} {Mβ : Type u_3} {Nβ : Type u_6} {Nβ : Type u_7} {Nβ : Type u_8} [Group Mβ] [Group Mβ] [Group Mβ] [Group Nβ] [Group Nβ] [Group Nβ] (fβ : Mβ β* Mβ) (fβ : Mβ β* Mβ) (gβ : Nβ β* Nβ) (gβ : Nβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hfβ : Function.MulExact βfβ βfβ) (hgβ : Function.MulExact βgβ βgβ) (hiβ : Function.Surjective βiβ) (hiβ : Function.Injective βiβ) (hfβ : Function.Surjective βfβ) : Function.Injective βiβ - MonoidHom.surjective_of_surjective_of_injective_of_left_exact π Mathlib.Algebra.FiveLemma
{Mβ : Type u_1} {Mβ : Type u_2} {Mβ : Type u_3} {Nβ : Type u_6} {Nβ : Type u_7} {Nβ : Type u_8} [Group Mβ] [Group Mβ] [Group Mβ] [Group Nβ] [Group Nβ] [Group Nβ] (fβ : Mβ β* Mβ) (fβ : Mβ β* Mβ) (gβ : Nβ β* Nβ) (gβ : Nβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hfβ : Function.MulExact βfβ βfβ) (hgβ : Function.MulExact βgβ βgβ) (hiβ : Function.Surjective βiβ) (hiβ : Function.Injective βiβ) (hgβ : Function.Injective βgβ) : Function.Surjective βiβ - MonoidHom.bijective_of_bijective_of_injective_of_left_exact π Mathlib.Algebra.FiveLemma
{Mβ : Type u_1} {Mβ : Type u_2} {Mβ : Type u_3} {Nβ : Type u_6} {Nβ : Type u_7} {Nβ : Type u_8} [Group Mβ] [Group Mβ] [Group Mβ] [Group Nβ] [Group Nβ] [Group Nβ] (fβ : Mβ β* Mβ) (fβ : Mβ β* Mβ) (gβ : Nβ β* Nβ) (gβ : Nβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hfβ : Function.MulExact βfβ βfβ) (hgβ : Function.MulExact βgβ βgβ) (hiβ : Function.Bijective βiβ) (hiβ : Function.Injective βiβ) (hfβ : Function.Injective βfβ) (hgβ : Function.Injective βgβ) : Function.Bijective βiβ - MonoidHom.bijective_of_surjective_of_bijective_of_right_exact π Mathlib.Algebra.FiveLemma
{Mβ : Type u_1} {Mβ : Type u_2} {Mβ : Type u_3} {Nβ : Type u_6} {Nβ : Type u_7} {Nβ : Type u_8} [Group Mβ] [Group Mβ] [Group Mβ] [Group Nβ] [Group Nβ] [Group Nβ] (fβ : Mβ β* Mβ) (fβ : Mβ β* Mβ) (gβ : Nβ β* Nβ) (gβ : Nβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hfβ : Function.MulExact βfβ βfβ) (hgβ : Function.MulExact βgβ βgβ) (hiβ : Function.Surjective βiβ) (hiβ : Function.Bijective βiβ) (hfβ : Function.Surjective βfβ) (hgβ : Function.Surjective βgβ) : Function.Bijective βiβ - MonoidHom.injective_of_surjective_of_injective_of_injective π Mathlib.Algebra.FiveLemma
{Mβ : Type u_1} {Mβ : Type u_2} {Mβ : Type u_3} {Mβ : Type u_4} {Nβ : Type u_6} {Nβ : Type u_7} {Nβ : Type u_8} {Nβ : Type u_9} [Group Mβ] [Group Mβ] [Group Mβ] [Group Mβ] [Group Nβ] [Group Nβ] [Group Nβ] [Group Nβ] (fβ : Mβ β* Mβ) (fβ : Mβ β* Mβ) (fβ : Mβ β* Mβ) (gβ : Nβ β* Nβ) (gβ : Nβ β* Nβ) (gβ : Nβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hfβ : Function.MulExact βfβ βfβ) (hfβ : Function.MulExact βfβ βfβ) (hgβ : Function.MulExact βgβ βgβ) (hiβ : Function.Surjective βiβ) (hiβ : Function.Injective βiβ) (hiβ : Function.Injective βiβ) : Function.Injective βiβ - MonoidHom.surjective_of_surjective_of_surjective_of_injective π Mathlib.Algebra.FiveLemma
{Mβ : Type u_1} {Mβ : Type u_2} {Mβ : Type u_3} {Mβ : Type u_4} {Nβ : Type u_6} {Nβ : Type u_7} {Nβ : Type u_8} {Nβ : Type u_9} [Group Mβ] [Group Mβ] [Group Mβ] [Group Mβ] [Group Nβ] [Group Nβ] [Group Nβ] [Group Nβ] (fβ : Mβ β* Mβ) (fβ : Mβ β* Mβ) (fβ : Mβ β* Mβ) (gβ : Nβ β* Nβ) (gβ : Nβ β* Nβ) (gβ : Nβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hfβ : Function.MulExact βfβ βfβ) (hgβ : Function.MulExact βgβ βgβ) (hgβ : Function.MulExact βgβ βgβ) (hiβ : Function.Surjective βiβ) (hiβ : Function.Surjective βiβ) (hiβ : Function.Injective βiβ) : Function.Surjective βiβ - MonoidHom.bijective_of_surjective_of_bijective_of_bijective_of_injective π Mathlib.Algebra.FiveLemma
{Mβ : Type u_1} {Mβ : Type u_2} {Mβ : Type u_3} {Mβ : Type u_4} {Mβ : Type u_5} {Nβ : Type u_6} {Nβ : Type u_7} {Nβ : Type u_8} {Nβ : Type u_9} {Nβ : Type u_10} [Group Mβ] [Group Mβ] [Group Mβ] [Group Mβ] [Group Mβ ] [Group Nβ] [Group Nβ] [Group Nβ] [Group Nβ] [Group Nβ ] (fβ : Mβ β* Mβ) (fβ : Mβ β* Mβ) (fβ : Mβ β* Mβ) (fβ : Mβ β* Mβ ) (gβ : Nβ β* Nβ) (gβ : Nβ β* Nβ) (gβ : Nβ β* Nβ) (gβ : Nβ β* Nβ ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ) (iβ : Mβ β* Nβ ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hcβ : gβ.comp iβ = iβ.comp fβ) (hcβ : gβ.comp iβ = iβ .comp fβ) (hfβ : Function.MulExact βfβ βfβ) (hfβ : Function.MulExact βfβ βfβ) (hfβ : Function.MulExact βfβ βfβ) (hgβ : Function.MulExact βgβ βgβ) (hgβ : Function.MulExact βgβ βgβ) (hgβ : Function.MulExact βgβ βgβ) (hiβ : Function.Surjective βiβ) (hiβ : Function.Bijective βiβ) (hiβ : Function.Bijective βiβ) (hiβ : Function.Injective βiβ ) : Function.Bijective βiβ - IsMulIndecomposable.image_baseOf_inv_comp_eq π Mathlib.Algebra.Group.Irreducible.Indecomposable
{ΞΉ : Type u_1} {G : Type u_3} {S : Type u_4} [CommGroup G] [LinearOrder S] [InvolutiveInv ΞΉ] [CommGroup S] [IsOrderedMonoid S] (v : ΞΉ β G) (hv_inv : β (i : ΞΉ), v iβ»ΒΉ = (v i)β»ΒΉ) (f : G β* S) : v '' IsMulIndecomposable.baseOf v (invMonoidHom.comp f) = βinvMonoidHom β v '' IsMulIndecomposable.baseOf v f - LinearMap.detAux_def π Mathlib.LinearAlgebra.Determinant
{M : Type u_7} [AddCommGroup M] {ΞΉ : Type u_8} [DecidableEq ΞΉ] [Fintype ΞΉ] {A : Type u_9} [CommRing A] [Module A M] : LinearMap.detAux = Trunc.lift (fun b => Matrix.detMonoidHom.comp β(LinearMap.toMatrixAlgEquiv b)) β― - IsScalarTower.AlgEquiv.restrictNormalHom_comp π Mathlib.FieldTheory.Normal.Defs
(F : Type u_6) (Kβ : Type u_7) (Kβ : Type u_8) (Kβ : Type u_9) [Field F] [Field Kβ] [Field Kβ] [Field Kβ] [Algebra F Kβ] [Algebra F Kβ] [Algebra F Kβ] [Algebra Kβ Kβ] [Algebra Kβ Kβ] [Algebra Kβ Kβ] [IsScalarTower F Kβ Kβ] [IsScalarTower F Kβ Kβ] [IsScalarTower F Kβ Kβ] [IsScalarTower Kβ Kβ Kβ] [Normal F Kβ] [Normal F Kβ] : AlgEquiv.restrictNormalHom Kβ = (AlgEquiv.restrictNormalHom Kβ).comp (AlgEquiv.restrictNormalHom Kβ) - Representation.ofQuotient π Mathlib.RepresentationTheory.Basic
{k : Type u_1} {G : Type u_2} {V : Type u_3} [Semiring k] [Group G] [AddCommMonoid V] [Module k V] (Ο : Representation k G V) (S : Subgroup G) [S.Normal] [Representation.IsTrivial (MonoidHom.comp Ο S.subtype)] : Representation k (G β§Έ S) V - Representation.apply_eq_of_coe_eq π Mathlib.RepresentationTheory.Basic
{k : Type u_1} {G : Type u_2} {V : Type u_3} [Semiring k] [Group G] [AddCommMonoid V] [Module k V] (Ο : Representation k G V) (S : Subgroup G) [Representation.IsTrivial (MonoidHom.comp Ο S.subtype)] (g h : G) (hgh : βg = βh) : Ο g = Ο h - Representation.ofQuotient_coe_apply π Mathlib.RepresentationTheory.Basic
{k : Type u_1} {G : Type u_2} {V : Type u_3} [Semiring k] [Group G] [AddCommMonoid V] [Module k V] (Ο : Representation k G V) (S : Subgroup G) [S.Normal] [Representation.IsTrivial (MonoidHom.comp Ο S.subtype)] (g : G) (x : V) : ((Ο.ofQuotient S) βg) x = (Ο g) x - CommRing.Pic.mapRingHom_comp_mapRingHom π Mathlib.RingTheory.PicardGroup
{R : Type u} [CommSemiring R] {S : Type u_7} {T : Type u_8} [CommSemiring S] [CommSemiring T] {f : R β+* S} {g : S β+* T} : (CommRing.Pic.mapRingHom g).comp (CommRing.Pic.mapRingHom f) = CommRing.Pic.mapRingHom (g.comp f) - CommRing.Pic.mapAlgebra_comp_mapAlgebra π Mathlib.RingTheory.PicardGroup
{R : Type u} [CommSemiring R] {A : Type u_5} {B : Type u_6} [CommSemiring A] [CommSemiring B] [Algebra R A] [Algebra R B] [Algebra A B] [IsScalarTower R A B] : (CommRing.Pic.mapAlgebra A B).comp (CommRing.Pic.mapAlgebra R A) = CommRing.Pic.mapAlgebra R B - GroupSeminorm.comp_assoc π Mathlib.Analysis.Normed.Group.Seminorm
{E : Type u_3} {F : Type u_4} {G : Type u_5} [Group E] [Group F] [Group G] (p : GroupSeminorm E) (g : F β* E) (f : G β* F) : p.comp (g.comp f) = (p.comp g).comp f - Unitary.toUnits_comp_map π Mathlib.Algebra.Star.Unitary
{R : Type u_2} {S : Type u_3} [Monoid R] [StarMul R] [Monoid S] [StarMul S] (f : R ββ* S) : Unitary.toUnits.comp (Unitary.map f).toMonoidHom = (Units.map f.toMonoidHom).comp Unitary.toUnits - ValuationSubring.unitsModPrincipalUnitsEquivResidueFieldUnits_comp_quotientGroup_mk π Mathlib.RingTheory.Valuation.ValuationSubring
{K : Type u} [Field K] (A : ValuationSubring K) : (βA.unitsModPrincipalUnitsEquivResidueFieldUnits).comp (QuotientGroup.mk' (A.principalUnitGroup.subgroupOf A.unitGroup)) = A.unitGroupToResidueFieldUnits - SkewMonoidAlgebra.ringHom_ext' π Mathlib.Algebra.SkewMonoidAlgebra.Basic
(k : Type u_1) (G : Type u_2) [Semiring k] [Monoid G] [MulSemiringAction G k] {f g : SkewMonoidAlgebra k G β+* k} (hβ : f.comp SkewMonoidAlgebra.singleOneRingHom = g.comp SkewMonoidAlgebra.singleOneRingHom) (h_of : (βf).comp (SkewMonoidAlgebra.of k G) = (βg).comp (SkewMonoidAlgebra.of k G)) : f = g - SkewMonoidAlgebra.ringHom_ext'_iff π Mathlib.Algebra.SkewMonoidAlgebra.Basic
{k : Type u_1} {G : Type u_2} [Semiring k] [Monoid G] [MulSemiringAction G k] {f g : SkewMonoidAlgebra k G β+* k} : f = g β f.comp SkewMonoidAlgebra.singleOneRingHom = g.comp SkewMonoidAlgebra.singleOneRingHom β§ (βf).comp (SkewMonoidAlgebra.of k G) = (βg).comp (SkewMonoidAlgebra.of k G) - SkewMonoidAlgebra.algHom_ext' π Mathlib.Algebra.SkewMonoidAlgebra.Basic
{k : Type u_1} {G : Type u_2} [Monoid G] [CommSemiring k] {A : Type u_3} [Semiring A] [Algebra k A] [MulSemiringAction G k] [SMulCommClass G k k] β¦Οβ Οβ : SkewMonoidAlgebra k G ββ[k] Aβ¦ (h : (βΟβ).comp (SkewMonoidAlgebra.of k G) = (βΟβ).comp (SkewMonoidAlgebra.of k G)) : Οβ = Οβ - SkewMonoidAlgebra.algHom_ext'_iff π Mathlib.Algebra.SkewMonoidAlgebra.Basic
{k : Type u_1} {G : Type u_2} [Monoid G] [CommSemiring k] {A : Type u_3} [Semiring A] [Algebra k A] [MulSemiringAction G k] [SMulCommClass G k k] {Οβ Οβ : SkewMonoidAlgebra k G ββ[k] A} : Οβ = Οβ β (βΟβ).comp (SkewMonoidAlgebra.of k G) = (βΟβ).comp (SkewMonoidAlgebra.of k G) - SkewMonoidAlgebra.lift_unique' π Mathlib.Algebra.SkewMonoidAlgebra.Lift
{k : Type u_1} {G : Type u_2} [CommSemiring k] [Monoid G] {A : Type u_4} [Semiring A] [Algebra k A] [MulSemiringAction G k] [SMulCommClass G k k] (F : SkewMonoidAlgebra k G ββ[k] A) : F = (SkewMonoidAlgebra.lift k G A) ((βF).comp (SkewMonoidAlgebra.of k G)) - OpenSubgroup.comap_comap π Mathlib.Topology.Algebra.OpenSubgroup
{G : Type u_1} [Group G] [TopologicalSpace G] {N : Type u_2} [Group N] [TopologicalSpace N] {P : Type u_3} [Group P] [TopologicalSpace P] (K : OpenSubgroup P) (fβ : N β* P) (hfβ : Continuous βfβ) (fβ : G β* N) (hfβ : Continuous βfβ) : OpenSubgroup.comap fβ hfβ (OpenSubgroup.comap fβ hfβ K) = OpenSubgroup.comap (fβ.comp fβ) β― K - MonoidHom.comp_toFunctor π Mathlib.CategoryTheory.SingleObj
{M : Type u} {N : Type v} [Monoid M] [Monoid N] (f : M β* N) {P : Type w} [Monoid P] (g : N β* P) : (g.comp f).toFunctor = f.toFunctor.comp g.toFunctor - CategoryTheory.SingleObj.mapHom_comp π Mathlib.CategoryTheory.SingleObj
{M : Type u} [Monoid M] {N : Type v} [Monoid N] (f : M β* N) {P : Type w} [Monoid P] (g : N β* P) : (CategoryTheory.SingleObj.mapHom M P) (g.comp f) = ((CategoryTheory.SingleObj.mapHom M N) f).comp ((CategoryTheory.SingleObj.mapHom N P) g) - Continuous.of_coeHom_comp π Mathlib.Topology.Algebra.Group.Units
{G : Type u_1} {H : Type u_2} [Group G] [Monoid H] [TopologicalSpace G] [TopologicalSpace H] [ContinuousInv G] {f : G β* HΛ£} (hf : Continuous β((Units.coeHom H).comp f)) : Continuous βf - Matrix.ProjGenLinGroup.map_comp π Mathlib.LinearAlgebra.Matrix.GeneralLinearGroup.Projective
{n : Type u_1} {R : Type u_2} [Fintype n] [DecidableEq n] [CommRing R] {S : Type u_4} {T : Type u_5} [CommRing S] [CommRing T] (f : R β+* S) (g : S β+* T) : Matrix.ProjGenLinGroup.map (g.comp f) = (Matrix.ProjGenLinGroup.map g).comp (Matrix.ProjGenLinGroup.map f) - Matrix.ProjGenLinGroup.lift π Mathlib.LinearAlgebra.Matrix.GeneralLinearGroup.Projective
{n : Type u_1} {R : Type u_2} [Fintype n] [DecidableEq n] [CommRing R] {M : Type u_3} [Monoid M] (f : GL n R β* M) (hf : f.comp (Matrix.GeneralLinearGroup.scalar n) = 1) : Matrix.ProjGenLinGroup n R β* M - Matrix.ProjGenLinGroup.lift_comp_mk π Mathlib.LinearAlgebra.Matrix.GeneralLinearGroup.Projective
{n : Type u_1} {R : Type u_2} [Fintype n] [DecidableEq n] [CommRing R] {M : Type u_3} [Monoid M] {f : GL n R β* M} (hf : f.comp (Matrix.GeneralLinearGroup.scalar n) = 1) : (Matrix.ProjGenLinGroup.lift f hf).comp Matrix.ProjGenLinGroup.mk = f
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