Module pres := fc_preservation wf weak subst e_subst.
(* Why does this cause so many messages? *)
Hint Resolve erased_tm_erase : erased.
Definition AnnGood G D := Good (erase_context G) D.
unfold AnnGood. simpl. unfold Good. unfold erased_context.
split. auto.
intros.
unfold binds in H. inversion H.
Qed.
(* --------- Paths infect the cannonical forms lemmas for functions --------- *)

Lemma canonical_forms_a_CPi :
forall G D a phi B, AnnGood G D ->
AnnTyping G a (a_CPi phi B) -> Value a ->
(exists a', a = a_CAbs phi a') \/ (exists T, Path T a).