Example and_exercise :
  forall n m : nat, n + m = 0 -> n = 0 /\ m = 0.(* OUT-OF-SCOPE *)

Instance testSuchThat_Conj {A B : Type} (P : A -> Prop) (Q : B -> Prop)
         (prop : A -> B -> Prop)
         `{Checkable (forall a, P a -> forall b, Q b -> prop a b)} :
  Checkable (forall a b, P a /\ Q b -> prop a b) :=
  {| checker f := 
       checker (fun a P b Q => f a b _ ) |}.

Theorem and_commut : forall P Q : Prop, P /\ Q -> Q /\ P.