Skip to content
Carsten Fuhs edited this page May 8, 2023 · 2 revisions

Short description of AProVE.

What inputs are supported?

The following input formats are supported:

For Term Rewrite Systems (TRSs), several variations of standard TRSs are supported as inputs:

What properties can be verified?

Termination, non-termination, upper complexity bounds, lower complexity bounds, almost-sure termination.

What are the tool’s main techniques for the supported (input, property) pairs?

Dependency Pair framework, polynomial interpretations, ranking functions, ...

What external tools are used? (e.g., compilers, SMT solvers)

  • SAT solvers: MiniSat, SAT4J
  • SMT solvers: Z3, Yices, SMTInterpol
  • Compilers: clang (for the step from C to LLVM IR)
  • Termination backend: T2 (for Integer Transition Systems with restricted initial states), LoAT (for non-termination of Integer Transition Systems)
  • Complexity analysis backends: KoAT (upper bounds for Integer Transition Systems), CoFloCo (upper bounds for Integer Transition Systems), LoAT (lower bounds for Integer Transition Systems)

What is the tool’s URL?

https://aprove.informatik.rwth-aachen.de/

AProVE can be used via a web interface or downloaded and run locally.

Example(s)

For an exhaustive example collection, consider the Termination Problem DataBase with thousands of example inputs for the supported languages for termination and complexity. Additionally, the web interface provides examples.

Other relevant information

A local installation of AProVE can be used both via the command line and as a plug-in for the Eclipse IDE.

References

The primary system description for AProVE is:

J. Giesl, C. Aschermann, M. Brockschmidt, F. Emmes, F. Frohn, C. Fuhs, J. Hensel, C. Otto, M. Plücker, P. Schneider-Kamp, T. Ströder, S. Swiderski, and R. Thiemann
Analyzing Program Termination and Complexity Automatically with AProVE
Journal of Automated Reasoning, 58(1):3-31, 2017. DOI

Clone this wiki locally