(* -------------- name swapping ------------------------ *)

Axiom AnnTyping_co_swap : forall c c0 phi G a A,
c `notin` fv_co_co_tm A ->
c `notin` fv_co_co_tm a ->
c0 `notin` dom G \u {{ c }} ->
AnnTyping ([(c, Co phi)] ++ G) (open_tm_wrt_co a (g_Var_f c))
(open_tm_wrt_co A (g_Var_f c)) ->
AnnTyping ([(c0, Co phi)] ++ G) (open_tm_wrt_co a (g_Var_f c0))
(open_tm_wrt_co A (g_Var_f c0)).