Global Instance Injection_hlist_cons ls t (a : F t) (b : hlist ls) c d
: Injective (Hcons a b = Hcons c d) :=
{ result := a = c /\ b = d
; injection := @Hcons_inv t ls a b c d
}.

(* Specifications: *)
Theorem equiv_eq_eq : forall ls (x y : hlist ls),
equiv_hlist (fun x => @eq _) x y <-> x = y.