End binomial_Newton.
Section Newton_nat.
Notation power := (mscal mult 1).
Notation "∑" := (msum plus 0).
Fact sum_fold_map n f : ∑ n f = fold_right plus 0 (map f (list_an 0 n)).
Fact power2_gt_0 n : 0 < power n 2.
Fact power_ge_n k p : 2 <= p -> k <= power k p.
Fact power_mono_l p q x : 1 <= x -> p <= q -> power p x <= power q x.
Definition power_mono := power_mono_l.
Fact power_smono_l p q x : 2 <= x -> p < q -> power p x < power q x.
Fact power_mono_r n p q : p <= q -> power n p <= power n q.
Fact power_0_inv p n : power p n = 0 <-> n = 0 /\ 0 < p.
Fact plus_cancel_l : forall a b c, a + b = a + c -> b = c.
Fact sum_0n_scal_r n k f : ∑ n (fun i => (f i)*k) = (∑ n f)*k.
Fact sum_0n_mono n f g : (forall i, i < n -> f i <= g i) -> ∑ n f <= ∑ n g.
Fact sum_0n_le_one n f i : i < n -> f i <= ∑ n f.
Fact sum_power_lt k n f : k <> 0 -> (forall i, i < n -> f i < k) -> ∑ n (fun i => f i * power i k) < power n k.

(* Specifications: *)
Theorem Newton_nat a b n :
power n (a + b) = ∑ (S n) (fun i => binomial n i * power (n - i) a * power i b).
Theorem Newton_nat_S a n :
power n (1 + a) = ∑ (S n) (fun i => binomial n i * power i a).
Lemma binomial_le_power n i : binomial n i <= power n 2.
Corollary binomial_lt_power n i : binomial n i < power (S n) 2.
End Newton_nat.