Require vec.
Require qs_definitions.
Section contents.
Variable X: Set.
Variable Xle: X -> X -> Prop.
Variable XleDec: forall x y, { Xle x y } + { Xle y x }.
Let leb: X -> X -> IdMonad.M bool := fun x y => unsum_bool (XleDec x y).

(* Specifications: *)
Lemma qs_permutes: forall l, Permutation.Permutation l (qs leb l).
Proof with auto.