File: Mathlib/RingTheory/Polynomial/Opposites.lean

full_name: Polynomial.opRingEquiv
code: /-- Ring isomorphism between `R[X]ᵐᵒᵖ` and `Rᵐᵒᵖ[X]` sending each coefficient of a polynomial
to the corresponding element of the opposite ring. -/
def opRingEquiv (R : Type*) [Semiring R] : R[X]ᵐᵒᵖ ≃+* Rᵐᵒᵖ[X] 
goal: R[X]ᵐᵒᵖ ≃+* Rᵐᵒᵖ[X]

full_name: Polynomial.opRingEquiv_op_monomial
code: @[simp]
theorem opRingEquiv_op_monomial (n : ℕ) (r : R) :
    opRingEquiv R (op (monomial n r : R[X])) = monomial n (op r) 
goal: (Polynomial.opRingEquiv R) (MulOpposite.op ((Polynomial.monomial n) r)) = (Polynomial.monomial n) (MulOpposite.op r)

full_name: Polynomial.opRingEquiv_op_C
code: @[simp]
theorem opRingEquiv_op_C (a : R) : opRingEquiv R (op (C a)) = C (op a) 
goal: (Polynomial.opRingEquiv R) (MulOpposite.op (Polynomial.C a)) = Polynomial.C (MulOpposite.op a)

full_name: Polynomial.opRingEquiv_op_X
code: @[simp]
theorem opRingEquiv_op_X : opRingEquiv R (op (X : R[X])) = X 
goal: (Polynomial.opRingEquiv R) (MulOpposite.op Polynomial.X) = Polynomial.X

full_name: Polynomial.opRingEquiv_op_C_mul_X_pow
code: theorem opRingEquiv_op_C_mul_X_pow (r : R) (n : ℕ) :
    opRingEquiv R (op (C r * X ^ n : R[X])) = C (op r) * X ^ n 
goal: (Polynomial.opRingEquiv R) (MulOpposite.op (Polynomial.C r * Polynomial.X ^ n)) =
  Polynomial.C (MulOpposite.op r) * Polynomial.X ^ n

full_name: Polynomial.opRingEquiv_symm_monomial
code: @[simp]
theorem opRingEquiv_symm_monomial (n : ℕ) (r : Rᵐᵒᵖ) :
    (opRingEquiv R).symm (monomial n r) = op (monomial n (unop r)) 
goal: (Polynomial.opRingEquiv R).symm ((Polynomial.monomial n) r) =
  MulOpposite.op ((Polynomial.monomial n) (MulOpposite.unop r))

full_name: Polynomial.opRingEquiv_symm_C
code: @[simp]
theorem opRingEquiv_symm_C (a : Rᵐᵒᵖ) : (opRingEquiv R).symm (C a) = op (C (unop a)) 
goal: (Polynomial.opRingEquiv R).symm (Polynomial.C a) = MulOpposite.op (Polynomial.C (MulOpposite.unop a))

full_name: Polynomial.opRingEquiv_symm_X
code: @[simp]
theorem opRingEquiv_symm_X : (opRingEquiv R).symm (X : Rᵐᵒᵖ[X]) = op X 
goal: (Polynomial.opRingEquiv R).symm Polynomial.X = MulOpposite.op Polynomial.X

full_name: Polynomial.opRingEquiv_symm_C_mul_X_pow
code: theorem opRingEquiv_symm_C_mul_X_pow (r : Rᵐᵒᵖ) (n : ℕ) :
    (opRingEquiv R).symm (C r * X ^ n : Rᵐᵒᵖ[X]) = op (C (unop r) * X ^ n) 
goal: (Polynomial.opRingEquiv R).symm (Polynomial.C r * Polynomial.X ^ n) =
  MulOpposite.op (Polynomial.C (MulOpposite.unop r) * Polynomial.X ^ n)

full_name: Polynomial.coeff_opRingEquiv
code: @[simp]
theorem coeff_opRingEquiv (p : R[X]ᵐᵒᵖ) (n : ℕ) :
    (opRingEquiv R p).coeff n = op ((unop p).coeff n) 
goal: ((Polynomial.opRingEquiv R) p).coeff n = MulOpposite.op ((MulOpposite.unop p).coeff n)

full_name: Polynomial.support_opRingEquiv
code: @[simp]
theorem support_opRingEquiv (p : R[X]ᵐᵒᵖ) : (opRingEquiv R p).support = (unop p).support 
goal: ((Polynomial.opRingEquiv R) p).support = (MulOpposite.unop p).support

full_name: Polynomial.natDegree_opRingEquiv
code: @[simp]
theorem natDegree_opRingEquiv (p : R[X]ᵐᵒᵖ) : (opRingEquiv R p).natDegree = (unop p).natDegree 
goal: ((Polynomial.opRingEquiv R) p).natDegree = (MulOpposite.unop p).natDegree

full_name: Polynomial.leadingCoeff_opRingEquiv
code: @[simp]
theorem leadingCoeff_opRingEquiv (p : R[X]ᵐᵒᵖ) :
    (opRingEquiv R p).leadingCoeff = op (unop p).leadingCoeff 
goal: ((Polynomial.opRingEquiv R) p).leadingCoeff = MulOpposite.op (MulOpposite.unop p).leadingCoeff