Fact sum_0n_distr_r b n f : ∑ n (fun i => f i⊗b) = ∑ n f ⊗ b.
(**   Newton Binomial theorem for (X,⊕,z,⊗,o) where 1) (X,⊕,z) is a cancellative commutative monoid 2) (X,⊗,o) is a monoid 3) ⊗ distributes over ⊕ on the left and one the right  cancellative could be weakened into z is left and right absorbing for ⊗, ie a⊗z = z⊗a = z  *)

Theorem binomial_Newton n a b :
a ⊗ b = b ⊗ a
-> expo n (a ⊕ b) = ∑ (S n) (fun i => scal (binomial n i) (expo (n - i) a ⊗ expo i b)).