Hint Extern 1 (lc_co (g_AbsCong _ _ _)) =>
  let x1 := fresh in
  pick_fresh x1;
  apply (lc_g_AbsCong_exists x1).Hint Extern 1 (lc_co (g_CAbsCong _ _ _)) =>
  let c1 := fresh in
  pick_fresh c1;
  apply (lc_g_CAbsCong_exists c1).

Lemma co_subst_co_tm_open_tm_wrt_tm_rec_co_subst_co_brs_open_brs_wrt_tm_rec_co_subst_co_co_open_co_wrt_tm_rec_co_subst_co_constraint_open_constraint_wrt_tm_rec_mutual : (forall a2 g1 a1 c1 n1, lc_co g1 -> co_subst_co_tm g1 c1 (open_tm_wrt_tm_rec n1 a1 a2) = open_tm_wrt_tm_rec n1 (co_subst_co_tm g1 c1 a1) (co_subst_co_tm g1 c1 a2)) /\ (forall brs1 g1 a1 c1 n1, lc_co g1 -> co_subst_co_brs g1 c1 (open_brs_wrt_tm_rec n1 a1 brs1) = open_brs_wrt_tm_rec n1 (co_subst_co_tm g1 c1 a1) (co_subst_co_brs g1 c1 brs1)) /\ (forall g2 g1 a1 c1 n1, lc_co g1 -> co_subst_co_co g1 c1 (open_co_wrt_tm_rec n1 a1 g2) = open_co_wrt_tm_rec n1 (co_subst_co_tm g1 c1 a1) (co_subst_co_co g1 c1 g2)) /\ (forall phi1 g1 a1 c1 n1, lc_co g1 -> co_subst_co_constraint g1 c1 (open_constraint_wrt_tm_rec n1 a1 phi1) = open_constraint_wrt_tm_rec n1 (co_subst_co_tm g1 c1 a1) (co_subst_co_constraint g1 c1 phi1)).