End SortKeys.
End SortKeys.
Hint Resolve SortKeys.perm.
Hint Resolve SortKeys.uniq.
Hint Resolve SortKeys.E.
Notation sort_keys      := SortKeys.f.
Notation sort_keys_perm := SortKeys.perm.
Notation sort_keys_uniq := SortKeys.uniq.
Notation sort_keysE     := SortKeys.E.
Notation eq_sort_keys   := SortKeys.eq.
Section ChoiceKeys.
Variable (K : choiceType).
Implicit Types (k : K) (ks : seq K).

(* Specifications: *)
Lemma mem_sort_keys ks k : k \in ks -> k \in sort_keys ks.
Lemma sort_keys_id ks : sort_keys (sort_keys ks) = sort_keys ks.
Lemma size_sort_keys ks : size (sort_keys ks) = size (undup ks).
Definition fset_sub_pickle x := index x fset_sub_enum.