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).

(* Specifications: *)
Lemma lc_a_Abs_exists : forall x1 rho1 A1 b1, lc_tm A1 -> lc_tm (open_tm_wrt_tm b1 (a_Var_f x1)) -> lc_tm (a_Abs rho1 A1 b1).
Lemma lc_a_UAbs_exists : forall x1 rho1 b1, lc_tm (open_tm_wrt_tm b1 (a_Var_f x1)) -> lc_tm (a_UAbs rho1 b1).
Lemma lc_a_Pi_exists : forall x1 rho1 A1 B1, lc_tm A1 -> lc_tm (open_tm_wrt_tm B1 (a_Var_f x1)) -> lc_tm (a_Pi rho1 A1 B1).
Lemma lc_a_CPi_exists : forall c1 phi1 B1, lc_constraint phi1 -> lc_tm (open_tm_wrt_co B1 (g_Var_f c1)) -> lc_tm (a_CPi phi1 B1).
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).
Lemma lc_a_UCAbs_exists : forall c1 b1, lc_tm (open_tm_wrt_co b1 (g_Var_f c1)) -> lc_tm (a_UCAbs b1).
Lemma lc_g_PiCong_exists : forall x1 rho1 g1 g2, lc_co g1 -> lc_co (open_co_wrt_tm g2 (a_Var_f x1)) -> lc_co (g_PiCong rho1 g1 g2).
Lemma lc_g_AbsCong_exists : forall x1 rho1 g1 g2, lc_co g1 -> lc_co (open_co_wrt_tm g2 (a_Var_f x1)) -> lc_co (g_AbsCong rho1 g1 g2).
Lemma lc_g_CPiCong_exists : forall c1 g1 g2, lc_co g1 -> lc_co (open_co_wrt_co g2 (g_Var_f c1)) -> lc_co (g_CPiCong g1 g2).
Lemma lc_g_CAbsCong_exists : forall c1 g1 g2 g3, lc_co g1 -> lc_co (open_co_wrt_co g2 (g_Var_f c1)) -> lc_co g3 -> lc_co (g_CAbsCong g1 g2 g3).