Mathematical Logic (Functional Interpretations)
My main area of research is in mathematical logic and proof theory. In
particular, I am interested in the computational content of
mathematical proofs. What do theorems tell us, apart from the truth
they convey? How can proofs be viewed as programs, so as to be
executed, and how can programs be viewed as proofs, so that their
correctness can be automatically checked? These questions become highly
non-trivial when proofs involve classical logic, induction and
analytical principles such as countable choice and WKL.
The main technique used is the so-called functional interpretation,
whereby formal proofs are inductively associated with functionals of
higher type. Examples of functional interpretations include
Gödel's
Dialectica
interpretation and
Kreisel's
modified
realizability.
I have recently developed a unifying framework for functional
interpretations, which allows for a comparison between several
different
functional interpretations (see [
1], [
2] and
[
3]).
This framework has shown to be useful in combining the different
interpretations into a hybrid functional interpretation [
4],
making it possible to combine the features of each interpretation in
the analysis of each single proof.
Formal Verification (Hoare Logic)
Recently, I have also been working on the application of formal verification to
the domain of
continuous systems. More precisely, developing 'Hoare logic' systems in
order to prove properties of systems in the continuous time domain [
5].
Algorithms and Complexity Theory
My early research career was on the topic of algorithms. That was the time when
I was taking part in the ACM ICPC (International Collegiate Programming
Challenge). My first paper was is on pattern matching algorithms,
jointly written with K. Guimaraes and E. W. Myers [
6].