Program Instance qpUnsized (qp : QProp) : UnsizedChecker (checker qp).
Next Obligation.
rewrite !semFmapSize !semReturnSize. apply imset_eq. reflexivity.
Qed.

(* Specifications: *)
Lemma semCheckableGenSize:
forall (P : Type) {H : Checkable P} (gen: G P) (size : nat),
(semCheckableSize gen size) <->
(forall p, semGenSize gen size p -> semCheckableSize p size).
Lemma semCheckableFunSize:
forall {A C} {H1 : Show A} `{H2 : Arbitrary A} {H3 : Checkable C}
(f : A -> C) (size: nat),
semCheckableSize f size <->
forall (a : A), semGenSize arbitrary size a -> semCheckableSize (f a) size.
Lemma semCheckablePolyFunSize:
forall {C : Type -> Type} {H : Checkable (C nat)} (f : forall T, C T)
(size : nat),
(semCheckableSize f size) <-> (semCheckableSize (f nat) size).
Lemma semCheckablePolyFunSetSize:
forall {C : Set -> Type} {H : Checkable (C nat)} (f : forall T, C T) (size: nat),
(semCheckableSize f size) <->  (semCheckableSize (f nat) size).