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_Pi :
forall G D a rho A B, AnnGood G D ->
AnnTyping G a (a_Pi rho A B) -> Value a ->
(exists a', a = a_Abs rho A a') \/ (exists T, Path T a).