Reference · Natural numbers
rainbow.math.nat.ring-reflect-sound
Unconditional, native soundness of the nat reflection normalizer. All polynomial lemmas quantify over arbitrary Pol, without an ordering or nonzero-coefficient assumption. Host helpers only assemble proof terms; every supporting lemma and each of the seven interface theorems is checked. A derived identity theorem packages their use for compact instance proofs.
ring/eval-pol-mk-px
ring/eval-pol-mk-px : (env : ℕ → ℕ) (p : ring/Pol) (i : ℕ) (q : ring/Pol) → ring/eval-pol env (ring/mk-px p i q) = ring/eval-pol env (ring/px p i q)
= = equality/Eqℕ = data/Nat
ring/eval-pol-add
ring/eval-pol-add : (env : ℕ → ℕ) (p right : ring/Pol) → ring/eval-pol env (ring/pol-add p right) = algebra/nat-add (ring/eval-pol env p) (ring/eval-pol env right)
= = equality/Eqℕ = data/Nat
ring/eval-pol-scale
ring/eval-pol-scale : (env : ℕ → ℕ) (k : ℕ) (r : ring/Pol) → ring/eval-pol env (ring/pol-scale k r) = nat/multiply k (ring/eval-pol env r)
= = equality/Eqℕ = data/Nat
ring/eval-pol-mul-var
ring/eval-pol-mul-var : (env : ℕ → ℕ) (i : ℕ) (r : ring/Pol) → ring/eval-pol env (ring/pol-mul-var i r) = nat/multiply (ring/eval-pol env r) (env i)
= = equality/Eqℕ = data/Nat
ring/eval-pol-mul
ring/eval-pol-mul : (env : ℕ → ℕ) (p q : ring/Pol) → ring/eval-pol env (ring/pol-mul p q) = nat/multiply (ring/eval-pol env p) (ring/eval-pol env q)
= = equality/Eqℕ = data/Nat
ring/sound
ring/sound : (env : ℕ → ℕ) (e : ring/Expr) → ring/denote env e = ring/eval-pol env (ring/normalize e)
= = equality/Eqℕ = data/Nat
ring/pol-equal-sound
ring/pol-equal-sound : (p right : ring/Pol) (h₁ : ring/pol-equal p right = data/true) → p = right
= = equality/Eq
ring/identity-sound
ring/identity-sound : (env : ℕ → ℕ) (left right : ring/Expr) (checked : ring/pol-equal (ring/normalize left) (ring/normalize right) = data/true) → ring/denote env left = ring/denote env right
= = equality/Eqℕ = data/Nat