proposition: Lemma cons_head_tail_poly {R: ringType} (q: {poly R}): cons_poly (head_poly q) (tail_poly q) = q.
proof: Proof. apply: poly_inj. rewrite /head_poly /tail_poly polyseq_cons. case: q => [[|a s] /= Hs]. 1: by rewrite polyseq0. rewrite (PolyK Hs). destruct s => //=. by rewrite polyseqC Hs. Qed.
imports: Relational(OrderEnrichedCategory GenericRulesSimple) mathcomp(all_ssreflect all_algebra reals distr realsum ssrnat ssreflect ssrfun ssrbool ssrnum eqtype choice seq) Mon(SPropBase) Crypt(Axioms ChoiceAsOrd SubDistr Couplings UniformDistrLemmas FreeProbProg Theta_dens RulesStateProb pkg_core_definition choice_type pkg_composition pkg_rhl Package Prelude) extructures(ord fset fmap) Equations(Equations)