fact: Fixpoint iter_down (n: nat) (S: ST.t) : ST.t := match n with | O => S | S n => let S' := F S in if ST.ble (F S') S' then iter_down n S' else S end.
imports: Coq(ZArith Psatz Bool String List FMaps) Coq(FunctionalExtensionality) CDF(Sequences IMP)