Implicit Types A B : list X.

(* Specifications: *)
Lemma rev_eq A B: List.rev A = List.rev B <-> A = B.
Lemma map_inj (Y:Type) A B (f: X -> Y) : Injective f -> map f A = map f B <-> A = B.
Lemma countSplit (A B: list nat) (x: nat) : count A x + count B x = count (A ++ B) x.
Lemma notInZero (x: nat) A : not (x el A) <-> count A x = 0.