(** The ``code tail'' of an instruction list [c] is the list of instructions starting at PC [pos]. *)
Inductive code_tail: Z -> code -> code -> Prop :=
| code_tail_0: forall c,
code_tail 0 c c
| code_tail_S: forall pos i c1 c2,
code_tail pos c1 c2 ->
code_tail (pos + 1) (i :: c1) c2.

(* Specifications: *)
Lemma code_tail_pos:
forall pos c1 c2, code_tail pos c1 c2 -> pos >= 0.
Lemma find_instr_tail:
forall c1 i c2 pos,
code_tail pos c1 (i :: c2) ->
find_instr pos c1 = Some i.