Loogle!
Result
Found 49 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 : Basis ฮน R M) (c : 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 : Basis ฮน R M) (c : 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.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 : Basis ฮน R M) (c : 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 = (โ(TensorProduct.lid R R)).compRight โโ 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 : Basis ฮน R M) (c : 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 : Basis ฮน R M) (c : 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_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 : Basis ฮน R M) (c : 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.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 : Basis ฮน R M) (c : 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.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 : Basis ฮน R M) (c : 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} [CommRing R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] [DecidableEq ฮน] [Fintype ฮน] (b : 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) [CommRing R] [AddCommGroup M] [AddCommGroup 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 - dualTensorHomEquiv.eq_1 ๐ Mathlib.LinearAlgebra.Contraction
(R : Type u_2) (M : Type u_3) (N : Type u_4) [CommRing R] [AddCommGroup M] [AddCommGroup 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) - 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 - dualTensorHomEquivOfBasis_toLinearMap ๐ Mathlib.LinearAlgebra.Contraction
{ฮน : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] [DecidableEq ฮน] [Fintype ฮน] (b : Basis ฮน R M) : โ(dualTensorHomEquivOfBasis b) = dualTensorHom R M N - 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 : Basis m R M) (bN : 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 - 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) - lTensorHomEquivHomLTensor.eq_1 ๐ Mathlib.LinearAlgebra.Contraction
(R : Type u_2) (M : Type u_3) (P : Type u_5) (Q : Type u_6) [CommRing R] [AddCommGroup M] [AddCommGroup P] [AddCommGroup 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) [CommRing R] [AddCommGroup M] [AddCommGroup P] [AddCommGroup 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)) - 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) - dualTensorHomEquivOfBasis_apply ๐ Mathlib.LinearAlgebra.Contraction
{ฮน : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] [DecidableEq ฮน] [Fintype ฮน] (b : Basis ฮน R M) (x : TensorProduct R (Module.Dual R M) N) : (dualTensorHomEquivOfBasis b) x = (dualTensorHom R M N) x - dualTensorHomEquivOfBasis_symm_cancel_right ๐ Mathlib.LinearAlgebra.Contraction
{ฮน : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] [DecidableEq ฮน] [Fintype ฮน] (b : 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} [CommRing R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] [DecidableEq ฮน] [Fintype ฮน] (b : Basis ฮน R M) (x : TensorProduct R (Module.Dual R M) N) : (dualTensorHomEquivOfBasis b).symm ((dualTensorHom R M N) x) = x - 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_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 = let bV := 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 = ((Basis.singleton Unit K).constr K) fun x => โ i, (Basis.ofVectorSpace K V) i โโ[K] (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 : 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 : 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)
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 e0654b0