Ariadne is a tool for reachability analysis and model checking of hybrid systems. Additionally, it is a framework for rigorous computation featuring arithmetic, linear algebra, calculus, geometry, algebraic and differential equations, and optimization solvers.
- This repository contains the main development fork of the tool. For a more stable version with a less sophisticated user interface, see the release-1.0 repository.
- The latest internal release is v1.9.0. However, the code in the master branch should always be usable.
The installation instructions are presented for Ubuntu 18.04 and macOS 10.14 only. However, openSUSE Tumbleweed and Fedora 29 are known to be working when using their package managers. Windows installations are not supported yet.
For the Ubuntu installation, we will refer to packages available on Aptitude. The macOS installation instead will assume you are using the Brew package manager.
The build system is CMake. The library is tested for compilation using gcc and clang.
The only required library dependencies of Ariadne are GMP and MPFR. If you want to enable the graphical output you will require Cairo (to save into png files) and GTK2 (for window display). Finally, the Python bindings require the Python headers (Python 2 or 3 are supported). In particular for Python, there is an internal Git submodule dependency on the header-only pybind11 library. Therefore in order to fetch the dependency, Git must be installed.
Finally, if you want to build the documentation, you need Doxygen and a working Latex distribution (including the Math packages).
Specific instructions for Ubuntu and macOS follow (documentation packages are excluded).
cmake git libgmp-dev libmpfr-dev libgtk2.0-dev libcairo2-dev
Additional Aptitude package required for the Python interface:
Install the Command Line Developer Tools (will also be asked when installing Homebrew) from the Apple Store
Install Homebrew from http://brew.sh/ . Homebrew packages required:
cmake git mpfr gmp gtk cairo
To build the library in a clean way, it is preferable that you set up a build subdirectory:
$ mkdir build $ cd build
Then you can prepare the build environment, choosing a Release build for maximum performance:
$ cmake .. -DCMAKE_BUILD_TYPE=Release
At this point, if no error arises, you can build the library itself:
$ make ariadne
If you prefer to use the Python interface over the C++ library, you should build the Python module with:
$ make pyariadne
Optionally, you can also build and run the test suite for the library:
$ make tests $ make test
where no error should appear.
To build libraries, tests, examples and tutorials, simply type:
To build the documentation, instead use:
$ make doc
To install the library globally, you must do
$ make install
$ sudo make install
if you require administrator privileges, in particular for a Linux installation. Please note that the installation will build the whole distribution beforehand.
To find the installed library under Ubuntu, you may need to set the LD_LIBRARY_PATH in the .bashrc file of your home directory:
Building executables using Ariadne
The tutorials directory contains three CMake projects that rely on a correct installation of Ariadne. You can copy a project directory in any place on your file system and follow the instructions on the README file inside to check that your installation was successful.
Due to limitations of the C++ standard library on macOS since C++11, you won't be able to build an executable with GCC if the Ariadne library has been built using Clang, and viceversa. Hence on macOS you shall use the same compiler for both Ariadne and any projects that depend on it.
If you would like to contribute to Ariadne, please contact the developers. We are especially interested to hear how the documentation and user interface could be improved.