Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Carsten Fuhs is active.

Publication


Featured researches published by Carsten Fuhs.


theory and applications of satisfiability testing | 2007

SAT solving for termination analysis with polynomial interpretations

Carsten Fuhs; Jürgen Giesl; Aart Middeldorp; Peter Schneider-Kamp; René Thiemann; Harald Zankl

Polynomial interpretations are one of the most popular techniques for automated termination analysis and the search for such interpretations is a main bottleneck in most termination provers. We show that one can obtain speedups in orders of magnitude by encoding this task as a SAT problem and by applying modern SAT solvers.


computer aided verification | 2013

Better termination proving through cooperation

Marc Brockschmidt; Byron Cook; Carsten Fuhs

One of the difficulties of proving program termination is managing the subtle interplay between the finding of a termination argument and the finding of the arguments supporting invariant. In this paper we propose a new mechanism that facilitates better cooperation between these two types of reasoning. In an experimental evaluation we find that our new method leads to dramatic performance improvements.


international joint conference on automated reasoning | 2014

Proving Termination of Programs Automatically with AProVE

Jürgen Giesl; Marc Brockschmidt; Fabian Emmes; Florian Frohn; Carsten Fuhs; Carsten Otto; Martin Plücker; Peter Schneider-Kamp; Thomas Ströder; Stephanie Swiderski; René Thiemann

AProVE is a system for automatic termination and complexity proofs of Java, C, Haskell, Prolog, and term rewrite systems (TRSs). To analyze programs in high-level languages, AProVE automatically converts them to TRSs. Then, a wide range of techniques is employed to prove termination and to infer complexity bounds for the resulting TRSs. The generated proofs can be exported to check their correctness using automatic certifiers. For use in software construction, we present an AProVE plug-in for the popular Eclipse software development environment.


tools and algorithms for construction and analysis of systems | 2014

Alternating Runtime and Size Complexity Analysis of Integer Programs

Marc Brockschmidt; Fabian Emmes; Stephan Falke; Carsten Fuhs; Juergen Giesl

We present a modular approach to automatic complexity analysis. Based on a novel alternation between finding symbolic time bounds for program parts and using these to infer size bounds on program variables, we can restrict each analysis step to a small part of the program while maintaining a high level of precision. Extensive experiments with the implementation of our method demonstrate its performance and power in comparison with other tools.


rewriting techniques and applications | 2009

Proving Termination of Integer Term Rewriting

Carsten Fuhs; Jürgen Giesl; Martin Plücker; Peter Schneider-Kamp; Stephan Falke

When using rewrite techniques for termination analysis of programs, a main problem are pre-defined data types like integers. We extend term rewriting by built-in integers and adapt the dependency pair framework to prove termination of integer term rewriting automatically.


tools and algorithms for construction and analysis of systems | 2014

Proving Nontermination via safety

Hong-Yi Chen; Byron Cook; Carsten Fuhs; Kaustubh Nimkar; Peter O’Hearn

We show how the problem of nontermination proving can be reduced to a question of underapproximation search guided by a safety prover. This reduction leads to new nontermination proving implementation strategies based on existing tools for safety proving. Our preliminary implementation beats existing tools. Furthermore, our approach leads to easy support for programs with unbounded nondeterminism.


principles and practice of declarative programming | 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

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.


artificial intelligence and symbolic computation | 2008

Search Techniques for Rational Polynomial Orders

Carsten Fuhs; Rafael Navarro-Marset; Carsten Otto; Jürgen Giesl; Salvador Lucas; Peter Schneider-Kamp

Polynomial interpretations are a standard technique used in almost all tools for proving termination of term rewrite systems (TRSs) automatically. Traditionally, one applies interpretations with polynomials over the naturals. But recently, it was shown that interpretations with polynomials over the rationals can be significantly more powerful. However, searching for such interpretations is considerably more difficult than for natural polynomials. Moreover, while there exist highly efficient SAT-based techniques for finding natural polynomials, no such techniques had been developed for rational polynomials yet. In this paper, we tackle the two main problems when applying rational polynomial interpretations in practice: (1) We develop new criteria to decide when to use rational instead of natural polynomial interpretations. (2) Afterwards, we present SAT-based methods for finding rational polynomial interpretations and evaluate them empirically.


Journal of Automated Reasoning | 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

In this system description, we present the tool AProVE for automatic termination and complexity proofs of Java, C, Haskell, Prolog, and rewrite systems. In addition to classical term rewrite systems (TRSs), AProVE also supports rewrite systems containing built-in integers (int-TRSs). To analyze programs in high-level languages, AProVE automatically converts them to (int-)TRSs. Then, a wide range of techniques is employed to prove termination and to infer complexity bounds for the resulting rewrite systems. The generated proofs can be exported to check their correctness using automatic certifiers. To use AProVE in software construction, we present a corresponding plug-in for the popular Eclipse software development environment.


theory and applications of satisfiability testing | 2010

Synthesizing shortest linear straight-line programs over GF(2) using SAT

Carsten Fuhs; Peter Schneider-Kamp

Non-trivial linear straight-line programs over the Galois field of two elements occur frequently in applications such as encryption or high-performance computing. Finding the shortest linear straight-line program for a given set of linear forms is known to be MaxSNP-complete, i.e., there is no e-approximation for the problem unless P=NP. This paper presents a non-approximative approach for finding the shortest linear straight-line program. In other words, we show how to search for a circuit of XOR gates with the minimal number of such gates. The approach is based on a reduction of the associated decision problem (“Is there a program of length k?”) to satisfiability of propositional logic. Using modern SAT solvers, optimal solutions to interesting problem instances can be obtained.

Collaboration


Dive into the Carsten Fuhs's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Peter Schneider-Kamp

University of Southern Denmark

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Stephan Falke

University of New Mexico

View shared research outputs
Top Co-Authors

Avatar

Cynthia Kop

University of Innsbruck

View shared research outputs
Researchain Logo
Decentralizing Knowledge