(* QuickChick Prelude *)
Set Warnings "-extraction-opaque-accessed,-extraction".
Set Warnings "-notation-overridden,-parsing".
Set Bullet Behavior "Strict Subproofs".
(* End prelude *)
Require Export Tactics.
Example and_exercise :
forall n m : nat, n + m = 0 -> n = 0 /\ m = 0.
Admitted. (* 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 _ ) |}.
Admitted. (* QuickChick and_example2''. *)
Admitted. (* Higher Order *)

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