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*
[comm_semiring R]
(the coefficients) -
s : σ →₀ ℕ
, a function fromσ
toℕ
which is zero away from a finite set. This will give rise to a monomial inmv_polynomial σ R
which mathematicians might callX^s
-
a : R
-
i : σ
, with corresponding monomialX i
, often denotedX_i
by mathematicians -
p : mv_polynomial σ 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
- mv_polynomial.punit_alg_equiv R = {to_fun := mv_polynomial.eval₂ polynomial.C (λ (u : punit), polynomial.X), inv_fun := polynomial.eval₂ mv_polynomial.C (mv_polynomial.X punit.star), left_inv := _, right_inv := _, map_mul' := _, map_add' := _, commutes' := _}
If e : A ≃+* B
is an isomorphism of rings, then so is map e
.
If e : A ≃ₐ[R] B
is an isomorphism of R
-algebras, then so is map e
.
The function from multivariable polynomials in a sum of two types, to multivariable polynomials in one of the types, with coefficents in multivariable polynomials in the other type.
See sum_ring_equiv
for the ring isomorphism.
Equations
- mv_polynomial.sum_to_iter R S₁ S₂ = mv_polynomial.eval₂_hom (mv_polynomial.C.comp mv_polynomial.C) (λ (bc : S₁ ⊕ S₂), bc.rec_on mv_polynomial.X (⇑mv_polynomial.C ∘ mv_polynomial.X))
The function from multivariable polynomials in one type, with coefficents in multivariable polynomials in another type, to multivariable polynomials in the sum of the two types.
See sum_ring_equiv
for the ring isomorphism.
Equations
The algebra isomorphism between multivariable polynomials in no variables and the ground ring.
Equations
- mv_polynomial.is_empty_alg_equiv R σ = alg_equiv.of_alg_hom (mv_polynomial.aeval he.elim) (algebra.of_id R (mv_polynomial σ R)) _ _
The ring isomorphism between multivariable polynomials in no variables and the ground ring.
Equations
A helper function for sum_ring_equiv
.
The ring isomorphism between multivariable polynomials in a sum of two types, and multivariable polynomials in one of the types, with coefficents in multivariable polynomials in the other type.
Equations
- mv_polynomial.sum_ring_equiv R S₁ S₂ = mv_polynomial.mv_polynomial_equiv_mv_polynomial R (S₁ ⊕ S₂) S₁ (mv_polynomial S₂ R) (mv_polynomial.sum_to_iter R S₁ S₂) (mv_polynomial.iter_to_sum R S₁ S₂) _ _ _ _
The algebra isomorphism between multivariable polynomials in a sum of two types, and multivariable polynomials in one of the types, with coefficents in multivariable polynomials in the other type.
Equations
- mv_polynomial.sum_alg_equiv R S₁ S₂ = {to_fun := (mv_polynomial.sum_ring_equiv R S₁ S₂).to_fun, inv_fun := (mv_polynomial.sum_ring_equiv R S₁ S₂).inv_fun, left_inv := _, right_inv := _, map_mul' := _, map_add' := _, commutes' := _}
The algebra isomorphism between multivariable polynomials in option S₁
and
polynomials with coefficients in mv_polynomial S₁ R
.
Equations
- mv_polynomial.option_equiv_left R S₁ = alg_equiv.of_alg_hom (mv_polynomial.aeval (λ (o : option S₁), o.elim polynomial.X (λ (s : S₁), ⇑polynomial.C (mv_polynomial.X s)))) (polynomial.aeval_tower (mv_polynomial.rename some) (mv_polynomial.X none)) _ _
The algebra isomorphism between multivariable polynomials in option S₁
and
multivariable polynomials with coefficients in polynomials.
Equations
- mv_polynomial.option_equiv_right R S₁ = alg_equiv.of_alg_hom (mv_polynomial.aeval (λ (o : option S₁), o.elim (⇑mv_polynomial.C polynomial.X) mv_polynomial.X)) (mv_polynomial.aeval_tower (polynomial.aeval (mv_polynomial.X none)) (λ (i : S₁), mv_polynomial.X (some i))) _ _
The algebra isomorphism between multivariable polynomials in fin (n + 1)
and
polynomials over multivariable polynomials in fin n
.