proposition: Theorem asNth_eq : forall ts p oe v, @asNth ts p oe = Some v -> oe = {| index := p ; value := v |}.
proof: Proof. unfold asNth. destruct oe; simpl. revert value0. revert index0. revert ts. induction p; destruct index0; simpl; intros; solve [ congruence | eapply IHp in H; inversion H; clear H IHp; subst; auto ]. Qed.
imports: Coq(PArith) ExtLib.Data.Map.FMapPositive ExtLib.Data.Eq ExtLib.Tactics.Injection Coq(PArith)