(** * Properties of string get *)

(* Specifications: *)
Lemma get_char63_valid (s : string) (i : int) :
char63_valid (get s i).
Lemma make_get_spec (i j : int) (c : char63) :
to_Z j < to_Z max_length ->
to_Z j < to_Z i ->
get (make i c) j = (c land 255)%uint63.
Lemma make_get_spec_valid (i j : int) (c : char63) :
to_Z j < to_Z max_length ->
to_Z j < to_Z i ->
char63_valid c ->
get (make i c) j = c.
Lemma sub_get_spec (s : string) (off len i : int) :
to_Z off + to_Z i < wB ->
to_Z i < to_Z len ->
get (sub s off len) i = get s (off + i).
Lemma cat_get_spec_l (s1 s2 : string) (i : int) :
to_Z i < to_Z (length s1) ->
get (cat s1 s2) i = get s1 i.
Lemma cat_get_spec_r (s1 s2 : string) (i : int) :
to_Z (length s1) <= to_Z i ->
to_Z i < to_Z max_length ->
get (cat s1 s2) i = get s2 (i - length s1).