fact: Fixpoint partition p (s : seq T) : seq T * seq T := if s isn't x :: xs then ([::], [::]) else let: yz := partition p xs in if x <= p then (x :: yz.1, yz.2) else (yz.1, x :: yz.2).
imports: mathcomp(all_ssreflect) monae_lib hierarchy monad_lib fail_lib state_lib infotheo(ssr_ext) Recdef Equations(Equations) mathcomp(ssrnat)