Hint Rewrite
(@Znth_map Z _) (@Znth_map nat _) (@Znth_map positive _)
using (auto; rewrite ?Zlength_map in *; omega) : sublist.
(* Add these in a later file where things are in scope ... Hint Rewrite (Znth_map Int.zero) (Znth_map Vundef) using (auto; rewrite ?Zlength_map in *; omega) : sublist. *)

Lemma split3_full_length_list: forall {A}{a: Inhabitant A} lo mid hi (ct: list A),
lo <= mid < hi ->
Zlength ct = hi - lo ->
ct = firstn (Z.to_nat (mid - lo)) ct ++
(Znth (mid - lo) ct :: nil) ++
skipn (Z.to_nat (mid - lo + 1)) ct.