improved theorems by using "zip" function; slightly simplified proofs