End FINITE.
Section FINITE_CONSTRUCTIVE.
Variable A: Type.
Fixpoint p_tree_finite_c (t: PTree.t A) : positive :=
match t with
PTree.Leaf => 1%positive
| PTree.Node l _ r => Pos.max (xO (p_tree_finite_c l)) (xI (p_tree_finite_c r))
end.

Lemma ptree_finite_c_sound:
forall (t: PTree.t A) n, ((p_tree_finite_c t) <= n)%positive -> PTree.get n t = None.