(* ********************************************************************** *)
(** ** 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 typing_inv_inl : forall E e1 T, typing E (exp_inl e1) T -> forall U1 U2, sub E T (typ_sum U1 U2) -> exists S1, typing E e1 S1 /\ sub E S1 U1.