Section Forall_XTree.
Variable (P: Z -> Prop).
Fixpoint Forall_XTree (t: XTree): Prop :=
match t with
| XLeaf =>
True
| XNode tl v =>
fold_right and (P v) (map Forall_XTree tl)
end.
End Forall_XTree.

Lemma add1_pos: forall t, Forall_XTree (fun x => x >= 0) t -> Forall_XTree (fun x => x > 0) (x_add1 t).