Loogle!
Result
Found 19 declarations mentioning Submodule, LinearEquiv, and Function.Injective.
- Submodule.equivMapOfInjective π Mathlib.Algebra.Module.Submodule.Map
{R : Type u_1} {Rβ : Type u_3} {M : Type u_5} {Mβ : Type u_7} [Semiring R] [Semiring Rβ] [AddCommMonoid M] [AddCommMonoid Mβ] [Module R M] [Module Rβ Mβ] {Οββ : R β+* Rβ} {Οββ : Rβ β+* R} [RingHomInvPair Οββ Οββ] [RingHomInvPair Οββ Οββ] {F : Type u_9} [FunLike F M Mβ] [SemilinearMapClass F Οββ M Mβ] (f : F) (i : Function.Injective βf) (p : Submodule R M) : β₯p βββ[Οββ] β₯(Submodule.map f p) - Submodule.coe_equivMapOfInjective_apply π Mathlib.Algebra.Module.Submodule.Map
{R : Type u_1} {Rβ : Type u_3} {M : Type u_5} {Mβ : Type u_7} [Semiring R] [Semiring Rβ] [AddCommMonoid M] [AddCommMonoid Mβ] [Module R M] [Module Rβ Mβ] {Οββ : R β+* Rβ} {Οββ : Rβ β+* R} [RingHomInvPair Οββ Οββ] [RingHomInvPair Οββ Οββ] {F : Type u_9} [FunLike F M Mβ] [SemilinearMapClass F Οββ M Mβ] (f : F) (i : Function.Injective βf) (p : Submodule R M) (x : β₯p) : β((Submodule.equivMapOfInjective f i p) x) = f βx - Submodule.map_equivMapOfInjective_symm_apply π Mathlib.Algebra.Module.Submodule.Map
{R : Type u_1} {Rβ : Type u_3} {M : Type u_5} {Mβ : Type u_7} [Semiring R] [Semiring Rβ] [AddCommMonoid M] [AddCommMonoid Mβ] [Module R M] [Module Rβ Mβ] {Οββ : R β+* Rβ} {Οββ : Rβ β+* R} [RingHomInvPair Οββ Οββ] [RingHomInvPair Οββ Οββ] {F : Type u_9} [FunLike F M Mβ] [SemilinearMapClass F Οββ M Mβ] (f : F) (i : Function.Injective βf) (p : Submodule R M) (x : β₯(Submodule.map f p)) : f β((Submodule.equivMapOfInjective f i p).symm x) = βx - LinearEquiv.ofInjective π Mathlib.Algebra.Module.Submodule.Equiv
{R : Type u_1} {Rβ : Type u_3} {M : Type u_5} {Mβ : Type u_7} [Semiring R] [Semiring Rβ] [AddCommMonoid M] [AddCommMonoid Mβ] {module_M : Module R M} {module_Mβ : Module Rβ Mβ} {Οββ : R β+* Rβ} {Οββ : Rβ β+* R} (f : M βββ[Οββ] Mβ) [RingHomInvPair Οββ Οββ] [RingHomInvPair Οββ Οββ] (h : Function.Injective βf) : M βββ[Οββ] β₯(LinearMap.range f) - LinearEquiv.ofInjective.congr_simp π Mathlib.Algebra.Module.Submodule.Equiv
{R : Type u_1} {Rβ : Type u_3} {M : Type u_5} {Mβ : Type u_7} [Semiring R] [Semiring Rβ] [AddCommMonoid M] [AddCommMonoid Mβ] {module_M : Module R M} {module_Mβ : Module Rβ Mβ} {Οββ : R β+* Rβ} {Οββ : Rβ β+* R} (f : M βββ[Οββ] Mβ) [RingHomInvPair Οββ Οββ] [RingHomInvPair Οββ Οββ] (h : Function.Injective βf) : LinearEquiv.ofInjective f h = LinearEquiv.ofInjective f h - Submodule.comap_equiv_self_of_inj_of_le π Mathlib.Algebra.Module.Submodule.Equiv
{R : Type u_1} {M : Type u_5} {N : Type u_9} [Semiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] {f : M ββ[R] N} {p : Submodule R N} (hf : Function.Injective βf) (h : p β€ LinearMap.range f) : β₯(Submodule.comap f p) ββ[R] β₯p - LinearEquiv.ofInjective_apply π Mathlib.Algebra.Module.Submodule.Equiv
{R : Type u_1} {Rβ : Type u_3} {M : Type u_5} {Mβ : Type u_7} [Semiring R] [Semiring Rβ] [AddCommMonoid M] [AddCommMonoid Mβ] {module_M : Module R M} {module_Mβ : Module Rβ Mβ} {Οββ : R β+* Rβ} {Οββ : Rβ β+* R} (f : M βββ[Οββ] Mβ) [RingHomInvPair Οββ Οββ] [RingHomInvPair Οββ Οββ] {h : Function.Injective βf} (x : M) : β((LinearEquiv.ofInjective f h) x) = f x - LinearEquiv.ofInjective_symm_apply π Mathlib.Algebra.Module.Submodule.Equiv
{R : Type u_1} {Rβ : Type u_3} {M : Type u_5} {Mβ : Type u_7} [Semiring R] [Semiring Rβ] [AddCommMonoid M] [AddCommMonoid Mβ] {module_M : Module R M} {module_Mβ : Module Rβ Mβ} {Οββ : R β+* Rβ} {Οββ : Rβ β+* R} (f : M βββ[Οββ] Mβ) [RingHomInvPair Οββ Οββ] [RingHomInvPair Οββ Οββ] {h : Function.Injective βf} (x : β₯(LinearMap.range f)) : f ((LinearEquiv.ofInjective f h).symm x) = βx - Submodule.comap_equiv_self_of_inj_of_le_apply π Mathlib.Algebra.Module.Submodule.Equiv
{R : Type u_1} {M : Type u_5} {N : Type u_9} [Semiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] {f : M ββ[R] N} {p : Submodule R N} (hf : Function.Injective βf) (h : p β€ LinearMap.range f) (aβ : β₯(Submodule.comap f p)) : (Submodule.comap_equiv_self_of_inj_of_le hf h) aβ = (LinearMap.codRestrict p (f ββ (Submodule.comap f p).subtype) β―) aβ - iSupIndep_of_dfinsupp_lsum_injective π Mathlib.LinearAlgebra.DFinsupp
{ΞΉ : Type u_1} {R : Type u_3} {N : Type u_6} [DecidableEq ΞΉ] [Semiring R] [AddCommMonoid N] [Module R N] (p : ΞΉ β Submodule R N) (h : Function.Injective β((DFinsupp.lsum β) fun i => (p i).subtype)) : iSupIndep p - iSupIndep.dfinsupp_lsum_injective π Mathlib.LinearAlgebra.DFinsupp
{ΞΉ : Type u_1} {R : Type u_3} {N : Type u_6} [DecidableEq ΞΉ] [Ring R] [AddCommGroup N] [Module R N] {p : ΞΉ β Submodule R N} (h : iSupIndep p) : Function.Injective β((DFinsupp.lsum β) fun i => (p i).subtype) - iSupIndep_iff_dfinsupp_lsum_injective π Mathlib.LinearAlgebra.DFinsupp
{ΞΉ : Type u_1} {R : Type u_3} {N : Type u_6} [DecidableEq ΞΉ] [Ring R] [AddCommGroup N] [Module R N] (p : ΞΉ β Submodule R N) : iSupIndep p β Function.Injective β((DFinsupp.lsum β) fun i => (p i).subtype) - lequivProdOfRightSplitExact π Mathlib.Algebra.Category.ModuleCat.Biproducts
{R : Type u} {A : Type uA} {M : Type uM} {B : Type uB} [Ring R] [AddCommGroup A] [AddCommGroup B] [AddCommGroup M] [Module R A] [Module R B] [Module R M] {j : A ββ[R] M} {g : M ββ[R] B} {f : B ββ[R] M} (hj : Function.Injective βj) (exac : LinearMap.range j = LinearMap.ker g) (h : g ββ f = LinearMap.id) : (A Γ B) ββ[R] M - LinearMap.rTensor_injective_iff_subtype π Mathlib.RingTheory.Flat.Basic
{R : Type u} {M : Type v} {N : Type u_1} {P : Type u_2} {Q : Type u_3} [CommSemiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] [AddCommMonoid P] [Module R P] [AddCommMonoid Q] [Module R Q] {f : N ββ[R] P} (hf : Function.Injective βf) (e : P ββ[R] Q) : Function.Injective β(LinearMap.rTensor M f) β Function.Injective β(LinearMap.rTensor M (LinearMap.range (βe ββ f)).subtype) - PerfectPairing.restrictScalars π Mathlib.LinearAlgebra.PerfectPairing.Restrict
{R : Type u_1} {M : Type u_2} {N : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (p : M ββ[R] N ββ[R] R) [p.IsPerfPair] {S : Type u_4} {M' : Type u_5} {N' : Type u_6} [CommRing S] [Algebra S R] [Module S M] [Module S N] [IsScalarTower S R M] [IsScalarTower S R N] [NoZeroSMulDivisors S R] [Nontrivial R] [AddCommGroup M'] [Module S M'] [AddCommGroup N'] [Module S N'] (i : M' ββ[S] M) (j : N' ββ[S] N) (hi : Function.Injective βi) (hj : Function.Injective βj) (hM : Submodule.span R β(LinearMap.range i) = β€) (hN : Submodule.span R β(LinearMap.range j) = β€) (hβ : β (g : Module.Dual S N'), β m, βS (p.toPerfPair (i m)) ββ j = Algebra.linearMap S R ββ g) (hβ : β (g : Module.Dual S M'), β n, βS (p.flip.toPerfPair (j n)) ββ i = Algebra.linearMap S R ββ g) (hp : β (m : M') (n : N'), (p (i m)) (j n) β (algebraMap S R).range) : PerfectPairing S M' N' - LinearMap.IsPerfPair.restrictScalars π Mathlib.LinearAlgebra.PerfectPairing.Restrict
{R : Type u_1} {M : Type u_2} {N : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (p : M ββ[R] N ββ[R] R) [p.IsPerfPair] {S : Type u_4} {M' : Type u_5} {N' : Type u_6} [CommRing S] [Algebra S R] [Module S M] [Module S N] [IsScalarTower S R M] [IsScalarTower S R N] [NoZeroSMulDivisors S R] [Nontrivial R] [AddCommGroup M'] [Module S M'] [AddCommGroup N'] [Module S N'] (i : M' ββ[S] M) (j : N' ββ[S] N) (hi : Function.Injective βi) (hj : Function.Injective βj) (hM : Submodule.span R β(LinearMap.range i) = β€) (hN : Submodule.span R β(LinearMap.range j) = β€) (hβ : β (g : Module.Dual S N'), β m, βS (p.toPerfPair (i m)) ββ j = Algebra.linearMap S R ββ g) (hβ : β (g : Module.Dual S M'), β n, βS (p.flip.toPerfPair (j n)) ββ i = Algebra.linearMap S R ββ g) (hp : β (m : M') (n : N'), (p (i m)) (j n) β (algebraMap S R).range) : (i.restrictScalarsRangeβ j (Algebra.linearMap S R) β― p hp).IsPerfPair - AffineSubspace.linear_equivMapOfInjective π Mathlib.Analysis.Normed.Affine.Isometry
{π : Type u_1} {Vβ : Type u_3} {Vβ : Type u_5} {Pβ : Type u_8} {Pβ : Type u_11} [NormedField π] [SeminormedAddCommGroup Vβ] [NormedSpace π Vβ] [PseudoMetricSpace Pβ] [NormedAddTorsor Vβ Pβ] [SeminormedAddCommGroup Vβ] [NormedSpace π Vβ] [PseudoMetricSpace Pβ] [NormedAddTorsor Vβ Pβ] (E : AffineSubspace π Pβ) [Nonempty β₯E] (Ο : Pβ βα΅[π] Pβ) (hΟ : Function.Injective βΟ) : (E.equivMapOfInjective Ο hΟ).linear = (Submodule.equivMapOfInjective Ο.linear β― E.direction).trans (LinearEquiv.ofEq (Submodule.map Ο.linear E.direction) (AffineSubspace.map Ο E).direction β―) - ContinuousLinearMap.equivRange_symm_toLinearEquiv π Mathlib.Analysis.Normed.Operator.Banach
{π : Type u_1} {π' : Type u_2} [NontriviallyNormedField π] [NontriviallyNormedField π'] {Ο : π β+* π'} {E : Type u_3} [NormedAddCommGroup E] [NormedSpace π E] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace π' F] {Ο' : π' β+* π} [RingHomInvPair Ο Ο'] [RingHomIsometric Ο] [RingHomIsometric Ο'] [CompleteSpace F] [CompleteSpace E] [RingHomInvPair Ο' Ο] {f : E βSL[Ο] F} (hinj : Function.Injective βf) (hclo : IsClosed (Set.range βf)) : (ContinuousLinearMap.equivRange hinj hclo).symm = (LinearEquiv.ofInjective (βf) hinj).symm - Submodule.equivMapOfInjective.congr_simp π Mathlib.LinearAlgebra.LinearDisjoint
{R : Type u_1} {Rβ : Type u_3} {M : Type u_5} {Mβ : Type u_7} [Semiring R] [Semiring Rβ] [AddCommMonoid M] [AddCommMonoid Mβ] [Module R M] [Module Rβ Mβ] {Οββ : R β+* Rβ} {Οββ : Rβ β+* R} [RingHomInvPair Οββ Οββ] [RingHomInvPair Οββ Οββ] {F : Type u_9} [FunLike F M Mβ] [SemilinearMapClass F Οββ M Mβ] (f : F) (i : Function.Injective βf) (p : Submodule R M) : Submodule.equivMapOfInjective f i p = Submodule.equivMapOfInjective f i p
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 ?a
If 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 ?b
By 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_tsum
even though the hypothesisf i < g i
is not the last.
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.
This is Loogle revision 06e7f72
serving mathlib revision 62eeacf