Definition e_true := Lam (Lam (Var 1)).Definition e_false := Lam (Lam (Var 0)).Definition e_if b t f :=
  (App (App (App b (Lam t)) (Lam f)) (Nat 0)).

Lemma T_if : forall G b t f tau, Typ G b ty_bool -> Typ (TT :: G) t tau -> Typ (TT :: G) f tau -> Typ G (e_if b t f) tau.