(** - Some stuff I thought would be useful some day but wasn't *)

Definition before (N N' : nat) (i : fin N) (j : fin N') := index i < index j.Definition after (N N' : nat) (i : fin N) (j : fin N') := index i > index j.Definition notbefore (N N' : nat) (i : fin N) (j : fin N') :=
  index i = index j \/ after i j.Definition notafter (N N' : nat) (i : fin N) (j : fin N') :=
  before i j \/ index i = index j.

Lemma seq_properties_split_after_notafter : forall (A : Setoid) (n : nat) (v : seq n A) (i : fin n) (P : A -> Prop), (forall j : fin n, after j i -> P (v j)) -> (forall j : fin n, notafter j i -> P (v j)) -> forall j : fin n, P (v j).