0. Generating functions is not really the right name. I would say "parameterization." 1. These formulas were known to the Babylonians. The simple proof goes as follows: assume WLOG that a, b, c are relatively prime. Since a, b, c cannot all have the same parity, WLOG b, c have different parity. Then a^2 = (c + b)(c - b) where the factors on the RHS are odd and relatively prime (use the Euclidean algorithm), so they must both be squares, say p^2 and q^2 (use unique prime factorization.) Then c = p^2 + q^2, b = p^2 - q^2, and this gives a = 2pq. 2. It's equivalent to showing that abc is divisible by 3, 4, 5. This is straightforward if you know that squares are congruent to 0, 1 mod 3, congruent to 0, 1 mod 4, and congruent to 0, 1, 4 mod 5 because 1 + 1 != 1 mod 3 or mod 4 and 1 + 1, 1 + 4, and 4 + 4 are not equal to 1 or 4 mod 5. This implies that two squares which are not divisible by 3, 4, 5 cannot sum to a square which is not divisible by 3, 4, 5.