Ltac pairInv :=
  match goal with 
    | [H : (_, _) = (_, _) |-_ ] => inversion H; clear H; subst
  end.Ltac destruct_exists :=
  match goal with
    | [H : exists x, _ |- _ ] =>
      destruct H
  end.

(* Specifications: *)
Theorem getSupport_In_Ret : forall (A : Set)(eqd : eq_dec A) x a, In x (getSupport (Ret eqd a)) -> x = a.
Theorem getSupport_In_Seq : forall (A B : Set)(c : Comp A)(f : A -> Comp B) b a, In a (getSupport c) -> In b (getSupport (f a)) -> In b (getSupport (Bind c f)).