Download AProVE
Download the latest version of AProVE. By downloading, you accept the license agreement. Moreover, install the required dependencies before use. If you encounter problems, want to perform experiments with AProVE, or would like to download older versions of AProVE, please contact us.
Java – Required runtime environment
AProVE is a Java application and is built for Java 25. Download and install the Java 25 JDK.
Dependencies
The following dependencies are needed in different parts of AProVE. We recommend to install all the SMT and SAT solvers for termination analysis with AProVE, and additionally, we recommend to install all the backend complexity analysis tools if you want to use AProVE for complexity analysis as well. Extending your path environment is necessary so that AProVE is able to find the corresponding programs.
Blackbox Solver
Z3 – SMT solver
Please visit https://github.com/Z3Prover/z3/releases to download Z3 (version >= 4.4.0).
Windows For Windows pre-compiled binaries are available. After extracting the files, please make sure to add the Z3 bin sub-directory (e.g., C:\Program Files\z3\bin\) to your path environment as described below. Furthermore, the file libz3java.dll in the bin sub-directory has to be copied to z3java.dll.
Linux For Linux please download the source code, then compile and install it as described in the README file. In addition, you have to pass the option --java to scripts/mk_make.py to build Z3's Java bindings. Alternatively, you can download pre-compiled binaries from https://github.com/Z3Prover/z3/releases. To do so, you have to select ''Planned'' in the section ''OTHER DOWNLOADS'' on the right. Afterwards, please make sure to add the Z3 sub-directory containing the executable z3 to your path environment as described below. Furthermore, the folder containing the file libz3java.so has to be added to the environment variable LD_LIBRARY_PATH. This works similar to setting the path environment (see below).
Yices 1 – SMT solver
AProVE works with Yices 1 (e.g., Yices 1.0.40 released December 4, 2013), but not Yices 2. (Yes, that is definitely a pity and we will update this outdated dependency in the future.) Please download Yices 1 from https://yices.csl.sri.com/old/download-yices1.html. After extracting the files, please make sure to add the yices bin sub-directory (e.g., C:\Program Files\yices-1.0.40\bin\ or /home/username/yices-1.0.40/bin/) to your path environment as described below. Moreover, please make sure that this sub-directory appears before any other directory (e.g., /usr/local/bin) that would contain another Yices binary.
MiniSat – SAT solver
To run AProVE, you need to install MiniSat version 2 or higher (due to licensing issues we are not allowed to provide a download on our own).
Windows
- Download and install Cygwin from https:/www.cygwin.com.
- Re-run setup.exe and select the following packages:
- Devel → make
- Devel → zlib-devel
- Devel → gcc-g++
- Download and unzip https://minisat.se/downloads/minisat2-070721.zip to your Cygwin installation directory (default is C:\cygwin).
- Start the Cygwin Terminal and type the following commands:
- cd /minisat/simp/ (if this does not work, try cd /minisat2-070721/minisat/simp/)
- make rs
- mv minisat_static.exe /bin/minisat.exe
- exit
- Add the bin subdirectory of your Cygwin installation directory (default is C:\cygwin\bin) to the path environment variable as described below.
- Make sure that make and the developer version of zlib are installed on your sytem.
- Download https://minisat.se/downloads/minisat2-070721.zip and unzip it.
- Inside the minisat/simp directory, run make rs.
- Rename the resulting file minisat_static to minisat and add its directory to your path environment as described below.
KoAT – Tool for complexity analysis
To be able to prove upper bounds on the complexity of Integer Transition Systems from the GUI, one needs to install the tool KoAT. Moreover, KoAT is used by some complexity analysis techniques for classical Term Rewriting.
Windows
- A pre-compiled binary of KoAT is available here.
- Add its directory to your path environment as described below.
- Please checkout KoAT from github. Install KoAT according to the supplied instructions.
- Rename the resulting executable to koat and add its directory to your path environment as described below.
LoAT – Tool for complexity analysis
To be able to prove lower bounds on the complexity of Integer Transition Systems from the GUI, one needs to install the tool LoAT. Currently, LoAT does not support Windows.
Linux
- The recommended way to install LoAT is to download the pre-compiled binary for Linux/x64.
- Alternatively, checkout LoAT from github. Install LoAT according to the supplied instructions.
CoFloCo – Tool for complexity analysis
Some complexity analysis techniques for Term Rewriting require CoFloCo. Please follow the installation instructions from the CoFloCo website.
Miscellaneous
CeTA – Certification tool for termination and complexity proofs
In order to invoke CeTA from the GUI one needs to install CeTA (version >= 2.22). It is available at https://cl-informatik.uibk.ac.at/software/ceta/, where both precompiled binaries and the sources are available. To compile CeTA you additionally need to install the Glasgow Haskell Compiler.
Clang – Needed for C analysis
To be able to analyze C Programs, one needs to install Clang 2.9. To do so, please download and install the suitable precompiled binary of Clang 2.9, which is available here. Newer version of Clang up to and including Clang 3.5 should also work, but we cannot guarantee this.
For Windows, please download the Clang 2.9 Binaries for Mingw32/x86. To obtain the C standard libraries, we also recommend to download MinGW and to select at least the package "mingw32-base" during its installation. The resulting C standard libraries are then written to the directory "C:\MinGW\include". If needed, this directory can be extended by additional directories (e.g., from here).
Graphviz – Graph rendering
In order to view graphs inside the GUI, please also download and install the Graphviz tools (containing dot) from https://www.graphviz.org/. For Debian and Ubuntu it suffices to install the graphviz package.
License
Show full license
"APROVE" SOFTWARE LICENSE AGREEMENT
Nonexclusive Binary Code License
Please read the terms and conditions of this software license agreement ("LICENSE") prior to downloading the AProVE software. By downloading you agree to be bound by the terms of this LICENSE.
- General
The AProVE software and accompanying documentation, whether on disk, in read only memory, on any other media or in any other form, are licensed, not sold, to you by RWTH Aachen University. Accepting this nonexclusive license from RWTH Aachen University will permit you to download a copy of the AProVE program code in binary format ("APROVE") and the related documentation ("DOCUMENTATION") and to use the copy of the code and documentation in accordance with the following terms and conditions. RWTH Aachen University retains ownership of APROVE and DOCUMENTATION itself, which is protected by copyright law. - Use and Transfer of the Software
This LICENSE allows you to install and use copies of APROVE on your computer(s). You may not decompile, reverse engineer, disassemble or modify APROVE or parts thereof. Parts of APROVE which are third party software elements integrated into the program may fall under comparable restrictions by their respective licenses (refer to VI below). APROVE and its DOCUMENTATION are being licensed for non-commercial use only. Without executing an applicable commercial license with RWTH Aachen University, no part of APROVE may be sold, offered for sale, or made accessible via commercial services. However, APROVE may be made accessible to third parties on external computer networks for non-commercial use, provided that credit is given to RWTH Aachen University. - Disclaimer of Warranties
You acknowledge and agree that use of APROVE is at your own risk and that the entire risk as to satisfactory quality, performance, accuracy and effort is with you. RWTH Aachen University has no obligation to provide technical support for APROVE and/or its DOCUMENTATION under this LICENSE. RWTH Aachen University is licensing APROVE and accompanying documentation "as is", with no express or implied warranties of any kind, including, but not limited to, any implied warranties of merchantability or fitness for any particular purpose or warranties against infringement of any proprietary rights of a third party. - Limitation of Liability
RWTH Aachen University shall not be liable for any incidental, special, indirect or consequential damages whatsoever (including, but not limited to, damages for loss of profits, loss of data or business interruption) arising out of or related to your use of or inability to use APROVE. This limitation of liability does not apply to personal injuries, injuries to life or health or to damages caused willfully or by gross negligence attributable to RWTH Aachen University. - Transfer of Interest
RWTH Aachen University may at any time assign or transfer all or part of its interest in any rights to APROVE and documentation, and to this license, to an affiliated or unaffiliated company or person. - Third Party Licenses
APROVE contains third party software and icons protected by copyright laws and provided under the terms of the following other licenses, not to be infringed by this LICENSE:- Under Lesser General Public License:
- Under Berkeley Software Distribution:
- ASM Bytecode Outline Plugin, https://andrei.gmxhome.de/bytecode/
- ASM, https://forge.ow2.org/projects/asm/
- Timing Framework, https://java.net/projects/timingframework (see also VI. d) 3.)
- ANTLR, https://www.antlr.org/
- Under Mozilla Public License:
- Under Apache:
- Apache Commons, https://commons.apache.org/
- JDOM, https://www.jdom.org/
- Timing Framework, https://java.net/projects/timingframework
- Under Eclipse Public License:
- Eclipse icons, https://www.iconlet.com/
- Albireo, https://wiki.eclipse.org/Albireo_Project
The Albireo source code is available for download at https://aprove.informatik.rwth-aachen.de/downloads/org.eclipse.albireo.core_0.0.3.v20081031-src.zip
- Sat4j, https://www.sat4j.org. The modified source code is available at https://aprove.informatik.rwth-aachen.de/downloads/sat4j.tar.gz
- ZGRViewer (part of ZVTM), https://zvtm.sourceforge.net. The modified source code is available at https://aprove.informatik.rwth-aachen.de/downloads/zgrviewer.tar.gz
- Controlling Law and Severability The LICENSE will be governed by and construed in accordance with the laws of Germany and shall be subject to the exclusive jurisdiction of the German courts. If for any reason a court of competent jurisdiction finds any provision, or portion thereof, to be unenforceable, the remainder of the LICENSE shall continue in full force and effect.
- Complete Agreement; Governing Language This LICENSE constitutes the entire agreement between the parties with respect to the use of APROVE licensed hereunder and supersedes all prior or contemporaneous understandings regarding such subject matter. No amendment to or modification of this LICENSE will be binding unless in writing and signed by RWTH Aachen University. Any translation of this LICENSE is done for local requirements only. In the event of a dispute between the English and any non-English versions, the English version shall prevail.