A basis for SymmetricAlgebra R M
#
Main definitions #
SymmetricAlgebra.equivMvPolynomial b : SymmetricAlgebra R M ≃ₐ[R] MvPolynomial I R
: the isomorphism given by a basisb : Basis I R M
.Basis.symmetricAlgebra b : Basis (I →₀ ℕ) R (SymmetricAlgebra R M)
: the basis on the symmetric algebra given by a basisb : Basis I R M
.
Main results #
SymmetricAlgebra.instFreeModule
: the symmetric algebra overM
is free whenM
is free.SymmetricAlgebra.rank_eq
: the rank ofSymmetricAlgebra R M
whenM
is a nontrivial free module is equal tomax (Module.rank R M) Cardinal.aleph0
.
Implementation notes #
This file closely mirrors the corresponding file for TensorAlgebra
.
noncomputable def
SymmetricAlgebra.equivMvPolynomial
{κ : Type uκ}
{R : Type uR}
{M : Type uM}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
(b : Basis κ R M)
:
SymmetricAlgebra.equivMvPolynomial
gives an algebra isomorphism between the symmetric algebra
over a free module and multivariate polynomials over a basis. This is analogous to
TensorAlgebra.equivFreeAlgebra
.
Equations
- SymmetricAlgebra.equivMvPolynomial b = AlgEquiv.ofAlgHom (SymmetricAlgebra.lift ((b.constr R) MvPolynomial.X)) (MvPolynomial.aeval fun (i : κ) => (SymmetricAlgebra.ι R M) (b i)) ⋯ ⋯
Instances For
@[simp]
theorem
SymmetricAlgebra.equivMvPolynomial_ι_apply
{κ : Type uκ}
{R : Type uR}
{M : Type uM}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
(b : Basis κ R M)
(i : κ)
:
@[simp]
theorem
SymmetricAlgebra.equivMvPolynomial_symm_X
{κ : Type uκ}
{R : Type uR}
{M : Type uM}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
(b : Basis κ R M)
(i : κ)
:
noncomputable def
Basis.symmetricAlgebra
{κ : Type uκ}
{R : Type uR}
{M : Type uM}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
(b : Basis κ R M)
:
Basis (κ →₀ ℕ) R (SymmetricAlgebra R M)
A basis on M
can be lifted to a basis on SymmetricAlgebra R M
.
Equations
Instances For
@[simp]
theorem
Basis.symmetricAlgebra_repr_apply
{κ : Type uκ}
{R : Type uR}
{M : Type uM}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
(b : Basis κ R M)
(a✝ : SymmetricAlgebra R M)
:
b.symmetricAlgebra.repr a✝ = (MvPolynomial.basisMonomials κ R).repr ((SymmetricAlgebra.equivMvPolynomial b) a✝)
instance
SymmetricAlgebra.instModuleFree
{R : Type uR}
{M : Type uM}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[Module.Free R M]
:
Module.Free R (SymmetricAlgebra R M)
SymmetricAlgebra R M
is free when M
is.
instance
SymmetricAlgebra.instNoZeroDivisors
{R : Type uR}
{M : Type uM}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[NoZeroDivisors R]
[Module.Free R M]
:
The SymmetricAlgebra
of a free module over a commutative semiring with no zero-divisors has
no zero-divisors.
instance
SymmetricAlgebra.instIsDomain
{R : Type uR}
{M : Type uM}
[CommRing R]
[AddCommGroup M]
[Module R M]
[IsDomain R]
[Module.Free R M]
:
IsDomain (SymmetricAlgebra R M)
The TensorAlgebra
of a free module over an integral domain is a domain.
theorem
SymmetricAlgebra.rank_eq
{R : Type uR}
{M : Type uM}
[CommRing R]
[AddCommGroup M]
[Module R M]
[Nontrivial M]
[Module.Free R M]
:
Module.rank R (SymmetricAlgebra R M) = Cardinal.lift.{uR, uM} (max (Module.rank R M) Cardinal.aleph0)