Equivalences between polynomial rings #
This file establishes a number of equivalences between polynomial rings, based on equivalences between the underlying types.
Notation #
As in other polynomial files, we typically use the notation:
σ : Type*
(indexing the variables)R : Type*
[CommSemiring R]
(the coefficients)s : σ →₀ ℕ
, a function fromσ
toℕ
which is zero away from a finite set. This will give rise to a monomial inMvPolynomial σ R
which mathematicians might callX^s
a : R
i : σ
, with corresponding monomialX i
, often denotedX_i
by mathematiciansp : MvPolynomial σ R
Tags #
equivalence, isomorphism, morphism, ring hom, hom
The ring isomorphism between multivariable polynomials in a single variable and polynomials over the ground ring.
Equations
- One or more equations did not get rendered due to their size.
If e : A ≃+* B
is an isomorphism of rings, then so is map e
.
Equations
- MvPolynomial.mapEquiv σ e = { toFun := ⇑(MvPolynomial.map ↑e), invFun := ⇑(MvPolynomial.map ↑e.symm), left_inv := ⋯, right_inv := ⋯, map_mul' := ⋯, map_add' := ⋯ }
If e : A ≃ₐ[R] B
is an isomorphism of R
-algebras, then so is map e
.
Equations
- MvPolynomial.mapAlgEquiv σ e = { toFun := ⇑(MvPolynomial.map ↑e), invFun := (MvPolynomial.mapEquiv σ ↑e).invFun, left_inv := ⋯, right_inv := ⋯, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
The function from multivariable polynomials in a sum of two types, to multivariable polynomials in one of the types, with coefficients in multivariable polynomials in the other type.
See sumRingEquiv
for the ring isomorphism.
Equations
- MvPolynomial.sumToIter R S₁ S₂ = MvPolynomial.eval₂Hom (MvPolynomial.C.comp MvPolynomial.C) fun (bc : S₁ ⊕ S₂) => Sum.recOn bc MvPolynomial.X (⇑MvPolynomial.C ∘ MvPolynomial.X)
The function from multivariable polynomials in one type, with coefficients in multivariable polynomials in another type, to multivariable polynomials in the sum of the two types.
See sumRingEquiv
for the ring isomorphism.
Equations
The algebra isomorphism between multivariable polynomials in no variables and the ground ring.
Equations
- MvPolynomial.isEmptyAlgEquiv R σ = AlgEquiv.ofAlgHom (MvPolynomial.aeval fun (a : σ) => isEmptyElim a) (Algebra.ofId R (MvPolynomial σ R)) ⋯ ⋯
The ring isomorphism between multivariable polynomials in no variables and the ground ring.
Equations
A helper function for sumRingEquiv
.
Equations
- MvPolynomial.mvPolynomialEquivMvPolynomial R S₁ S₂ S₃ f g hfgC hfgX hgfC hgfX = { toFun := ⇑f, invFun := ⇑g, left_inv := ⋯, right_inv := ⋯, map_mul' := ⋯, map_add' := ⋯ }
The ring isomorphism between multivariable polynomials in a sum of two types, and multivariable polynomials in one of the types, with coefficients in multivariable polynomials in the other type.
Equations
- MvPolynomial.sumRingEquiv R S₁ S₂ = MvPolynomial.mvPolynomialEquivMvPolynomial R (S₁ ⊕ S₂) S₁ (MvPolynomial S₂ R) (MvPolynomial.sumToIter R S₁ S₂) (MvPolynomial.iterToSum R S₁ S₂) ⋯ ⋯ ⋯ ⋯
The algebra isomorphism between multivariable polynomials in a sum of two types, and multivariable polynomials in one of the types, with coefficients in multivariable polynomials in the other type.
Equations
- MvPolynomial.sumAlgEquiv R S₁ S₂ = { toEquiv := (MvPolynomial.sumRingEquiv R S₁ S₂).toEquiv, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
The algebra isomorphism between multivariable polynomials in variables S₁
of multivariable
polynomials in variables S₂
and multivariable polynomials in variables S₂
of multivariable
polynomials in variables S₁
.
Equations
- MvPolynomial.commAlgEquiv R S₁ S₂ = (MvPolynomial.sumAlgEquiv R S₁ S₂).symm.trans ((MvPolynomial.renameEquiv R (Equiv.sumComm S₁ S₂)).trans (MvPolynomial.sumAlgEquiv R S₂ S₁))
The algebra isomorphism between multivariable polynomials in Option S₁
and
polynomials with coefficients in MvPolynomial S₁ R
.
Equations
- One or more equations did not get rendered due to their size.
The coefficient of n.some
in the n none
-th coefficient of optionEquivLeft R S₁ f
equals the coefficient of n
in f
The algebra isomorphism between multivariable polynomials in Option S₁
and
multivariable polynomials with coefficients in polynomials.
Equations
- One or more equations did not get rendered due to their size.
The algebra isomorphism between multivariable polynomials in Fin (n + 1)
and
polynomials over multivariable polynomials in Fin n
.
Equations
- MvPolynomial.finSuccEquiv R n = (MvPolynomial.renameEquiv R (finSuccEquiv n)).trans (MvPolynomial.optionEquivLeft R (Fin n))
The coefficient of m
in the i
-th coefficient of finSuccEquiv R n f
equals the
coefficient of Finsupp.cons i m
in f
.
The totalDegree
of a multivariable polynomial p
is at least i
more than the totalDegree
of
the i
th coefficient of finSuccEquiv
applied to p
, if this is nonzero.
Alias of MvPolynomial.support_finSuccEquiv
.
Alias of MvPolynomial.image_support_finSuccEquiv
.
Consider a multivariate polynomial φ
whose variables are indexed by Option σ
,
and suppose that σ ≃ Fin n
.
Then one may view φ
as a polynomial over MvPolynomial (Fin n) R
, by
- renaming the variables via
Option σ ≃ Fin (n+1)
, and then singling out the0
-th variable viaMvPolynomial.finSuccEquiv
; - first viewing it as polynomial over
MvPolynomial σ R
viaMvPolynomial.optionEquivLeft
, and then renaming the variables.
This lemma shows that both constructions are the same.
The embedding of R[X]
into R[Xᵢ]
as an R
-algebra homomorphism.