Instance forAllMonotonic {A C} {_ : Checkable C} `{Show A} (g : G A) (f : A -> C)
        `{SizeMonotonic _ g} `{forall x, SizeMonotonicChecker (checker (f x))} :
  SizeMonotonicChecker (forAll g f).

Lemma mergeForAlls {A B C : Type} `{Checkable C} `{Show A} `{Show B} (ga : G A) (gb : G B) (f : A -> B -> C) : semChecker (forAll ga (fun a => forAll gb (f a))) <-> semChecker (forAll (genPair ga gb) (uncurry f)).