Require Eqdep_dec.
(* Check the behaviour of Injection *)
(* Check that Injection tries Intro until *)
Unset Structural Injection.
injection 1.
apply n_Sn.
Qed.
injection H.
intros.
apply (n_Sn x H0).
Qed.

(* Check that no tuple needs to be built *)
Lemma l3 :
forall x y : nat,
existT (fun n : nat => {n = n} + {n = n}) x (left _ (refl_equal x)) =
existT (fun n : nat => {n = n} + {n = n}) y (left _ (refl_equal y)) ->
x = y.