コンテンツにスキップ

多項式と代数

Mathlib の多項式は Polynomial R です. 係数を埋め込む写像は Polynomial.C,不定元は Polynomial.X です.

#check Polynomial
#check Polynomial.C
#check Polynomial.X

section Polynomials

open Polynomial

variable {R : Type*} [Semiring R]

example : (X : Polynomial R) * C (1 : R) = X := by
  simp

example (a : R) : (C a : Polynomial R) + 0 = C a := by
  simp

end Polynomials

演習問題

多項式で,定数多項式の和が係数の和に対応することを示してください.

example {R : Type*} [Semiring R] (a b : R) :
    (Polynomial.C a + Polynomial.C b : Polynomial R) = Polynomial.C (a + b) := by
  -- `ext n` または `simp` を試す.
  sorry

Algebra R A は,AR 上の代数であることを表す型クラスです. スカラー倍 r • a は,構造写像 algebraMap R A r による積として振る舞います.

#check Algebra
#check algebraMap

section Algebras

variable {R A : Type*} [CommSemiring R] [Semiring A] [Algebra R A]

example (r : R) (a : A) : r  a = algebraMap R A r * a := by
  exact Algebra.smul_def r a

example (r s : R) : algebraMap R A (r + s) = algebraMap R A r + algebraMap R A s := by
  exact map_add (algebraMap R A) r s

end Algebras