Ltac relflag_lc_exists_tac :=
  repeat (match goal with
            | H : _ |- _ =>
              fail 1
          end).Ltac tm_brs_co_constraint_lc_exists_tac :=
  repeat (match goal with
            | H : _ |- _ =>
              let J1 := fresh in pose proof H as J1; apply degree_tm_wrt_tm_of_lc_tm in J1;
              let J2 := fresh in pose proof H as J2; apply degree_tm_wrt_co_of_lc_tm in J2; clear H
            | H : _ |- _ =>
              let J1 := fresh in pose proof H as J1; apply degree_brs_wrt_tm_of_lc_brs in J1;
              let J2 := fresh in pose proof H as J2; apply degree_brs_wrt_co_of_lc_brs in J2; clear H
            | H : _ |- _ =>
              let J1 := fresh in pose proof H as J1; apply degree_co_wrt_tm_of_lc_co in J1;
              let J2 := fresh in pose proof H as J2; apply degree_co_wrt_co_of_lc_co in J2; clear H
            | H : _ |- _ =>
              let J1 := fresh in pose proof H as J1; apply degree_constraint_wrt_tm_of_lc_constraint in J1;
              let J2 := fresh in pose proof H as J2; apply degree_constraint_wrt_co_of_lc_constraint in J2; clear H
          end).

Lemma lc_a_CAbs_exists : forall c1 phi1 b1, lc_constraint phi1 -> lc_tm (open_tm_wrt_co b1 (g_Var_f c1)) -> lc_tm (a_CAbs phi1 b1).