We investigate tools that automatically analyze and verify properties of systems (at all levels of the software development process, i.e.,whether the system is only a requirement specification, already a design model or even a piece of program code). The tools are semantics-based. This means that they manipulate their input on an abstract level, in the same way that we abstract a mathematical object by its meaning in a mathematical theory (e.g., a fraction by a rational number). The tools delegate part of their work to dedicated modules (constraint solvers, decision procedures, theorem provers) that account for the mathematical theories for data and control constructs.
A part of the difficulty (and attractiveness) of our research activity is that we must (and can) first define the mathematical theory for the input to our tools, and define the analysis and verification problem as an algorithmic problem (which is when the fun part starts).