(* QuickChick Prelude *)
Set Warnings "-extraction-opaque-accessed,-extraction".
Set Warnings "-notation-overridden,-parsing".
Set Bullet Behavior "Strict Subproofs".
(* End prelude *)
Admitted.  (* QuickChick canonical_forms_bool. *)
Instance dec_ex_abs t T1 : Dec (exists x u, t = tabs x T1 u).
constructor; unfold decidable.
destruct t eqn:Eq;
try solve [right => [[x [id contra]]]; congruence].
destruct (eq_dec_ty t0 T1).
destruct dec eqn:H; subst; eauto.
right => [[x [id contra]]]; inversion contra; subst; congruence.
Defined.
Admitted. (* QuickChick canonical_forms_fun. *)
(* xistential rework - dummy step *)
Definition step_fun (t : trm) : option trm := Some t.

Axiom step_fun_correct : forall t t',
step_fun t = Some t' <-> step t t'.