Bases of dual vector spaces #
The dual space of an $R$-module $M$ is the $R$-module of $R$-linear maps $M \to R$. This file concerns bases on dual vector spaces.
Main definitions #
- Bases:
Basis.toDual
produces the mapM →ₗ[R] Dual R M
associated to a basis for anR
-moduleM
.Basis.toDualEquiv
is the equivalenceM ≃ₗ[R] Dual R M
associated to a finite basis.Basis.dualBasis
is a basis forDual R M
given a finite basis forM
.Module.DualBases e ε
is the proposition that the familiese
of vectors andε
of dual vectors have the characteristic properties of a basis and a dual.
Main results #
- Bases:
Module.DualBases.basis
andModule.DualBases.coe_basis
: ife
andε
form a dual pair, thene
is a basis.Module.DualBases.coe_dualBasis
: ife
andε
form a dual pair, thenε
is a basis.
def
Basis.toDual
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
:
The linear map from a vector space equipped with basis to its dual vector space, taking basis elements to corresponding dual basis elements.
Instances For
theorem
Basis.toDual_apply
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
(i j : ι)
:
@[simp]
theorem
Basis.toDual_linearCombination_left
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
(f : ι →₀ R)
(i : ι)
:
@[simp]
theorem
Basis.toDual_linearCombination_right
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
(f : ι →₀ R)
(i : ι)
:
theorem
Basis.toDual_apply_left
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
(m : M)
(i : ι)
:
theorem
Basis.toDual_apply_right
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
(i : ι)
(m : M)
:
theorem
Basis.coe_toDual_self
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
(i : ι)
:
def
Basis.toDualFlip
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
(m : M)
:
h.toDual_flip v
is the linear map sending w
to h.toDual w v
.
Equations
- b.toDualFlip m = b.toDual.flip m
Instances For
theorem
Basis.toDualFlip_apply
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
(m₁ m₂ : M)
:
theorem
Basis.toDual_eq_repr
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
(m : M)
(i : ι)
:
theorem
Basis.toDual_eq_equivFun
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
[Finite ι]
(m : M)
(i : ι)
:
theorem
Basis.toDual_injective
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
:
theorem
Basis.toDual_inj
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
(m : M)
(a : b.toDual m = 0)
:
theorem
Basis.toDual_ker
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
:
theorem
Basis.toDual_range
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
[Finite ι]
:
@[simp]
theorem
Basis.sum_dual_apply_smul_coord
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[Fintype ι]
(b : Basis ι R M)
(f : Module.Dual R M)
:
def
Basis.toDualEquiv
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommRing R]
[AddCommGroup M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
[Finite ι]
:
A vector space is linearly equivalent to its dual space.
Equations
Instances For
@[simp]
theorem
Basis.toDualEquiv_apply
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommRing R]
[AddCommGroup M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
[Finite ι]
(m : M)
:
def
Basis.dualBasis
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommRing R]
[AddCommGroup M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
[Finite ι]
:
Basis ι R (Module.Dual R M)
Maps a basis for V
to a basis for the dual space.
Equations
- b.dualBasis = b.map b.toDualEquiv
Instances For
theorem
Basis.linearCombination_dualBasis
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommRing R]
[AddCommGroup M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
[Finite ι]
(f : ι →₀ R)
(i : ι)
:
@[simp]
theorem
Basis.dualBasis_repr
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommRing R]
[AddCommGroup M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
[Finite ι]
(l : Module.Dual R M)
(i : ι)
:
theorem
Basis.dualBasis_apply
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommRing R]
[AddCommGroup M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
[Finite ι]
(i : ι)
(m : M)
:
@[simp]
theorem
Basis.coe_dualBasis
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommRing R]
[AddCommGroup M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
[Finite ι]
:
@[simp]
theorem
Basis.toDual_toDual
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommRing R]
[AddCommGroup M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
[Finite ι]
:
theorem
Basis.dualBasis_equivFun
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommRing R]
[AddCommGroup M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
[Finite ι]
(l : Module.Dual R M)
(i : ι)
:
theorem
Basis.eval_ker
{R : Type uR}
{M : Type uM}
[CommRing R]
[AddCommGroup M]
[Module R M]
{ι : Type u_1}
(b : Basis ι R M)
:
theorem
Basis.eval_range
{R : Type uR}
{M : Type uM}
[CommRing R]
[AddCommGroup M]
[Module R M]
{ι : Type u_1}
[Finite ι]
(b : Basis ι R M)
:
theorem
Basis.dualBasis_coord_toDualEquiv_apply
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommRing R]
[AddCommGroup M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
[Finite ι]
(i : ι)
(f : M)
:
theorem
Basis.coord_toDualEquiv_symm_apply
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommRing R]
[AddCommGroup M]
[Module R M]
[DecidableEq ι]
(b : Basis ι R M)
[Finite ι]
(i : ι)
(f : Module.Dual R M)
:
@[simp]
theorem
Basis.linearCombination_coord
{R : Type uR}
{M : Type uM}
{ι : Type uι}
[CommRing R]
[AddCommGroup M]
[Module R M]
[Finite ι]
(b : Basis ι R M)
(f : ι →₀ R)
(i : ι)
:
simp
normal form version of linearCombination_dualBasis
Try using Set.toFinite
to dispatch a Set.Finite
goal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- tacticUse_finite_instance = Lean.ParserDescr.node `tacticUse_finite_instance 1024 (Lean.ParserDescr.nonReservedSymbol "use_finite_instance" false)
Instances For
structure
Module.DualBases
{R : Type u_1}
{M : Type u_2}
{ι : Type u_3}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
(e : ι → M)
(ε : ι → Dual R M)
:
e
and ε
have characteristic properties of a basis and its dual
Instances For
def
Module.DualBases.coeffs
{R : Type u_1}
{M : Type u_2}
{ι : Type u_3}
[CommRing R]
[AddCommGroup M]
[Module R M]
{e : ι → M}
{ε : ι → Dual R M}
(h : DualBases e ε)
(m : M)
:
The coefficients of v
on the basis e
Equations
Instances For
def
Module.DualBases.lc
{R : Type u_1}
{M : Type u_2}
[CommRing R]
[AddCommGroup M]
[Module R M]
{ι : Type u_4}
(e : ι → M)
(l : ι →₀ R)
:
M
linear combinations of elements of e
.
This is a convenient abbreviation for Finsupp.linearCombination R e l
Equations
- Module.DualBases.lc e l = l.sum fun (i : ι) (a : R) => a • e i
Instances For
theorem
Module.DualBases.lc_def
{R : Type u_1}
{M : Type u_2}
{ι : Type u_3}
[CommRing R]
[AddCommGroup M]
[Module R M]
(e : ι → M)
(l : ι →₀ R)
:
theorem
Module.DualBases.coe_dualBasis
{R : Type u_1}
{M : Type u_2}
{ι : Type u_3}
[CommRing R]
[AddCommGroup M]
[Module R M]
{e : ι → M}
{ε : ι → Dual R M}
(h : DualBases e ε)
[DecidableEq ι]
[Finite ι]
: