If it's worth saying, but not worth its own post, then it goes here.
Notes for future OT posters:
1. Please add the 'open_thread' tag.
2. Check if there is an active Open Thread before posting a new one. (Immediately before; refresh the list-of-threads page before posting.)
3. Open Threads should start on Monday, and end on Sunday.
4. Unflag the two options "Notify me of new top level comments on this article" and "
Yep, that looks pretty airtight to me. Well done!
Note that the case analysis is tricky because the function can be discontinuous. The interesting cases are when a ball's X velocity becomes zero due to a collision, or (more subtly) two balls with only Y velocity gain X velocity due to an off-center collision. But I think the statement about monotonicity still holds.