Formal methods (proof, theorem proving, model-checking, typing, and static analysis);
Theory and applications of abstract interpretation (sound and complete formal verification logics, sound methods and algorithms for approximating undecidable or highly complex computational structures).