Tools & Supporting Libraries
I list here some of the tools I develop(ped) for my research activities. Some of them are available in my OPAM repository:
- DeepConcolic: is a toolbox integrating multiple test-case generation tools for assessing the robustness of deep neural networks;
- ReaX: (part of ReaTK, available in my OPAM repository) a discrete controller synthesis tool for infinite state systems (i.e., systems handling data);
- ctrl2hdl is a compiler that translates state systems given to or generated by ReaTK into sequential circuits in a hardware description language like Verilog or VHDL (OPAM package);
- ctrl2lut translates Controllable-Nbac files into stochastic reactive programs in Lutin (OPAM package);
- bzreax allows one to easily use ReaX in the compilation of Heptagon/BZR (OPAM package);
- sams: a tool using synchronous languages and discrete controller synthesis for the coordinated management of autonomic systems;
- argos2lus: (available as an OPAM package) a compiler translating Argos programs into Lustre. Argos is a programming language based on communicating Mealy machines with Integer variables, and whose composition is based on the synchronous semantics. The size of the resulting Lustre program varies linearly in the size of the Argos one.
Over the years I have also been involved in the development and maintenance of various software libraries. Most of them are now distributed in the official OPAM repository:
- apron: is a library for manipulating numerical abstract domains;
- bddapron: is an OCaml library for manipulating logico-numerical abstract domains represented using a combination of Binary Decision Diagrams (BDDs) and purely numerical abstract domains;
- mlcuddidl: is an OCaml interface to the CUDD BDD library;
- mlgmpidl: is an OCaml interface to the GNU Multiple Precision Arithmetic library;
- camllib: is an OCaml library implementing various abstract datatypes.
Various Configuration Files
Since I was inspired by configuration files from other people to create mine, I publish my own set of files on this web page. Notice that private information such as some mail and server addresses have been stripped from these public versions.
My GNU Emacs configuration
I use Gnus to read my emails
- .gnus.el. This file also loads the following one:
- my-split.el defines mail splitting rules.
I also use the Awesome window manager
- This git reporitory contains my configuration for this tool; The "nberth" entry on this page describes various key features implemented in this configuration.
- Trick: .xmodmaprc is my xmodmap configuration file, allowing me to type French accentuated characters directly on QWERTY keyboards, as well as a personal selection of characters available in the Unicode set such as α, β, γ, φ, Φ or even ℕ, ∅, ≤, ∃, ∀, ∈, ∉ and ⇔.
GNU Emacs Modes
Lustre (Toolbox page)
- lustre.el: A mode for editing Lustre files, originally written by Olivier Chevallier, and that I modified;
Controllable-Nbac
- Modes for editing ReaX's input/output files are available in the source code of ReaTK.