proposition: Theorem injRightsigT: forall {A : Type} {x: A} (dec: Deq A) (P:A -> Type) (y y':P x), existT P x y = existT P x y' -> y = y'.
proof: Proof. intros. cut (projT dec (existT _ x y) y = projT dec (existT _ x y') y). simpl. case (dec x x). intro e. elim e using K_dec; trivial. apply DeqDeqp. trivial. intros. case n; trivial. case H. reflexivity. Qed.
imports: Coq.Init.Notations tactics Peano Basics Bool Arith Arith.EqNat Omega Coq.Logic.Eqdep_dec