Mechanizing Abstract Interpretation