Skip to main content

Dr Carsten Fuhs

  • Overview

    Overview

    Biography

    Qualifications

    Web profiles

    Administrative responsibilities

    • Group Lead for Logical Methods research group
    • Undergraduate Admissions Lead for the School of Computing and Mathematical Sciences
  • Research

    Research

    Research interests

    • Automated Termination and Complexity Analysis
    • Program Equivalence
    • Verification
    • Separation Logic
    • Term Rewriting
    • Constraint Solving
    • SAT Encodings

    Research overview

    My primary mission is to provide fully automated techniques and tools that allow software developers to check whether their code has certain (un)desirable properties, for example:

    • Termination: Is the user guaranteed to get an answer from their query to the computer, regardless of the input that the user has provided?
    • Complexity bounds: How long should the user expect to wait for the answer to their query in the worst case?
    • Equivalence: We want to replace one program by another. Can we guarantee that these two programs would always give the same answer, for all queries?
    • Safety: Is it guaranteed that the program never does anything that should not happen? (And: what, exactly, do we mean by "anything that should not happen"?)

    The goal is to answer these questions with a proof that provides mathematical certainty. The price for this lofty goal is that such verification tools can never provide a definite answer for all possible programs. However, when they do give an answer, it should be guaranteed correct, and we want our verification tools to be able to give an answer for as many (reasonable) programs as possible.

    To this end, I apply techniques and tools for deduction-based automated reasoning: relevant properties of programs can be compiled into verification-friendly intermediate languages such as (constrained) term rewriting, and the verification tasks for these problems can be handled using modern constraint solvers (e.g., SAT and SMT solvers).

    Most of my research is implemented in fully automated program analysis tools such as AProVE and Cora.

    For a full overview of my publications, please have a look at my website.


    Research clusters and groups

  • Supervision and teaching

    Supervision and teaching

    Supervision

    I welcome enquiries from prospective PhD students who are interested in undertaking research in any of my areas of research interest.

    Teaching

    Teaching modules

    • Programming in Java (BUCI033S7)
  • Publications

    Publications

    Article

    Book Section

    • Milovančević, D. and Fuhs, Carsten and Bucev, M. and Kunčak, V. (2024) Proving termination via measure transfer in equivalence checking. In: Kosmatov, N. and Kovács, L. (eds.) Integrated Formal Methods. Lecture Notes in Computer Science. Springer. pp. 75-84. ISSN 0302-9743. ISBN 9783031765537.
    • Baudon, T. and Fuhs, Carsten and Gonnord, L. (2022) Analysing Parallel Complexity of Term Rewriting. In: Villanueva, A. (ed.) Logic-Based Program Synthesis and Transformation: 32nd International Symposium, LOPSTR 2022, Tbilisi, Georgia, September 21–23, 2022, Proceedings. Lecture Notes in Computer Science. Springer. pp. 3-23. ISBN 9783031167669.
    • Fuhs, Carsten and Giesl, J. and Middeldorp, A. and Schneider-Kamp, P. and Thiemann, R. and Zankl, H. (2007) SAT solving for termination analysis with polynomial interpretations. In: Marques-Silva, J. and Sakallah, K.A. (eds.) Theory and Applications of Satisfiability Testing: SAT 2007, 10th International Conference. Lecture Notes in Computer Science. Springer. pp. 340-354. ISBN 9783540727873.
    • Schneider-Kamp, P. and Fuhs, Carsten and Thiemann, R. and Giesl, J. and Annov, E. and Codish, M. and Middeldorp, A. and Zankl, H. (2007) Implementing RPO and POLO using SAT. In: Baader, F. and Cook, B. and Giesl, J. and Nieuwenhuis, R. (eds.) Deduction and Decision Procedures. Dagstuhl Seminar Proceedings. Internationales Begegnungs- und Forschungszentrum fuer Informatik.