Proof of an $\iff$ statement on binary trees 
Let $x$ and $y$ be two nodes of a binary tree $B$.
Prove that $x$ is an ancestor of $y$ $\iff$ $x$ stands before $y$ in the pre-order traversal of $B$ and $x$ stands  after $y$ in the post-order traversal of $B$.

I can do the $\implies$ part without trouble, but I can't deal with the converse with enough rigour.
Thanks for any kind of rigorous proof.

The result is true for any rooted tree (assuming that the children of each node are visited in the same order regardless of the type of traversal).
The key fact is that $x$ is an ancestor of $y$ iff $x = \operatorname{lca}(x,y)$ (where $\operatorname{lca}(x,y)$ denotes the lowest common ancestor of $x,y$).
Now suppose $x$ is an ancestor of $y$. Then in the pre-order traversal, $x$ must precede $y$, and in the post-order traversal $y$ must precede $x$.
Now suppose $x$ is not an ancestor of $y$. Let $l=\operatorname{lca}(x,y)$, and we know that $x \neq l$. Let $S(v)$ represent the nodes in the subtree rooted at $v$ (including $v$), and let $c_1,...c_k$ be the children of $l$.
We have $x \in S(c_{i_1})$, $y \in S(c_{i_2})$ for some indices $i_1, i_2$.
Suppose $i_1 < i_2$, then in the pre-order traversal $l$ will precede $x$ and $x$ will precede $y$, and in the post-order traversal $x $ will precede $y$ and $y$ will precede $l$. Similarly if $i_1>i_2$ with the roles of $x,y$ interchanged.
