Set Implicit Arguments.
Require Vector.
Require qs_definitions.
Require U.
Require vec.
Section contents.
Variables (ee: E) (ol: list ee).

(* Specifications: *)
Lemma ranges (b i j l: nat): (b <= i -> i < j -> j < b + l ->
exists i', exists j', exists r, b + i' = i /\ S (b + i' + j') = j /\ i' + S (j' + S r) = l)%nat.
Lemma vec_cons_eq_inv X (a c: X) n (b d: Vector.t X n): Vector.cons a b = Vector.cons c d -> a = c /\ b =d.
Proof with auto.