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.
Instances For
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' := ⋯ }
Instances For
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' := ⋯ }
Instances For
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)
Instances For
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
- MvPolynomial.iterToSum R S₁ S₂ = MvPolynomial.eval₂Hom (MvPolynomial.eval₂Hom MvPolynomial.C (MvPolynomial.X ∘ Sum.inr)) (MvPolynomial.X ∘ Sum.inl)
Instances For
The algebra isomorphism between multivariable polynomials in no variables and the ground ring.
Equations
- MvPolynomial.isEmptyAlgEquiv R σ = AlgEquiv.ofAlgHom (MvPolynomial.aeval fun (a : σ) => he.elim a) (Algebra.ofId R (MvPolynomial σ R)) ⋯ ⋯
Instances For
The ring isomorphism between multivariable polynomials in no variables and the ground ring.
Equations
- MvPolynomial.isEmptyRingEquiv R σ = (MvPolynomial.isEmptyAlgEquiv R σ).toRingEquiv
Instances For
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' := ⋯ }
Instances For
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₂) ⋯ ⋯ ⋯ ⋯
Instances For
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' := ⋯ }
Instances For
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.
Instances For
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.
Instances For
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))
Instances For
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.
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.