Loogle!
Result
Found 57 declarations mentioning TensorProduct and Module.Dual.
- TensorProduct.dualDistrib π Mathlib.LinearAlgebra.Dual.Lemmas
(R : Type u_1) (M : Type u_3) (N : Type u_4) [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] : TensorProduct R (Module.Dual R M) (Module.Dual R N) ββ[R] Module.Dual R (TensorProduct R M N) - TensorProduct.dualDistribInvOfBasis π Mathlib.LinearAlgebra.Dual.Lemmas
{R : Type u_1} {M : Type u_3} {N : Type u_4} {ΞΉ : Type u_5} {ΞΊ : Type u_6} [DecidableEq ΞΉ] [DecidableEq ΞΊ] [Fintype ΞΉ] [Fintype ΞΊ] [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (b : Module.Basis ΞΉ R M) (c : Module.Basis ΞΊ R N) : Module.Dual R (TensorProduct R M N) ββ[R] TensorProduct R (Module.Dual R M) (Module.Dual R N) - TensorProduct.dualDistribEquivOfBasis π Mathlib.LinearAlgebra.Dual.Lemmas
{R : Type u_1} {M : Type u_3} {N : Type u_4} {ΞΉ : Type u_5} {ΞΊ : Type u_6} [DecidableEq ΞΉ] [DecidableEq ΞΊ] [Fintype ΞΉ] [Fintype ΞΊ] [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (b : Module.Basis ΞΉ R M) (c : Module.Basis ΞΊ R N) : TensorProduct R (Module.Dual R M) (Module.Dual R N) ββ[R] Module.Dual R (TensorProduct R M N) - TensorProduct.dualDistribEquiv π Mathlib.LinearAlgebra.Dual.Lemmas
(R : Type u_1) (M : Type u_3) (N : Type u_4) [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] [Module.Finite R M] [Module.Finite R N] [Module.Free R M] [Module.Free R N] : TensorProduct R (Module.Dual R M) (Module.Dual R N) ββ[R] Module.Dual R (TensorProduct R M N) - TensorProduct.dualDistribInvOfBasis.congr_simp π Mathlib.LinearAlgebra.Dual.Lemmas
{R : Type u_1} {M : Type u_3} {N : Type u_4} {ΞΉ : Type u_5} {ΞΊ : Type u_6} {instβ : DecidableEq ΞΉ} [DecidableEq ΞΉ] {instβΒΉ : DecidableEq ΞΊ} [DecidableEq ΞΊ] [Fintype ΞΉ] [Fintype ΞΊ] [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (b bβ : Module.Basis ΞΉ R M) (e_b : b = bβ) (c cβ : Module.Basis ΞΊ R N) (e_c : c = cβ) : TensorProduct.dualDistribInvOfBasis b c = TensorProduct.dualDistribInvOfBasis bβ cβ - TensorProduct.dualDistribEquiv.eq_1 π Mathlib.LinearAlgebra.Dual.Lemmas
(R : Type u_1) (M : Type u_3) (N : Type u_4) [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] [Module.Finite R M] [Module.Finite R N] [Module.Free R M] [Module.Free R N] : TensorProduct.dualDistribEquiv R M N = TensorProduct.dualDistribEquivOfBasis (Module.Free.chooseBasis R M) (Module.Free.chooseBasis R N) - TensorProduct.AlgebraTensorModule.dualDistrib π Mathlib.LinearAlgebra.Dual.Lemmas
(R : Type u_1) (A : Type u_2) (M : Type u_3) (N : Type u_4) [CommSemiring R] [CommSemiring A] [Algebra R A] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module A M] [Module R N] [IsScalarTower R A M] : TensorProduct R (Module.Dual A M) (Module.Dual R N) ββ[A] Module.Dual A (TensorProduct R M N) - TensorProduct.dualDistrib_dualDistribInvOfBasis_left_inverse π Mathlib.LinearAlgebra.Dual.Lemmas
{R : Type u_1} {M : Type u_3} {N : Type u_4} {ΞΉ : Type u_5} {ΞΊ : Type u_6} [DecidableEq ΞΉ] [DecidableEq ΞΊ] [Fintype ΞΉ] [Fintype ΞΊ] [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (b : Module.Basis ΞΉ R M) (c : Module.Basis ΞΊ R N) : TensorProduct.dualDistrib R M N ββ TensorProduct.dualDistribInvOfBasis b c = LinearMap.id - TensorProduct.dualDistrib.eq_1 π Mathlib.LinearAlgebra.Dual.Lemmas
(R : Type u_1) (M : Type u_3) (N : Type u_4) [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] : TensorProduct.dualDistrib R M N = LinearMap.compRight R β(TensorProduct.lid R R) ββ TensorProduct.homTensorHomMap R M N R R - TensorProduct.dualDistrib_apply π Mathlib.LinearAlgebra.Dual.Lemmas
{R : Type u_1} {M : Type u_3} {N : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (f : Module.Dual R M) (g : Module.Dual R N) (m : M) (n : N) : ((TensorProduct.dualDistrib R M N) (f ββ[R] g)) (m ββ[R] n) = f m * g n - TensorProduct.AlgebraTensorModule.dualDistrib_apply π Mathlib.LinearAlgebra.Dual.Lemmas
{R : Type u_1} (A : Type u_2) {M : Type u_3} {N : Type u_4} [CommSemiring R] [CommSemiring A] [Algebra R A] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module A M] [Module R N] [IsScalarTower R A M] (f : Module.Dual A M) (g : Module.Dual R N) (m : M) (n : N) : ((TensorProduct.AlgebraTensorModule.dualDistrib R A M N) (f ββ[R] g)) (m ββ[R] n) = g n β’ f m - TensorProduct.dualDistrib_dualDistribInvOfBasis_right_inverse π Mathlib.LinearAlgebra.Dual.Lemmas
{R : Type u_1} {M : Type u_3} {N : Type u_4} {ΞΉ : Type u_5} {ΞΊ : Type u_6} [DecidableEq ΞΉ] [DecidableEq ΞΊ] [Fintype ΞΉ] [Fintype ΞΊ] [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (b : Module.Basis ΞΉ R M) (c : Module.Basis ΞΊ R N) : TensorProduct.dualDistribInvOfBasis b c ββ TensorProduct.dualDistrib R M N = LinearMap.id - TensorProduct.dualDistribInvOfBasis_apply π Mathlib.LinearAlgebra.Dual.Lemmas
{R : Type u_1} {M : Type u_3} {N : Type u_4} {ΞΉ : Type u_5} {ΞΊ : Type u_6} [DecidableEq ΞΉ] [DecidableEq ΞΊ] [Fintype ΞΉ] [Fintype ΞΊ] [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (b : Module.Basis ΞΉ R M) (c : Module.Basis ΞΊ R N) (f : Module.Dual R (TensorProduct R M N)) : (TensorProduct.dualDistribInvOfBasis b c) f = β i, β j, f (b i ββ[R] c j) β’ b.dualBasis i ββ[R] c.dualBasis j - TensorProduct.dualDistribEquivOfBasis_symm_apply π Mathlib.LinearAlgebra.Dual.Lemmas
{R : Type u_1} {M : Type u_3} {N : Type u_4} {ΞΉ : Type u_5} {ΞΊ : Type u_6} [DecidableEq ΞΉ] [DecidableEq ΞΊ] [Fintype ΞΉ] [Fintype ΞΊ] [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (b : Module.Basis ΞΉ R M) (c : Module.Basis ΞΊ R N) (a : Module.Dual R (TensorProduct R M N)) : (TensorProduct.dualDistribEquivOfBasis b c).symm a = β x, β x_1, a (b x ββ[R] c x_1) β’ b.coord x ββ[R] c.coord x_1 - TensorProduct.dualDistribEquivOfBasis_apply_apply π Mathlib.LinearAlgebra.Dual.Lemmas
{R : Type u_1} {M : Type u_3} {N : Type u_4} {ΞΉ : Type u_5} {ΞΊ : Type u_6} [DecidableEq ΞΉ] [DecidableEq ΞΊ] [Fintype ΞΉ] [Fintype ΞΊ] [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (b : Module.Basis ΞΉ R M) (c : Module.Basis ΞΊ R N) (aβ : TensorProduct R (Module.Dual R M) (Module.Dual R N)) (aβΒΉ : TensorProduct R M N) : ((TensorProduct.dualDistribEquivOfBasis b c) aβ) aβΒΉ = (TensorProduct.lid R R) (((TensorProduct.homTensorHomMap R M N R R) aβ) aβΒΉ) - TensorProduct.dualDistribInvOfBasis.eq_1 π Mathlib.LinearAlgebra.Dual.Lemmas
{R : Type u_1} {M : Type u_3} {N : Type u_4} {ΞΉ : Type u_5} {ΞΊ : Type u_6} [DecidableEq ΞΉ] [DecidableEq ΞΊ] [Fintype ΞΉ] [Fintype ΞΊ] [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (b : Module.Basis ΞΉ R M) (c : Module.Basis ΞΊ R N) : TensorProduct.dualDistribInvOfBasis b c = β i, β j, (LinearMap.ringLmapEquivSelf R β (TensorProduct R (Module.Dual R M) (Module.Dual R N))).symm (b.dualBasis i ββ[R] c.dualBasis j) ββ LinearMap.applyβ (c j) ββ LinearMap.applyβ (b i) ββ TensorProduct.lcurry R M N R - contractLeft π Mathlib.LinearAlgebra.Contraction
(R : Type u_2) (M : Type u_3) [CommSemiring R] [AddCommMonoid M] [Module R M] : TensorProduct R (Module.Dual R M) M ββ[R] R - contractRight π Mathlib.LinearAlgebra.Contraction
(R : Type u_2) (M : Type u_3) [CommSemiring R] [AddCommMonoid M] [Module R M] : TensorProduct R M (Module.Dual R M) ββ[R] R - dualTensorHom π Mathlib.LinearAlgebra.Contraction
(R : Type u_2) (M : Type u_3) (N : Type u_4) [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] : TensorProduct R (Module.Dual R M) N ββ[R] M ββ[R] N - dualTensorHomEquivOfBasis π Mathlib.LinearAlgebra.Contraction
{ΞΉ : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] [DecidableEq ΞΉ] [Fintype ΞΉ] (b : Module.Basis ΞΉ R M) : TensorProduct R (Module.Dual R M) N ββ[R] M ββ[R] N - dualTensorHomEquiv π Mathlib.LinearAlgebra.Contraction
(R : Type u_2) (M : Type u_3) (N : Type u_4) [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] [Module.Free R M] [Module.Finite R M] : TensorProduct R (Module.Dual R M) N ββ[R] M ββ[R] N - dualTensorHomEquivOfBasis.congr_simp π Mathlib.LinearAlgebra.Contraction
{ΞΉ : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] {instβ : DecidableEq ΞΉ} [DecidableEq ΞΉ] [Fintype ΞΉ] (b bβ : Module.Basis ΞΉ R M) (e_b : b = bβ) : dualTensorHomEquivOfBasis b = dualTensorHomEquivOfBasis bβ - dualTensorHomEquiv.eq_1 π Mathlib.LinearAlgebra.Contraction
(R : Type u_2) (M : Type u_3) (N : Type u_4) [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] [Module.Free R M] [Module.Finite R M] : dualTensorHomEquiv R M N = dualTensorHomEquivOfBasis (Module.Free.chooseBasis R M) - dualTensorHomEquivOfBasis_toLinearMap π Mathlib.LinearAlgebra.Contraction
{ΞΉ : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] [DecidableEq ΞΉ] [Fintype ΞΉ] (b : Module.Basis ΞΉ R M) : β(dualTensorHomEquivOfBasis b) = dualTensorHom R M N - contractLeft_apply π Mathlib.LinearAlgebra.Contraction
{R : Type u_2} {M : Type u_3} [CommSemiring R] [AddCommMonoid M] [Module R M] (f : Module.Dual R M) (m : M) : (contractLeft R M) (f ββ[R] m) = f m - contractRight_apply π Mathlib.LinearAlgebra.Contraction
{R : Type u_2} {M : Type u_3} [CommSemiring R] [AddCommMonoid M] [Module R M] (f : Module.Dual R M) (m : M) : (contractRight R M) (m ββ[R] f) = f m - dualTensorHom_apply π Mathlib.LinearAlgebra.Contraction
{R : Type u_2} {M : Type u_3} {N : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (f : Module.Dual R M) (m : M) (n : N) : ((dualTensorHom R M N) (f ββ[R] n)) m = f m β’ n - toMatrix_dualTensorHom π Mathlib.LinearAlgebra.Contraction
{R : Type u_2} {M : Type u_3} {N : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] {m : Type u_7} {n : Type u_8} [Fintype m] [Finite n] [DecidableEq m] [DecidableEq n] (bM : Module.Basis m R M) (bN : Module.Basis n R N) (j : m) (i : n) : (LinearMap.toMatrix bM bN) ((dualTensorHom R M N) (bM.coord j ββ[R] bN i)) = Matrix.single i j 1 - dualTensorHomEquivOfBasis_apply π Mathlib.LinearAlgebra.Contraction
{ΞΉ : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] [DecidableEq ΞΉ] [Fintype ΞΉ] (b : Module.Basis ΞΉ R M) (x : TensorProduct R (Module.Dual R M) N) : (dualTensorHomEquivOfBasis b) x = (dualTensorHom R M N) x - lTensorHomEquivHomLTensor.eq_1 π Mathlib.LinearAlgebra.Contraction
(R : Type u_2) (M : Type u_3) (P : Type u_5) (Q : Type u_6) [CommSemiring R] [AddCommMonoid M] [AddCommMonoid P] [AddCommMonoid Q] [Module R M] [Module R P] [Module R Q] [Module.Free R M] [Module.Finite R M] : lTensorHomEquivHomLTensor R M P Q = ((TensorProduct.congr (LinearEquiv.refl R P) (dualTensorHomEquiv R M Q).symm).trans (TensorProduct.leftComm R P (Module.Dual R M) Q)).trans (dualTensorHomEquiv R M (TensorProduct R P Q)) - rTensorHomEquivHomRTensor.eq_1 π Mathlib.LinearAlgebra.Contraction
(R : Type u_2) (M : Type u_3) (P : Type u_5) (Q : Type u_6) [CommSemiring R] [AddCommMonoid M] [AddCommMonoid P] [AddCommMonoid Q] [Module R M] [Module R P] [Module R Q] [Module.Free R M] [Module.Finite R M] : rTensorHomEquivHomRTensor R M P Q = ((TensorProduct.congr (dualTensorHomEquiv R M P).symm (LinearEquiv.refl R Q)).trans (TensorProduct.assoc R (Module.Dual R M) P Q)).trans (dualTensorHomEquiv R M (TensorProduct R P Q)) - dualTensorHomEquivOfBasis_symm_cancel_right π Mathlib.LinearAlgebra.Contraction
{ΞΉ : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] [DecidableEq ΞΉ] [Fintype ΞΉ] (b : Module.Basis ΞΉ R M) (x : M ββ[R] N) : (dualTensorHom R M N) ((dualTensorHomEquivOfBasis b).symm x) = x - dualTensorHomEquivOfBasis_symm_cancel_left π Mathlib.LinearAlgebra.Contraction
{ΞΉ : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] [DecidableEq ΞΉ] [Fintype ΞΉ] (b : Module.Basis ΞΉ R M) (x : TensorProduct R (Module.Dual R M) N) : (dualTensorHomEquivOfBasis b).symm ((dualTensorHom R M N) x) = x - dualTensorHom_prodMap_zero π Mathlib.LinearAlgebra.Contraction
{R : Type u_2} {M : Type u_3} {N : Type u_4} {P : Type u_5} {Q : Type u_6} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [AddCommMonoid Q] [Module R M] [Module R N] [Module R P] [Module R Q] (f : Module.Dual R M) (p : P) : ((dualTensorHom R M P) (f ββ[R] p)).prodMap 0 = (dualTensorHom R (M Γ N) (P Γ Q)) ((f ββ LinearMap.fst R M N) ββ[R] (LinearMap.inl R P Q) p) - zero_prodMap_dualTensorHom π Mathlib.LinearAlgebra.Contraction
{R : Type u_2} {M : Type u_3} {N : Type u_4} {P : Type u_5} {Q : Type u_6} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [AddCommMonoid Q] [Module R M] [Module R N] [Module R P] [Module R Q] (g : Module.Dual R N) (q : Q) : LinearMap.prodMap 0 ((dualTensorHom R N Q) (g ββ[R] q)) = (dualTensorHom R (M Γ N) (P Γ Q)) ((g ββ LinearMap.snd R M N) ββ[R] (LinearMap.inr R P Q) q) - comp_dualTensorHom π Mathlib.LinearAlgebra.Contraction
{R : Type u_2} {M : Type u_3} {N : Type u_4} {P : Type u_5} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [Module R M] [Module R N] [Module R P] (f : Module.Dual R M) (n : N) (g : Module.Dual R N) (p : P) : (dualTensorHom R N P) (g ββ[R] p) ββ (dualTensorHom R M N) (f ββ[R] n) = g n β’ (dualTensorHom R M P) (f ββ[R] p) - map_dualTensorHom π Mathlib.LinearAlgebra.Contraction
{R : Type u_2} {M : Type u_3} {N : Type u_4} {P : Type u_5} {Q : Type u_6} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] [AddCommMonoid Q] [Module R M] [Module R N] [Module R P] [Module R Q] (f : Module.Dual R M) (p : P) (g : Module.Dual R N) (q : Q) : TensorProduct.map ((dualTensorHom R M P) (f ββ[R] p)) ((dualTensorHom R N Q) (g ββ[R] q)) = (dualTensorHom R (TensorProduct R M N) (TensorProduct R P Q)) ((TensorProduct.dualDistrib R M N) (f ββ[R] g) ββ[R] (p ββ[R] q)) - transpose_dualTensorHom π Mathlib.LinearAlgebra.Contraction
{R : Type u_2} {M : Type u_3} [CommSemiring R] [AddCommMonoid M] [Module R M] (f : Module.Dual R M) (m : M) : Module.Dual.transpose ((dualTensorHom R M M) (f ββ[R] m)) = (dualTensorHom R (Module.Dual R M) (Module.Dual R M)) ((Module.Dual.eval R M) m ββ[R] f) - coevaluation π Mathlib.LinearAlgebra.Coevaluation
(K : Type u) [Field K] (V : Type v) [AddCommGroup V] [Module K V] [FiniteDimensional K V] : K ββ[K] TensorProduct K V (Module.Dual K V) - coevaluation.congr_simp π Mathlib.LinearAlgebra.Coevaluation
(K : Type u) [Field K] (V : Type v) [AddCommGroup V] [Module K V] [FiniteDimensional K V] : coevaluation K V = coevaluation K V - coevaluation_apply_one π Mathlib.LinearAlgebra.Coevaluation
(K : Type u) [Field K] (V : Type v) [AddCommGroup V] [Module K V] [FiniteDimensional K V] : (coevaluation K V) 1 = have bV := Module.Basis.ofVectorSpace K V; β i, bV i ββ[K] bV.coord i - coevaluation.eq_1 π Mathlib.LinearAlgebra.Coevaluation
(K : Type u) [Field K] (V : Type v) [AddCommGroup V] [Module K V] [FiniteDimensional K V] : coevaluation K V = ((Module.Basis.singleton Unit K).constr K) fun x => β i, (Module.Basis.ofVectorSpace K V) i ββ[K] (Module.Basis.ofVectorSpace K V).coord i - contractLeft_assoc_coevaluation' π Mathlib.LinearAlgebra.Coevaluation
(K : Type u) [Field K] (V : Type v) [AddCommGroup V] [Module K V] [FiniteDimensional K V] : LinearMap.lTensor V (contractLeft K V) ββ β(TensorProduct.assoc K V (Module.Dual K V) V) ββ LinearMap.rTensor V (coevaluation K V) = β(TensorProduct.rid K V).symm ββ β(TensorProduct.lid K V) - contractLeft_assoc_coevaluation π Mathlib.LinearAlgebra.Coevaluation
(K : Type u) [Field K] (V : Type v) [AddCommGroup V] [Module K V] [FiniteDimensional K V] : LinearMap.rTensor (Module.Dual K V) (contractLeft K V) ββ β(TensorProduct.assoc K (Module.Dual K V) V (Module.Dual K V)).symm ββ LinearMap.lTensor (Module.Dual K V) (coevaluation K V) = β(TensorProduct.lid K (Module.Dual K V)).symm ββ β(TensorProduct.rid K (Module.Dual K V)) - FGModuleCat.FGModuleCatEvaluation_apply' π Mathlib.Algebra.Category.FGModuleCat.Basic
(K : Type u) [Field K] (V : FGModuleCat K) (f : β(FGModuleCat.FGModuleCatDual K V)) (x : βV) : (ModuleCat.Hom.hom (FGModuleCat.FGModuleCatEvaluation K V)) (f ββ[K] x) = f.toFun x - LinearMap.trace_eq_contract_of_basis π Mathlib.LinearAlgebra.Trace
{R : Type u_1} [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] {ΞΉ : Type u_5} [Finite ΞΉ] (b : Module.Basis ΞΉ R M) : LinearMap.trace R M ββ dualTensorHom R M M = contractLeft R M - LinearMap.trace_eq_contract π Mathlib.LinearAlgebra.Trace
(R : Type u_1) [CommRing R] (M : Type u_2) [AddCommGroup M] [Module R M] [Module.Free R M] [Module.Finite R M] : LinearMap.trace R M ββ dualTensorHom R M M = contractLeft R M - LinearMap.trace_eq_contract_of_basis' π Mathlib.LinearAlgebra.Trace
{R : Type u_1} [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] {ΞΉ : Type u_5} [Fintype ΞΉ] [DecidableEq ΞΉ] (b : Module.Basis ΞΉ R M) : LinearMap.trace R M = contractLeft R M ββ β(dualTensorHomEquivOfBasis b).symm - LinearMap.trace_eq_contract' π Mathlib.LinearAlgebra.Trace
(R : Type u_1) [CommRing R] (M : Type u_2) [AddCommGroup M] [Module R M] [Module.Free R M] [Module.Finite R M] : LinearMap.trace R M = contractLeft R M ββ β(dualTensorHomEquiv R M M).symm - LinearMap.trace_eq_contract_apply π Mathlib.LinearAlgebra.Trace
(R : Type u_1) [CommRing R] (M : Type u_2) [AddCommGroup M] [Module R M] [Module.Free R M] [Module.Finite R M] (x : TensorProduct R (Module.Dual R M) M) : (LinearMap.trace R M) ((dualTensorHom R M M) x) = (contractLeft R M) x - Representation.dualTensorHom_comm π Mathlib.RepresentationTheory.Basic
{k : Type u_1} {G : Type u_2} {V : Type u_3} {W : Type u_4} [CommSemiring k] [Group G] [AddCommMonoid V] [Module k V] [AddCommMonoid W] [Module k W] (ΟV : Representation k G V) (ΟW : Representation k G W) (g : G) : dualTensorHom k V W ββ TensorProduct.map (ΟV.dual g) (ΟW g) = (ΟV.linHom ΟW) g ββ dualTensorHom k V W - FDRep.dualTensorIsoLinHom_hom_hom π Mathlib.RepresentationTheory.FDRep
{k G V : Type u} [Field k] [Group G] [AddCommGroup V] [Module k V] [FiniteDimensional k V] (ΟV : Representation k G V) (W : FDRep k G) : (FDRep.dualTensorIsoLinHom ΟV W).hom.hom = ModuleCat.ofHom (dualTensorHom k V βW.V) - Module.Invertible.linearEquivDual π Mathlib.RingTheory.PicardGroup
{R : Type u} {M : Type v} {N : Type u_1} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] (e : TensorProduct R M N ββ[R] R) : M ββ[R] Module.Dual R N - Module.Invertible.linearEquiv π Mathlib.RingTheory.PicardGroup
(R : Type u) (M : Type v) [CommSemiring R] [AddCommMonoid M] [Module R M] [Module.Invertible R M] : TensorProduct R (Module.Dual R M) M ββ[R] R - Module.Invertible.linearEquiv.congr_simp π Mathlib.RingTheory.PicardGroup
(R : Type u) (M : Type v) [CommSemiring R] [AddCommMonoid M] [Module R M] [Module.Invertible R M] : Module.Invertible.linearEquiv R M = Module.Invertible.linearEquiv R M - Module.Invertible.bijective π Mathlib.RingTheory.PicardGroup
{R : Type u} {M : Type v} {instβ : CommSemiring R} {instβΒΉ : AddCommMonoid M} {instβΒ² : Module R M} [self : Module.Invertible R M] : Function.Bijective β(contractLeft R M) - Module.Invertible.mk π Mathlib.RingTheory.PicardGroup
{R : Type u} {M : Type v} [CommSemiring R] [AddCommMonoid M] [Module R M] (bijective : Function.Bijective β(contractLeft R M)) : Module.Invertible R M
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