proposition: Lemma preservation_c : forall (E : env) e e' T, typing_c E e T -> eval_c e e' -> typing_c E e' T.
proof: Proof. intros E e e' T H. generalize dependent e'. induction H; intros e' J. Case "typing_var_c". inversion J. Case "typing_abs_c". inversion J. Case "typing_app_c". inversion J; subst; eauto. SCase "eval_beta". inversion H; subst. pick fresh y. rewrite (subst_intro y); auto. eapply typing_c_subst_simple; auto. Qed.
imports: Metalib.Metatheory String