Proof using.
intros l1.
induction l1 using rev_ind; intuition.
induction l2 using rev_ind.
- find_insterU. conclude_using eauto. contradiction.
- repeat rewrite rev_unit.
find_apply_lem_hyp contiguous_sorted_last; auto.
find_apply_lem_hyp contiguous_sorted_last; auto.
intuition. repeat find_reverse_rewrite. simpl. intuition.
+ eapply uniqueIndices_elim_eq; eauto using sorted_uniqueIndices.
+ eapply IHl1; eauto using sorted_app_1, sorted_app_In_reduce.
Qed.

(* Specifications: *)
Lemma not_empty_false :
forall A (l : list A),
not_empty l = false ->
l  = [].