proposition: Lemma mpolywE k p : msize p <= k -> p = \sum_(m : 'X_{1..n < k}) (p@_m *: 'X_[m]).
proof: Proof. move=> lt_pk; pose I : subFinType _ := 'X_{1..n < k}. rewrite {1}[p]mpolyE (big_mksub I) //=; first last. by move=> x /msize_mdeg_lt /leq_trans; apply. by rewrite msupp_uniq. by rewrite big_rmcond //= => i; move/memN_msupp_eq0 ->; rewrite scale0r. Qed.
imports: HB(structures) mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat seq path) mathcomp(choice fintype tuple finfun bigop finset binomial) mathcomp(order fingroup perm ssralg zmodp poly ssrint) mathcomp(matrix vector) mathcomp(bigenough) ssrcomplements freeg