Ltac eauto_lc :=
eauto using lc_tm_of_lc_set_tm,
lc_co_of_lc_set_co,
lc_constraint_of_lc_set_constraint.

(* Specifications: *)
Lemma decide_Value_mutual : forall a, lc_set_tm a -> ({ Value a } + { not (Value a) }) * ({ CoercedValue a } + { not (CoercedValue a) }).
Lemma Value_dec :  forall a, lc_tm a -> ({ Value a } + { not (Value a) }).
Lemma DataTy_Star_dec : forall A, lc_set_tm A -> { DataTy A a_Star } + { not (DataTy A a_Star) }.
Lemma binds_dec_ax : forall x G, {A, B | binds x (Ax A B) G} + {(forall A B, ¬ binds x (Ax A B) G)}.
Definition rho_eq_dec : forall rho rho' : relflag, {rho = rho'} + {rho <> rho'}.