errors removed, rewrote some proofs