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) - 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_2} {N : Type u_5} [DecidableEq ฮน] [Semiring R] [AddCommMonoid N] [Module R N] (p : ฮน โ Submodule R N) (h : Function.Injective โ((DFinsupp.lsum โ) fun i => (p i).subtype)) : iSupIndep p - independent_of_dfinsupp_lsum_injective ๐ Mathlib.LinearAlgebra.DFinsupp
{ฮน : Type u_1} {R : Type u_2} {N : Type u_5} [DecidableEq ฮน] [Semiring R] [AddCommMonoid N] [Module R N] (p : ฮน โ Submodule R N) (h : Function.Injective โ((DFinsupp.lsum โ) fun i => (p i).subtype)) : iSupIndep p - Independent.dfinsupp_lsum_injective ๐ Mathlib.LinearAlgebra.DFinsupp
{ฮน : Type u_1} {R : Type u_2} {N : Type u_5} [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.dfinsupp_lsum_injective ๐ Mathlib.LinearAlgebra.DFinsupp
{ฮน : Type u_1} {R : Type u_2} {N : Type u_5} [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_2} {N : Type u_5} [DecidableEq ฮน] [Ring R] [AddCommGroup N] [Module R N] (p : ฮน โ Submodule R N) : iSupIndep p โ Function.Injective โ((DFinsupp.lsum โ) fun i => (p i).subtype) - independent_iff_dfinsupp_lsum_injective ๐ Mathlib.LinearAlgebra.DFinsupp
{ฮน : Type u_1} {R : Type u_2} {N : Type u_5} [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 : PerfectPairing R M N) {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.toDualLeft (i m)) โโ j = Algebra.linearMap S R โโ g) (hโ : โ (g : Module.Dual S M'), โ n, โS (p.toDualRight (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' - 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.toLinearEquiv = (LinearEquiv.ofInjective (โf) hinj).symm
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 19971e9
serving mathlib revision 4cb993b