Documentation

Mathlib.LinearAlgebra.PiTensorProduct.Dual

Tensor products of dual spaces #

Main definitions #

noncomputable def PiTensorProduct.dualDistrib {ι : Type u_1} {R : Type u_2} {M : ιType u_3} [CommSemiring R] [(i : ι) → AddCommMonoid (M i)] [(i : ι) → Module R (M i)] [Finite ι] :
(PiTensorProduct R fun (i : ι) => Module.Dual R (M i)) →ₗ[R] Module.Dual R (PiTensorProduct R fun (i : ι) => M i)

The canonical linear map from ⨂[R] i, Dual R (M i) to Dual R (⨂[R] i, M i), sending ⨂ₜ[R] i, f i to the composition of PiTensorProduct.map f with the linear equivalence ⨂[R] i, R →ₗ R given by multiplication.

Equations
    Instances For
      @[simp]
      theorem PiTensorProduct.dualDistrib_apply {ι : Type u_1} {R : Type u_2} {M : ιType u_3} [CommSemiring R] [(i : ι) → AddCommMonoid (M i)] [(i : ι) → Module R (M i)] [Fintype ι] (f : (i : ι) → Module.Dual R (M i)) (m : (i : ι) → M i) :
      (dualDistrib ((tprod R) fun (i : ι) => f i)) (⨂ₜ[R] (i : ι), m i) = i : ι, (f i) (m i)
      noncomputable def PiTensorProduct.dualDistribInvOfBasis {ι : Type u_1} {R : Type u_2} {κ : ιType u_3} {M : ιType u_4} [CommRing R] [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [Finite ι] [∀ (i : ι), Finite (κ i)] (b : (i : ι) → Module.Basis (κ i) R (M i)) :
      Module.Dual R (PiTensorProduct R fun (i : ι) => M i) →ₗ[R] PiTensorProduct R fun (i : ι) => Module.Dual R (M i)

      An inverse to PiTensorProduct.dualDistrib given bases.

      Equations
        Instances For
          @[simp]
          theorem PiTensorProduct.dualDistribInvOfBasis_apply {ι : Type u_1} {R : Type u_2} {κ : ιType u_3} {M : ιType u_4} [CommRing R] [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [Fintype ι] [(i : ι) → Fintype (κ i)] (b : (i : ι) → Module.Basis (κ i) R (M i)) (f : Module.Dual R (PiTensorProduct R fun (i : ι) => M i)) :
          (dualDistribInvOfBasis b) f = p : (i : ι) → κ i, f (⨂ₜ[R] (i : ι), (b i) (p i)) (tprod R) fun (i : ι) => (b i).dualBasis (p i)
          theorem PiTensorProduct.dualDistrib_dualDistribInvOfBasis_left_inverse {ι : Type u_1} {R : Type u_2} {κ : ιType u_3} {M : ιType u_4} [CommRing R] [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [Finite ι] [∀ (i : ι), Finite (κ i)] (b : (i : ι) → Module.Basis (κ i) R (M i)) :
          theorem PiTensorProduct.dualDistrib_dualDistribInvOfBasis_right_inverse {ι : Type u_1} {R : Type u_2} {κ : ιType u_3} {M : ιType u_4} [CommRing R] [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [Finite ι] [∀ (i : ι), Finite (κ i)] (b : (i : ι) → Module.Basis (κ i) R (M i)) :
          noncomputable def PiTensorProduct.dualDistribEquivOfBasis {ι : Type u_1} {R : Type u_2} {κ : ιType u_3} {M : ιType u_4} [CommRing R] [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [Finite ι] [∀ (i : ι), Finite (κ i)] (b : (i : ι) → Module.Basis (κ i) R (M i)) :
          (PiTensorProduct R fun (i : ι) => Module.Dual R (M i)) ≃ₗ[R] Module.Dual R (PiTensorProduct R fun (i : ι) => M i)

          A linear equivalence between ⨂[R] i, Dual R (M i) and Dual R (⨂[R] i, M i) given bases for all M i. If f : (i : ι) → Dual R (s i), then this equivalence sends ⨂ₜ[R] i, f i to the composition of PiTensorProduct.map f with the natural isomorphism ⨂[R] i, R ≃ R given by multipliccation (constantBaseRingEquiv).

          Equations
            Instances For
              @[simp]
              theorem PiTensorProduct.dualDistribEquivOfBasis_apply_apply {ι : Type u_1} {R : Type u_2} {κ : ιType u_3} {M : ιType u_4} [CommRing R] [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [Finite ι] [∀ (i : ι), Finite (κ i)] (b : (i : ι) → Module.Basis (κ i) R (M i)) (a✝ : PiTensorProduct R fun (i : ι) => Module.Dual R (M i)) (a✝¹ : PiTensorProduct R fun (i : ι) => M i) :
              ((dualDistribEquivOfBasis b) a✝) a✝¹ = (constantBaseRingEquiv ι R) ((piTensorHomMap a✝) a✝¹)
              @[simp]
              theorem PiTensorProduct.dualDistribEquivOfBasis_symm_apply {ι : Type u_1} {R : Type u_2} {κ : ιType u_3} {M : ιType u_4} [CommRing R] [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [Finite ι] [∀ (i : ι), Finite (κ i)] (b : (i : ι) → Module.Basis (κ i) R (M i)) (a : Module.Dual R (PiTensorProduct R fun (i : ι) => M i)) :
              noncomputable def PiTensorProduct.dualDistribEquiv {ι : Type u_1} {R : Type u_2} {M : ιType u_4} [CommRing R] [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [∀ (i : ι), Module.Finite R (M i)] [∀ (i : ι), Module.Free R (M i)] [Finite ι] :
              (PiTensorProduct R fun (i : ι) => Module.Dual R (M i)) ≃ₗ[R] Module.Dual R (PiTensorProduct R fun (i : ι) => M i)

              A linear equivalence between ⨂[R] i, Dual R (M i) and Dual R (⨂[R] i, M i) when all M i are finite free modules. If f : (i : ι) → Dual R (M i), then this equivalence sends ⨂ₜ[R] i, f i to the composition of PiTensorProduct.map f with the natural isomorphism ⨂[R] i, R ≃ R given by multipliccation (constantBaseRingEquiv).

              Equations
                Instances For