Carsten Fuhs

dblp:32/4201 · DBLP profile ↗
← Back
28ranked-venue papers
9as first author
5since 2021 · last 2025
0009-0007-3697-4383ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Theory of computation · 18 · 7 first-author · 4 since 2021Software engineering, systems software and programming languages · 14 · 1 first-author · 3 since 2021Artificial intelligence and machine learning · 7 · 3 first-author
YearPublicationVenuePosition
2025 An Innermost DP Framework for Constrained Higher-Order Rewriting
Carsten Fuhs, Liye Guo, Cynthia Kop
FSCD1
2024 Proving Termination via Measure Transfer in Equivalence Checking
Dragana Milovancevic, Carsten Fuhs, Mario Bucev, Viktor Kuncak
IFM2
2024 On Complexity Bounds and Confluence of Parallel Term Rewriting
abstract
We revisit parallel-innermost term rewriting as a model of parallel computation on inductive data structures and provide a corresponding notion of runtime complexity parametric in the size of the start term. We propose automatic techniques to derive both upper and lower bounds on parallel complexity of rewriting that enable a direct reuse of existing techniques for sequential complexity. Our approach to find lower bounds requires confluence of the parallel-innermost rewrite relation, thus we also provide effective sufficient criteria for proving confluence. The applicability and the precision of the method are demonstrated by the relatively light effort in extending the program analysis tool APROVE and by experiments on numerous benchmarks from the literature.
Thaïs Baudon, Carsten Fuhs, Laure Gonnord
Fundam. Informaticae2
2022 Analysing Parallel Complexity of Term Rewriting
abstract
We revisit parallel-innermost term rewriting as a model of parallel computation on inductive data structures and provide a corresponding notion of runtime complexity parametric in the size of the start term. We propose automatic techniques to derive both upper and lower bounds on parallel complexity of rewriting that enable a direct reuse of existing techniques for sequential complexity. The applicability and the precision of the method are demonstrated by the relatively light effort in extending the program analysis tool AProVE and by experiments on numerous benchmarks from the literature.
Thaïs Baudon, Carsten Fuhs, Laure Gonnord
LOPSTR2
2022 A calculus for modular loop acceleration and non-termination proofs
abstract
Abstract Loop acceleration can be used to prove safety, reachability, runtime bounds, and (non-)termination of programs. To this end, a variety of acceleration techniques have been proposed. However, so far all of them have been monolithic, i.e., a single loop could not be accelerated using a combination of several different acceleration techniques. In contrast, we present a calculus that allows for combining acceleration techniques in a modular way and we show how to integrate many existing acceleration techniques into our calculus. Moreover, we propose two novel acceleration techniques that can be incorporated into our calculus seamlessly. Some of these acceleration techniques apply only to non-terminating loops. Thus, combining them with our novel calculus results in a new, modular approach for proving non-termination. An empirical evaluation demonstrates the applicability of our approach, both for loop acceleration and for proving non-termination.
Florian Frohn, Carsten Fuhs
Int. J. Softw. Tools Technol. Transf.2
2019 A Static Higher-Order Dependency Pair Framework
abstract
We revisit the static dependency pair method for proving termination of higher-order term rewriting and extend it in a number of ways: (1) We introduce a new rewrite formalism designed for general applicability in termination proving of higher-order rewriting, Algebraic Functional Systems with Meta-variables. (2) We provide a syntactically checkable soundness criterion to make the method applicable to a large class of rewrite systems. (3) We propose a modular dependency pair framework for this higher-order setting. (4) We introduce a fine-grained notion of formative and computable chains to render the framework more powerful. (5) We formulate several existing and new termination proving techniques in the form of processors within our framework. The framework has been implemented in the (fully automatic) higher-order termination tool WANDA .
Carsten Fuhs, Cynthia Kop
ESOP1
2017 Analyzing Program Termination and Complexity Automatically with AProVE
Jürgen Giesl, Cornelius Aschermann, Marc Brockschmidt, Fabian Emmes, Florian Frohn, Carsten Fuhs, Jera Hensel, Carsten Otto, Martin Plücker, Peter Schneider-Kamp, Thomas Ströder, Stephanie Swiderski, René Thiemann
J. Autom. Reason.6
2017 Automatically Proving Termination and Memory Safety for Programs with Pointer Arithmetic
Thomas Ströder, Jürgen Giesl, Marc Brockschmidt, Florian Frohn, Carsten Fuhs, Jera Hensel, Peter Schneider-Kamp, Cornelius Aschermann
J. Autom. Reason.5
2017 Verifying Procedural Programs via Constrained Rewriting Induction
abstract
This article aims to develop a verification method for procedural programs via a transformation into logically constrained term rewriting systems (LCTRSs). To this end, we extend transformation methods based on integer term rewriting systems to handle arbitrary data types, global variables, function calls, and arrays, and to encode safety checks. Then we adapt existing rewriting induction methods to LCTRSs and propose a simple yet effective method to generalize equations. We show that we can automatically verify memory safety and prove correctness of realistic functions. Our approach proves equivalence between two implementations; thus, in contrast to other works, we do not require an explicit specification in a separate specification language.
Carsten Fuhs, Cynthia Kop, Naoki Nishida 0001
ACM Trans. Comput. Log.1
2016 Analyzing Runtime and Size Complexity of Integer Programs
Marc Brockschmidt, Fabian Emmes, Stephan Falke 0001, Carsten Fuhs, Jürgen Giesl
ACM Trans. Program. Lang. Syst.4
2014 Disproving termination with overapproximation
abstract
When disproving termination using known techniques (e.g. recurrence sets), abstractions that overapproximate the program's transition relation are unsound. In this paper we introduce live abstractions, a natural class of abstractions that can be combined with the recent concept of closed recurrence sets to soundly disprove termination. To demonstrate the practical usefulness of this new approach we show how programs with nonlinear, nondeterministic, and heap-based commands can be shown nonterminating using linear overapproximations.
Byron Cook, Carsten Fuhs, Kaustubh Nimkar, Peter W. O'Hearn
FMCAD2
2014 Alternating Runtime and Size Complexity Analysis of Integer Programs
Marc Brockschmidt, Fabian Emmes, Stephan Falke 0001, Carsten Fuhs, Jürgen Giesl
TACAS4
2014 Proving Nontermination via Safety
Hong Yi Chen, Byron Cook, Carsten Fuhs, Kaustubh Nimkar, Peter W. O'Hearn
TACAS3
2013 Better Termination Proving through Cooperation
Marc Brockschmidt, Byron Cook, Carsten Fuhs
CAV3
2012 Symbolic Evaluation Graphs and Term Rewriting - A General Methodology for Analyzing Logic Programs
Jürgen Giesl, Thomas Ströder, Peter Schneider-Kamp, Fabian Emmes, Carsten Fuhs
LOPSTR5
2012 Symbolic evaluation graphs and term rewriting: a general methodology for analyzing logic programs
abstract
There exist many powerful techniques to analyze termination and complexity of term rewrite systems (TRSs). Our goal is to use these techniques for the analysis of other programming languages as well. For instance, approaches to prove termination of definite logic programs by a transformation to TRSs have been studied for decades. However, a challenge is to handle languages with more complex evaluation strategies (such as Prolog, where predicates like the cut influence the control flow). In this paper, we present a general methodology for the analysis of such programs. Here, the logic program is first transformed into a symbolic evaluation graph which represents all possible evaluations in a finite way. Afterwards, different analyses can be performed on these graphs. In particular, one can generate TRSs from such graphs and apply existing tools for termination or complexity analysis of TRSs to infer information on the termination or complexity of the original logic program.
Jürgen Giesl, Thomas Ströder, Peter Schneider-Kamp, Fabian Emmes, Carsten Fuhs
PPDP5
2012 Polynomial Interpretations for Higher-Order Rewriting
abstract
The termination method of weakly monotonic algebras, which has been defined for higher-order rewriting in the HRS formalism, offers a lot of power, but has seen little use in recent years. We adapt and extend this method to the alternative formalism of algebraic functional systems, where the simply-typed lambda-calculus is combined with algebraic reduction. Using this theory, we define higher-order polynomial interpretations, and show how the implementation challenges of this technique can be tackled. A full implementation is provided in the termination tool Wanda.
Carsten Fuhs, Cynthia Kop
RTA1
2011 Termination of Isabelle Functions via Termination of Rewriting
Alexander Krauss 0001, Christian Sternagel, René Thiemann, Carsten Fuhs, Jürgen Giesl
ITP4
2011 A Linear Operational Semantics for Termination and Complexity Analysis of ISO Prolog
Thomas Ströder, Fabian Emmes, Peter Schneider-Kamp, Jürgen Giesl, Carsten Fuhs
LOPSTR5
2011 Optimal Base Encodings for Pseudo-Boolean Constraints
Michael Codish, Yoav Fekete, Carsten Fuhs, Peter Schneider-Kamp
TACAS3
2011 Proving Termination by Dependency Pairs and Inductive Theorem Proving
Carsten Fuhs, Jürgen Giesl, Michael Parting, Peter Schneider-Kamp, Stephan Swiderski
J. Autom. Reason.1
2011 SAT-based termination analysis using monotonicity constraints over the integers
abstract
Abstract We describe an algorithm for proving termination of programs abstracted to systems of monotonicity constraints in the integer domain. Monotonicity constraints are a nontrivial extension of the well-known size-change termination method. While deciding termination for systems of monotonicity constraints is PSPACE complete, we focus on a well-defined and significant subset, which we call MCNP (for “monotonicity constraints in NP”), designed to be amenable to a SAT-based solution. Our technique is based on the search for a special type of ranking function defined in terms of bounded differences between multisets of integer values. We describe the application of our approach as the back end for the termination analysis of Java Bytecode. At the front end, systems of monotonicity constraints are obtained by abstracting information, using two different termination analyzers:AProVEandCOSTA. Preliminary results reveal that our approach provides a good trade-off between precision and cost of analysis.
Michael Codish, Igor Gonopolskiy, Amir M. Ben-Amram, Carsten Fuhs, Jürgen Giesl
Theory Pract. Log. Program.4
2010 Synthesizing Shortest Linear Straight-Line Programs over GF(2) Using SAT
Carsten Fuhs, Peter Schneider-Kamp
SAT1
2009 Termination Analysis by Dependency Pairs and Inductive Theorem Proving
Stephan Swiderski, Michael Parting, Jürgen Giesl, Carsten Fuhs, Peter Schneider-Kamp
CADE4
2009 Proving Termination of Integer Term Rewriting
Carsten Fuhs, Jürgen Giesl, Martin Plücker, Peter Schneider-Kamp, Stephan Falke 0001
RTA1
2008 Improving Context-Sensitive Dependency Pairs
Beatriz Alarcón, Fabian Emmes, Carsten Fuhs, Jürgen Giesl, Raúl Gutiérrez, Salvador Lucas, Peter Schneider-Kamp, René Thiemann
LPAR3
2008 Maximal Termination
Carsten Fuhs, Jürgen Giesl, Aart Middeldorp, Peter Schneider-Kamp, René Thiemann, Harald Zankl
RTA1
2007 SAT Solving for Termination Analysis with Polynomial Interpretations
Carsten Fuhs, Jürgen Giesl, Aart Middeldorp, Peter Schneider-Kamp, René Thiemann, Harald Zankl
SAT1