Proof using.
unfold OutOf, Into.
intros.
repeat rewrite (eq_Arr_eq pf).
repeat rewrite (eq_Const_eq pf).
repeat rewrite (eq_Const_eq (eq_sym pf)).
unfold asNth. simpl.
rewrite asNth'_get_lookup.
{ generalize dependent (pmap_lookup' ts p).
intros. subst. reflexivity. }
Qed.

(* Specifications: *)
Theorem asNth_eq
: forall ts p oe v,
@asNth ts p oe = Some v ->
oe = {| index := p ; value := v |}.