Section EqMask.
Variables (n0 : nat) (T : eqType).
Implicit Types (s : seq T) (m : bitseq).

(* Specifications: *)
Lemma mem_mask_cons x b m y s :
(x \in mask (b :: m) (y :: s)) = b && (x == y) || (x \in mask m s).
Lemma mem_mask_rot m s :
size m = size s -> mask (rot n0 m) (rot n0 s) =i mask m s.
Lemma mask_subseq m s : subseq (mask m s) s.
Lemma subseq_refl s : subseq s s.
Lemma prefix_subseq s1 s2 : subseq s1 (s1 ++ s2).
Lemma size_subseq s1 s2 : subseq s1 s2 -> size s1 <= size s2.
Lemma subseq_cons s x : subseq s (x :: s).
Lemma perm_to_rem s : x \in s -> perm_eq s (x :: rem s).
Lemma size_rem s : x \in s -> size (rem s) = (size s).-1.
Lemma rem_uniq s : uniq s -> uniq (rem s).
Lemma mem_rem_uniq s : uniq s -> rem s =i [predD1 s & x].
End Map.