Dual vector spaces #
The dual space of an R-module M is the R-module of linear maps M → R.
Main definitions #
dual R Mdefines the dual space of M over R.- Given a basis for an
R-moduleM,basis.to_dualproduces a map fromMtodual R M. - Given families of vectors
eandε,dual_pair e εstates that these families have the characteristic properties of a basis and a dual. dual_annihilator Wis the submodule ofdual R Mwhere every element annihilatesW.
Main results #
to_dual_equiv: the linear equivalence between the dual module and primal module, given a finite basis.dual_pair.basisanddual_pair.eq_dual: ifeandεform a dual pair,eis a basis andεis its dual basis.quot_equiv_annihilator: the quotient by a subspace is isomorphic to its dual annihilator.
Notation #
We sometimes use V' as local notation for dual K V.
TODO #
Erdös-Kaplansky theorem about the dimension of a dual vector space in case of infinite dimension.
The dual space of an R-module M is the R-module of linear maps M → R.
Equations
- module.dual R M = (M →ₗ[R] R)
Equations
The canonical pairing of a vector space and its algebraic dual.
Equations
Equations
Equations
Maps a module M to the dual of the dual of M. See module.erange_coe and
module.eval_equiv.
Equations
The transposition of linear maps, as a linear map from M →ₗ[R] M' to
dual R M' →ₗ[R] dual R M.
Equations
- module.dual.transpose = (linear_map.llcomp R M M' R).flip
The linear map from a vector space equipped with basis to its dual vector space, taking basis elements to corresponding dual basis elements.
h.to_dual_flip v is the linear map sending w to h.to_dual w v.
Equations
- b.to_dual_flip m = ⇑(b.to_dual.flip) m
A vector space is linearly equivalent to its dual space.
Equations
Maps a basis for V to a basis for the dual space.
Equations
- b.dual_basis = b.map b.to_dual_equiv
A module with a basis is linearly equivalent to the dual of its dual space.
Equations
- b.eval_equiv = linear_equiv.of_bijective (module.dual.eval R M) _ _
simp normal form version of total_dual_basis
A vector space is linearly equivalent to the dual of its dual space.
Equations
- module.eval_equiv K V = linear_equiv.of_bijective (module.dual.eval K V) _ _
- eval : ∀ (i j : ι), ⇑(ε i) (e j) = ite (i = j) 1 0
- total : ∀ {m : M}, (∀ (i : ι), ⇑(ε i) m = 0) → m = 0
- finite : Π (m : M), fintype ↥{i : ι | ⇑(ε i) m ≠ 0}
e and ε have characteristic properties of a basis and its dual
Instances for dual_pair
- dual_pair.has_sizeof_inst
The coefficients of v on the basis e
linear combinations of elements of e.
This is a convenient abbreviation for finsupp.total _ M R e l
Equations
- dual_pair.lc e l = l.sum (λ (i : ι) (a : R), a • e i)
For any m : M n, \sum_{p ∈ Q n} (ε p m) • e p = m
(h : dual_pair e ε).basis shows the family of vectors e forms a basis.
The dual_restrict of a submodule W of M is the linear map from the
dual of M to the dual of W such that the domain of each linear map is
restricted to W.
Equations
The dual_annihilator of a submodule W is the set of linear maps φ such
that φ w = 0 for all w ∈ W.
Equations
The pullback of a submodule in the dual space along the evaluation map.
Equations
Given a subspace W of V and an element of its dual φ, dual_lift W φ is
the natural extension of φ to an element of the dual of V.
That is, dual_lift W φ sends w ∈ W to φ x and x in the complement of W to 0.
Equations
- W.dual_lift = let h : {x // is_compl W x} := classical.indefinite_description (λ (x : submodule K V), is_compl W x) _ in (linear_map.of_is_compl_prod _).comp (linear_map.inl K (module.dual K ↥W) (↥(h.val) →ₗ[K] K))
The quotient by the dual_annihilator of a subspace is isomorphic to the
dual of that subspace.
The natural isomorphism forom the dual of a subspace W to W.dual_lift.range.
The quotient by the dual is isomorphic to its dual annihilator.
The quotient by a subspace is isomorphic to its dual annihilator.
Given a linear map f : M₁ →ₗ[R] M₂, f.dual_map is the linear map between the dual of
M₂ and M₁ such that it maps the functional φ to φ ∘ f.
Equations
- f.dual_map = linear_map.lcomp R R f
The linear_equiv version of linear_map.dual_map.
The canonical linear map from dual M ⊗ dual N to dual (M ⊗ N),
sending f ⊗ g to the composition of tensor_product.map f g with
the natural isomorphism R ⊗ R ≃ R.
Equations
- tensor_product.dual_distrib R M N = ↑(tensor_product.lid R R).comp_right.comp (tensor_product.hom_tensor_hom_map R M N R R)
An inverse to dual_tensor_dual_map given bases.
Equations
- tensor_product.dual_distrib_inv_of_basis b c = finset.univ.sum (λ (i : ι), finset.univ.sum (λ (j : κ), (⇑((linear_map.ring_lmap_equiv_self R ℕ (tensor_product R (module.dual R M) (module.dual R N))).symm) (⇑(b.dual_basis) i ⊗ₜ[R] ⇑(c.dual_basis) j)).comp ((⇑linear_map.applyₗ (⇑c j)).comp ((⇑linear_map.applyₗ (⇑b i)).comp (tensor_product.lcurry R M N R)))))
A linear equivalence between dual M ⊗ dual N and dual (M ⊗ N) given bases for M and N.
It sends f ⊗ g to the composition of tensor_product.map f g with the natural
isomorphism R ⊗ R ≃ R.
Equations
A linear equivalence between dual M ⊗ dual N and dual (M ⊗ N) when M and N are finite free
modules. It sends f ⊗ g to the composition of tensor_product.map f g with the natural
isomorphism R ⊗ R ≃ R.