Remark exists_for_all:
  forall m f,
  exists_ m f = negb (for_all m (fun x a => negb (f x a))).Remark for_all_exists:
  forall m f,
  for_all m f = negb (exists_ m (fun x a => negb (f x a))).

(* Specifications: *)
Lemma for_all_false: forall m f, for_all m f = false <-> (exists x a, T.get x m = Some a /\ f x a = false).
Lemma exists_false: forall m f, exists_ m f = false <-> (forall x a, T.get x m = Some a -> f x a = false).
Theorem beq_false: forall m1 m2, T.beq beqA m1 m2 = false <-> exists x, match T.get x m1, T.get x m2 with | None, None => False | Some a1, Some a2 => beqA a1 a2 = false | _, _ => True end.
Lemma for_all_false: forall m f, for_all m f = false <-> (exists x a, T.get x m = Some a /\ f x a = false).
Lemma exists_false: forall m f, exists_ m f = false <-> (forall x a, T.get x m = Some a -> f x a = false).
Theorem beq_false: forall m1 m2, T.beq beqA m1 m2 = false <-> exists x, match T.get x m1, T.get x m2 with | None, None => False | Some a1, Some a2 => beqA a1 a2 = false | _, _ => True end.