(* Program Instance shrinkingUnsized {C A} `{Checkable C} *)
(*         (sh : A -> list A) (x : A) (pf : A -> C)  *)
(*         `{UnsizedChecker (checker (pf x))} : UnsizedChecker (shrinking sh x pf). *)
(* Next Obligation.  *)
(* Abort. *)

(* Specifications: *)
Lemma semCover_idSize {C} `{Checkable C} (b: bool) (n: nat)
(str : String.string) (c : C) (s : nat) :
semCheckerSize (cover b n str c) s <-> semCheckableSize c s.
Lemma semCover_id {C} `{Checkable C} (b: bool) (n: nat)
(str : String.string) (c : C) :
semChecker (cover b n str c) <-> semCheckable c.
Lemma semClassify_idSize {C} `{Checkable C} (b: bool) (str : String.string)
(c : C) (s : nat) :
semCheckerSize (classify b str c) s <-> semCheckableSize c s.
Lemma semClassify_id {C} `{Checkable C} (b: bool) (str : String.string) (c : C) :
semChecker (classify b str c) <-> semCheckable c.
Lemma semLabel_idSize {C} `{Checkable C} (str : String.string) (c : C) (s : nat) :
semCheckerSize (label str c) s <-> semCheckableSize c s.
Lemma semLabel_id {C} `{Checkable C} (str : String.string) (c : C) :
semChecker (label str c) <-> semCheckable c.
Lemma semCollect_idSize {C} `{Checkable C} (str : String.string) (c : C) (s : nat) :
semCheckerSize (collect str c) s <-> semCheckableSize c s.
Lemma semCollect_id {C} `{Checkable C} (str : String.string) (c : C) :
semChecker (collect str c) <-> semCheckable c.