Raw Univariate Polynomial Proofs #
Proofs about operations on raw computable univariate polynomials.
theorem
CompPoly.CPolynomial.Raw.matchSize_size
{Q : Type u_2}
[Semiring Q]
{p q : Raw Q}
:
match Array.matchSize p q 0 with
| (p', snd) => p'.size = max (Array.size p) (Array.size q)
theorem
CompPoly.CPolynomial.Raw.concat_coeff₂
{R : Type u_1}
[Semiring R]
(p q : Raw R)
(i : ℕ)
:
i ≥ Array.size p → (p ++ q).coeff i = q.coeff (i - Array.size p)
theorem
CompPoly.CPolynomial.Raw.add_equiv_raw
{R : Type u_1}
[Semiring R]
[BEq R]
[LawfulBEq R]
(p q : Raw R)
:
Trim.equiv (p.add q) (p.addRaw q)
theorem
CompPoly.CPolynomial.Raw.sum_zipIdx_eq_sum_range
{R : Type u_1}
[Semiring R]
{α : Type u_4}
[AddCommMonoid α]
(p : Raw R)
(f : R → ℕ → α)
:
(List.map
(fun (x : R × ℕ) =>
match x with
| (a, i) => f a i)
(Array.zipIdx p).toList).sum = ∑ i ∈ Finset.range (Array.size p), f (p.coeff i) i
theorem
CompPoly.CPolynomial.Raw.equiv_mul_one
{R : Type u_1}
[Semiring R]
[BEq R]
[LawfulBEq R]
(p : Raw R)
:
Trim.equiv (p * 1) p
theorem
CompPoly.CPolynomial.Raw.smul_zero_eq_replicate_zero
{R : Type u_1}
[Semiring R]
(p : Raw R)
:
theorem
CompPoly.CPolynomial.Raw.mulX_monomial_one
{R : Type u_1}
[Semiring R]
[BEq R]
[DecidableEq R]
[LawfulBEq R]
[Nontrivial R]
(n : ℕ)
:
theorem
CompPoly.CPolynomial.Raw.X_pow_eq_monomial_one
{R : Type u_1}
[Semiring R]
[BEq R]
[DecidableEq R]
[LawfulBEq R]
[Nontrivial R]
(n : ℕ)
:
theorem
CompPoly.CPolynomial.Raw.smul_monomial_one_trim
{R : Type u_1}
[Semiring R]
[BEq R]
[DecidableEq R]
[LawfulBEq R]
[Nontrivial R]
(n : ℕ)
(r : R)
:
theorem
CompPoly.CPolynomial.Raw.mul_comm_equiv
{R : Type u_1}
[CommSemiring R]
[BEq R]
[LawfulBEq R]
(p q : Raw R)
:
Trim.equiv (p * q) (q * p)
theorem
CompPoly.CPolynomial.Raw.mul_comm
{R : Type u_1}
[CommSemiring R]
[BEq R]
[LawfulBEq R]
(p q : Raw R)
:
@[implicit_reducible]
instance
CompPoly.CPolynomial.Raw.instAddCommSemigroupOfLawfulBEq
{R : Type u_1}
[Semiring R]
[BEq R]
[LawfulBEq R]
:
AddCommSemigroup (Raw R)