(* ----- substitution ---------- *)

Lemma subst_tm_erase : forall a x,
(forall b, tm_subst_tm_tm (erase a) x (erase b) =
erase (tm_subst_tm_tm a x b)) /\
(forall b, tm_subst_tm_brs (erase a) x (erase b) =
erase (tm_subst_tm_brs a x b)) /\
(forall g:co, True) /\
(forall p, tm_subst_tm_constraint (erase a) x (erase p) =
erase (tm_subst_tm_constraint a x p)).