induction n; intuition; simpl in *.
destruct ls1; simpl in *; try discriminate.
destruct ls2; simpl in *; try discriminate.
case_eq (shiftOut ls1 n); intuition.
rewrite H1 in H.
case_eq (shiftOut ls2 n); intuition.
rewrite H2 in H0.
destruct p.
destruct p0.
inversion H; clear H; subst.
apply opt_eq_inv in H0.
apply pair_eq_inv in H0; intuition.
apply vector_cons_eq_inv in H; intuition; subst.
f_equal.
eapply IHn.
eapply H1.
eapply H2.
rewrite H2 in H0.
discriminate.
rewrite H1 in H.
discriminate.
Qed.

(* Specifications: *)
Lemma le_refl_gen : forall n1 n2,
(n1 = n2 ->
n1 <= n2)%nat.