End OF_LIST.

(* Specifications: *)
Lemma of_list_related:
forall (A B: Type) (R: A -> B -> Prop) k l1 l2,
list_forall2 (fun ka kb => fst ka = fst kb /\ R (snd ka) (snd kb)) l1 l2 ->
option_rel R (T.get k (of_list l1)) (T.get k (of_list l2)).
Lemma of_list_related:
forall (A B: Type) (R: A -> B -> Prop) k l1 l2,
list_forall2 (fun ka kb => fst ka = fst kb /\ R (snd ka) (snd kb)) l1 l2 ->
option_rel R (T.get k (of_list l1)) (T.get k (of_list l2)).