proposition: Lemma hlist_hd_fst_hlist_split : forall t (xs ys : list _) (h : hlist (t :: xs ++ ys)), hlist_hd (fst (hlist_split (t :: xs) ys h)) = hlist_hd h.
proof: Proof. simpl. intros. match goal with | |- context [ match ?X with _ => _ end ] => destruct X end. reflexivity. Qed.
imports: Coq.Lists.List Coq.Arith.PeanoNat Relations RelationClasses ExtLib.Core.RelDec ExtLib.Data.SigT ExtLib.Data.Member ExtLib.Data.ListNth ExtLib.Data.Option ExtLib.Tactics Coq.Classes.Morphisms