Documentation

Mathlib.RingTheory.Polynomial.Opposites

Interactions between R[X] and Rᵐᵒᵖ[X] #

This file contains the basic API for "pushing through" the isomorphism opRingEquiv : R[X]ᵐᵒᵖ ≃+* Rᵐᵒᵖ[X]. It allows going back and forth between a polynomial ring over a semiring and the polynomial ring over the opposite semiring.

Ring isomorphism between R[X]ᵐᵒᵖ and Rᵐᵒᵖ[X] sending each coefficient of a polynomial to the corresponding element of the opposite ring.

Equations
Instances For

    Lemmas to get started, using opRingEquiv R on the various expressions of Finsupp.single: monomial, C a, X, C a * X ^ n.

    @[simp]
    @[simp]
    theorem Polynomial.opRingEquiv_op_C {R : Type u_1} [Semiring R] (a : R) :
    theorem Polynomial.opRingEquiv_op_C_mul_X_pow {R : Type u_1} [Semiring R] (r : R) (n : ) :
    (opRingEquiv R) (MulOpposite.op (C r * X ^ n)) = C (MulOpposite.op r) * X ^ n

    Lemmas to get started, using (opRingEquiv R).symm on the various expressions of Finsupp.single: monomial, C a, X, C a * X ^ n.

    @[simp]

    Lemmas about more global properties of polynomials and opposites.

    @[simp]
    theorem Polynomial.coeff_opRingEquiv {R : Type u_1} [Semiring R] (p : (Polynomial R)ᵐᵒᵖ) (n : ) :
    ((opRingEquiv R) p).coeff n = MulOpposite.op ((MulOpposite.unop p).coeff n)
    @[simp]
    theorem Polynomial.support_opRingEquiv {R : Type u_1} [Semiring R] (p : (Polynomial R)ᵐᵒᵖ) :
    ((opRingEquiv R) p).support = (MulOpposite.unop p).support
    @[simp]
    theorem Polynomial.natDegree_opRingEquiv {R : Type u_1} [Semiring R] (p : (Polynomial R)ᵐᵒᵖ) :
    ((opRingEquiv R) p).natDegree = (MulOpposite.unop p).natDegree
    @[simp]
    theorem Polynomial.leadingCoeff_opRingEquiv {R : Type u_1} [Semiring R] (p : (Polynomial R)ᵐᵒᵖ) :
    ((opRingEquiv R) p).leadingCoeff = MulOpposite.op (MulOpposite.unop p).leadingCoeff