Formal proof on exercise 2.2.5.2

This patch improves some of the contents in the exercises solutions for section 2.2.7. The most significant improvement is on exercise 2.2.5 b), which had a pending TODO for a formal proof that the grammar doesn't generate all binary strings with values divisible by 3.

Other minor improvements throughout the document have been done.