write linear-time definition for reverse; read snoc and quadratic reverse proof; start proof with linear reverse