(* ********************************************************************** *)
(** ** Narrowing and transitivity (3) *)

Definition transitivity_on Q := forall E S T,
  sub E S Q -> sub E Q T -> sub E S T.

Lemma canonical_form_abs : forall e U1 U2, value e -> typing empty e (typ_arrow U1 U2) -> exists V, exists e1, e = exp_abs V e1.