Base change for the dual of a module #
Module.Dual.congr: equivalent modules have equivalent duals.
If f : Module.Dual R V and Algebra R A, then
Module.Dual.baseChange A fis the element ofModule.Dual A (A ⊗[R] V)deduced by base change.Module.Dual.baseChangeHomis theR-linear map given byModule.Dual.baseChange.IsBaseChange.dual: for finite free modules, taking dual commutes with base change.
def Module.Dual.congr {R : Type u_1} [CommSemiring R] {V : Type u_2} [AddCommMonoid V] [Module R V] {W : Type u_3} [AddCommMonoid W] [Module R W] (e : V ≃ₗ[R] W) :
Equivalent modules have equivalent duals.
Equations
- Module.Dual.congr e = LinearEquiv.congrLeft R R e
Instances For
@[simp]
theorem Module.Dual.congr_apply_apply {R : Type u_1} [CommSemiring R] {V : Type u_2} [AddCommMonoid V] [Module R V] {W : Type u_3} [AddCommMonoid W] [Module R W] (e : V ≃ₗ[R] W) (a✝ : V →ₗ[R] R) (x : W) :
@[simp]
theorem Module.Dual.congr_symm_apply_apply {R : Type u_1} [CommSemiring R] {V : Type u_2} [AddCommMonoid V] [Module R V] {W : Type u_3} [AddCommMonoid W] [Module R W] (e : V ≃ₗ[R] W) (a✝ : W →ₗ[R] R) (x : V) :
def Module.Dual.baseChange {R : Type u_1} [CommSemiring R] {V : Type u_2} [AddCommMonoid V] [Module R V] (A : Type u_4) [CommSemiring A] [Algebra R A] :
LinearMap.baseChange for Module.Dual.
Equations
- Module.Dual.baseChange A = LinearMap.compRight R ↑(TensorProduct.AlgebraTensorModule.rid R A A) ∘ₗ LinearMap.baseChangeHom R A V R
Instances For
@[simp]
theorem Module.Dual.baseChange_apply_tmul {R : Type u_1} [CommSemiring R] {V : Type u_2} [AddCommMonoid V] [Module R V] (A : Type u_4) [CommSemiring A] [Algebra R A] (f : Dual R V) (a : A) (v : V) :
theorem Module.Dual.baseChange_baseChange {R : Type u_1} [CommSemiring R] {V : Type u_2} [AddCommMonoid V] [Module R V] (A : Type u_4) [CommSemiring A] [Algebra R A] {B : Type u_5} [CommSemiring B] [Algebra R B] [Algebra A B] [IsScalarTower R A B] (f : Dual R V) :
(baseChange B) ((baseChange A) f) = (congr (TensorProduct.AlgebraTensorModule.cancelBaseChange R A B B V)).symm ((baseChange B) f)
noncomputable def IsBaseChange.toDual {R : Type u_1} [CommSemiring R] {V : Type u_2} [AddCommMonoid V] [Module R V] {W : Type u_3} [AddCommMonoid W] [Module R W] {A : Type u_4} [CommSemiring A] [Algebra R A] [Module A W] [IsScalarTower R A W] {j : V →ₗ[R] W} (ibc : IsBaseChange A j) :
The base change of an element of the dual.
Equations
- ibc.toDual = ibc.linearMapLeftRightHom (Algebra.linearMap R A)
Instances For
theorem IsBaseChange.toDual_comp_apply {R : Type u_1} [CommSemiring R] {V : Type u_2} [AddCommMonoid V] [Module R V] {W : Type u_3} [AddCommMonoid W] [Module R W] {A : Type u_4} [CommSemiring A] [Algebra R A] [Module A W] [IsScalarTower R A W] {j : V →ₗ[R] W} (ibc : IsBaseChange A j) (f : Module.Dual R V) (v : V) :
theorem IsBaseChange.toDual_apply {R : Type u_1} [CommSemiring R] {V : Type u_2} [AddCommMonoid V] [Module R V] {W : Type u_3} [AddCommMonoid W] [Module R W] {A : Type u_4} [CommSemiring A] [Algebra R A] [Module A W] [IsScalarTower R A W] {j : V →ₗ[R] W} (ibc : IsBaseChange A j) (f : Module.Dual R V) :
noncomputable def IsBaseChange.toDualBaseChange {R : Type u_1} [CommSemiring R] {V : Type u_2} [AddCommMonoid V] [Module R V] {W : Type u_3} [AddCommMonoid W] [Module R W] {A : Type u_4} [CommSemiring A] [Algebra R A] [Module A W] [IsScalarTower R A W] {j : V →ₗ[R] W} (ibc : IsBaseChange A j) [Module.Free R V] [Module.Finite R V] :
The linear equivalence underlying IsBaseChange.dual.
Equations
Instances For
theorem IsBaseChange.toDualBaseChange_tmul {R : Type u_1} [CommSemiring R] {V : Type u_2} [AddCommMonoid V] [Module R V] {W : Type u_3} [AddCommMonoid W] [Module R W] {A : Type u_4} [CommSemiring A] [Algebra R A] [Module A W] [IsScalarTower R A W] {j : V →ₗ[R] W} (ibc : IsBaseChange A j) [Module.Free R V] [Module.Finite R V] (a : A) (f : Module.Dual R V) (v : V) :
theorem IsBaseChange.dual {R : Type u_1} [CommSemiring R] {V : Type u_2} [AddCommMonoid V] [Module R V] {W : Type u_3} [AddCommMonoid W] [Module R W] {A : Type u_4} [CommSemiring A] [Algebra R A] [Module A W] [IsScalarTower R A W] {j : V →ₗ[R] W} (ibc : IsBaseChange A j) [Module.Free R V] [Module.Finite R V] :
IsBaseChange A ibc.toDual