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 semForAllShrinkMonotonic : forall {A C} `{Checkable C} `{Show A} (gen : G A) (f : A -> C) shrinker `{SizeMonotonic _ gen}, (forall a, SizeMonotonicChecker (checker (f a))) -> (semChecker (forAllShrink gen shrinker f) <-> forall a : A, semGen gen a -> semCheckable (f a)).