Section MakeBinList.
Variable A : Type.
Variable default : A.
Fixpoint jump (p:positive) (l:list A) {struct p} : list A :=
match p with
| xH => tl l
| xO p => jump p (jump p l)
| xI p  => jump p (jump p (tl l))
end.
Fixpoint nth (p:positive) (l:list A) {struct p} : A:=
match p with
| xH => hd default l
| xO p => nth p (jump p l)
| xI p => nth p (jump p (tl l))
end.

Lemma nth_pred_double :
forall p l, nth (Pos.pred_double p) (tl l) = nth p (jump p l).