Marc Brockschmidt

I'm a Postdoc researcher at Microsoft Research in the Programming Principles and Tools group in Cambridge.

My research focuses on automatically proving (mostly temporal) program properties, such as termination, complexity bounds or general CTL properties. My main interest is in proving these properties (or weaker versions) for large real-world programs, and thus I am mostly interested in issues of scale. Recently, I have been investigating the use of machine learning techniques in program analysis, e.g., to predict likely candidates for program or class invariants based on a few sample program runs. I am also very much interested in applying this work to problems from related areas, such as computational biology.

I obtained my PhD at RWTH Aachen under the supervision of Jürgen Giesl, where I worked on termination and complexity analysis of (Java) programs. There, I focused on heap abstractions in the analysis of object-oriented programs, and details can be found on my old website.

My work has lead to a number of (publicly available) tools:

  • A heap shape and termination analysis for heap-manipulating programs is implemented in AProVE (cf. the evaluations for Java and LLVM programs).
  • Termination analysis for integer programs is implemented in T2, successor to the original TERMINATOR project (cf. evaluation).
  • Complexity analysis for integer programs is implemented in KoAT (cf. evaluation).
  • Verification of CTL properties with first-order quantification is implemented in CTLFO (cf. evaluation).