diff --git a/.gitignore b/.gitignore
index 41edfa77c693901f40ce4067fcd47b2895c78e64..47456c5290d671210dd19bcaae0280ae3c303916 100644
--- a/.gitignore
+++ b/.gitignore
@@ -44,3 +44,4 @@ farith/
 
 .DS_Store
 /src_common/why3.conf
+/_opam/
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 34a53745c184663ab3a0bd618d8f679da10d752e..869f6d408256bbc78084ea3d8a086e84ad5a9b90 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -43,9 +43,6 @@ tests:
   - git config --global --add safe.directory /builds/pub/colibrics
   - opam-2.1 install . --deps-only --with-test --with-doc --yes --depext-only
   - opam-2.1 install . --deps-only --with-test --with-doc --yes
-  - opam-2.1 repo add coq-released https://coq.inria.fr/opam/released
-  - opam-2.1 install --yes why3 core jingoo yojson logs core coq-flocq --depext-only
-  - opam-2.1 install --yes why3 core jingoo yojson logs core coq-flocq # For generation not done in release mode
   - make
   - make test
   tags:
@@ -71,9 +68,6 @@ generate-static:
   - git config --global --add safe.directory /builds/pub/colibrics
   - opam-2.1 install . --deps-only --with-test --with-doc --yes --depext-only
   - opam-2.1 install . --deps-only --with-test --with-doc --yes
-  - opam-2.1 repo add coq-released https://coq.inria.fr/opam/released
-  - opam-2.1 install --yes why3 core jingoo yojson logs core coq-flocq coq-coq2html --depext-only
-  - opam-2.1 install --yes why3 core jingoo yojson logs core coq-flocq coq-coq2html # For generation not done in release mode
   - echo -e "\e[31mCompile Colibri2 static\e[0m"
   - make
   - make test
diff --git a/CHANGES b/CHANGES
new file mode 100644
index 0000000000000000000000000000000000000000..e11b4d6918add2c85160afdf6a248390a94f50d8
--- /dev/null
+++ b/CHANGES
@@ -0,0 +1,38 @@
+## Release 0.3.3
+  * Bump cmdliner version
+  * Bump OCaml version
+  * Remove some warnings in 4.14
+  * Fix OUnit2 dependency
+  * Support 32bit by removing large integer constant
+
+## Release 0.3.2
+  * Add missing dependencies
+
+## Release 0.3.1
+  * Add lower bounds for dependencies
+  * Attach tests to corresponding packages
+
+## Release 0.3
+
+initial release
+
+### Colibri2
+  * polymorphism, recursive definitions
+  * quantifiers (eager, multi-triggers)
+  * algebraic datatypes (except cycle detection)
+  * Reals: union of interval domain (proved in why3 with Colibrilib)
+  * Reals: normalization sum, product, some factorization, Fourier-Motskin
+    or Simplex
+  * Reals: abs
+  * Int: floor, ceil, abs, Real <-> Int
+  * Floating point: evaluation and some simple propagation (Arthur Correnson)
+  * Bitvectors: only evaluation
+
+### Colibrics
+  * engine
+  * simple constraints
+
+### Colibrilib
+  * interval
+  * union of interval
+  * congruence
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..8000a6faacf471c537530805ab29523c7732e11a
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,504 @@
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+    USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random
+  Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/Makefile b/Makefile
index d2546a48343803c73b306fad78de4717ca23b23b..78d9c93da1e1070f1357dbf07f5ca228338a37a0 100644
--- a/Makefile
+++ b/Makefile
@@ -19,7 +19,7 @@
 ##########################################################################
 
 all:
-	dune build --root=$$(pwd) @install colibri2.opam colibrics.opam
+	dune build --root=$$(pwd) @install colibri2.opam colibrics.opam colibrilib.opam
 
 test:
 	dune runtest --root=$$(pwd)
@@ -132,3 +132,25 @@ headers:
 
 clean:
 	dune clean --root=$$(pwd)
+
+PROJECT_ID=879
+PACKAGE_URL="https://git.frama-c.com/api/v4/projects/$(PROJECT_ID)/packages/generic/colibri2/$(TAG)/colibri2-$(TAG).tbz"
+DESCRIPTION="$(shell sed -n -e "p;n;:next;/^##/Q;p;n;b next" CHANGES | perl -pe 's/\n/\\n/')"
+
+release:
+	@echo -n $(DESCRIPTION)
+	@echo "Is the CHANGES correct for $(TAG) (y/n)?"
+	@read yesno; test "$$yesno" = y
+	dune-release tag $(TAG)
+	dune-release distrib --skip-build --skip-lint
+	curl --header "PRIVATE-TOKEN: $(GITLAB_TOKEN)" \
+	--upload-file _build/colibri2-$(TAG).tbz \
+	$(PACKAGE_URL)
+	echo $(PACKAGE_URL) > _build/asset-$(TAG).url
+	git push origin $(TAG)
+	curl --header 'Content-Type: application/json' \
+	--header "PRIVATE-TOKEN: $(GITLAB_TOKEN)" \
+	--request POST "https://git.frama-c.com/api/v4/projects/$(PROJECT_ID)/releases" \
+	--data '{"name": "Release $(TAG)","tag_name": "$(TAG)", "description": $(DESCRIPTION), "milestones": [], "assets": { "links": [{ "name": "colibri2-$(TAG).tbz", "url": $(PACKAGE_URL), "link_type":"other" }] } }'
+	dune-release opam pkg
+	dune-release opam submit
diff --git a/colibri2.opam b/colibri2.opam
index fc373bc9645c1c8b6b822e826d10bbca1c0ebdf4..b0593c8d7c96a2dfdb0b7717383d6d611ac2f1f1 100644
--- a/colibri2.opam
+++ b/colibri2.opam
@@ -5,35 +5,38 @@ description: "A reimplementation of COLIBRI in OCaml"
 maintainer: ["François Bobot"]
 authors: [
   "François Bobot"
+  "Bruno Marre"
   "Guillaume Bury"
   "Stéphane Graham-Lengrand"
-  "Bruno Marre"
 ]
-license: "LGPL-3.0-only"
-homepage: "https://git.frama-c.com/bobot/colibrics"
-bug-reports: "https://git.frama-c.com/bobot/colibrics/issues"
+license: "LGPL-2.1"
+homepage: "https://colibri.frama-c.com"
+bug-reports: "https://git.frama-c.com/pub/colibrics/issues"
 depends: [
-  "colibrics" {= version}
-  "containers" {>= "2.1"}
+  "colibrilib" {= version}
+  "containers" {>= "3.6.1"}
   "dolmen" {>= "0.7"}
   "dolmen_type" {>= "0.7"}
   "dolmen_loop" {>= "0.7"}
-  "cmdliner" {= "1.0.4"}
+  "cmdliner" {>= "1.1.1"}
   "base" {>= "v0.14.2"}
-  "gen" {>= "0.5.3"}
+  "gen" {>= "1.0"}
+  "re" {>= "1.10.3"}
+  "ppx_here" {>= "v0.14.0"}
   "dune" {>= "3.0"}
   "dune-build-info"
-  "zarith"
-  "ppx_deriving" {> "4.1.5"}
-  "ppx_optcomp"
-  "ppx_hash"
-  "ocamlgraph"
-  "qcheck-core"
+  "zarith" {>= "1.12"}
+  "ppx_deriving" {>= "5.2.1"}
+  "ppx_optcomp" {>= "v0.14.3"}
+  "ppx_hash" {>= "v0.14.0"}
+  "ppx_inline_test" {>= "v0.14.1"}
+  "ocamlgraph" {>= "2.0.0"}
+  "qcheck-core" {>= "0.18.1"}
   "calcium"
   "farith"
-  "ounit2" {with-test}
-  "ocaml" {>= "4.08"}
-  "ocplib-simplex"
+  "ounit2" {>= "2.2.4" & with-test}
+  "ocaml" {>= "4.12"}
+  "ocplib-simplex" {>= "0.4"}
   "odoc" {with-doc}
 ]
 build: [
@@ -50,4 +53,4 @@ build: [
     "@doc" {with-doc}
   ]
 ]
-dev-repo: "git+https://git.frama-c.com/bobot/colibrics.git"
+dev-repo: "git+https://git.frama-c.com/pub/colibrics.git"
diff --git a/colibrics.opam b/colibrics.opam
index 3076ce0b43dcf633866a3411ceb8d1a5e9d72971..1d664512898df0a400660ff16928f7de8befa129 100644
--- a/colibrics.opam
+++ b/colibrics.opam
@@ -1,24 +1,27 @@
 # This file is generated by dune, edit dune-project instead
 opam-version: "2.0"
 synopsis: "A CP solver proved in Why3"
-description:
-  "The core of Colibrics is formally proved using Why3. It offers also libraries that define formally proved simple propagation domains "
+description: "The core of Colibrics is formally proved using Why3."
 maintainer: ["François Bobot"]
 authors: ["François Bobot"]
-homepage: "https://git.frama-c.com/bobot/colibrics"
-bug-reports: "https://git.frama-c.com/bobot/colibrics/issues"
+license: "LGPL-2.1"
+homepage: "https://colibri.frama-c.com"
+bug-reports: "https://git.frama-c.com/pub/colibrics/issues"
 depends: [
-  "ppx_deriving_yojson"
-  "dolmen" {>= "0.5~dev"}
-  "dolmen_type" {>= "0.5~dev"}
-  "dolmen_loop" {>= "0.5~dev"}
+  "ppx_deriving_yojson" {>= "3.6.1"}
+  "dolmen" {>= "0.7"}
+  "dolmen_type" {>= "0.7"}
+  "dolmen_loop" {>= "0.7"}
   "dune" {>= "3.0"}
-  "zarith"
-  "cmdliner" {= "1.0.4"}
+  "zarith" {>= "1.12"}
+  "cmdliner" {>= "1.1.1"}
   "ocaml" {>= "4.08"}
   "core" {>= "v0.14.1"}
-  "jingoo"
-  "logs"
+  "jingoo" {>= "1.4.4"}
+  "logs" {>= "0.7.0"}
+  "why3" {>= "1.4.0"}
+  "yojson"
+  "ocaml" {>= "4.12"}
   "odoc" {with-doc}
 ]
 build: [
@@ -35,4 +38,4 @@ build: [
     "@doc" {with-doc}
   ]
 ]
-dev-repo: "git+https://git.frama-c.com/bobot/colibrics.git"
+dev-repo: "git+https://git.frama-c.com/pub/colibrics.git"
diff --git a/colibrilib.opam b/colibrilib.opam
new file mode 100644
index 0000000000000000000000000000000000000000..0df2c5f153c881466c57414f0f36c3d2e1059dbb
--- /dev/null
+++ b/colibrilib.opam
@@ -0,0 +1,30 @@
+# This file is generated by dune, edit dune-project instead
+opam-version: "2.0"
+synopsis: "A library of domains and propagators proved in Why3"
+description: "Interval, and union of interval domains defined formally"
+maintainer: ["François Bobot"]
+authors: ["François Bobot"]
+license: "LGPL-2.1"
+homepage: "https://colibri.frama-c.com"
+bug-reports: "https://git.frama-c.com/pub/colibrics/issues"
+depends: [
+  "dune" {>= "3.0"}
+  "zarith" {>= "1.12"}
+  "ocaml" {>= "4.12"}
+  "odoc" {with-doc}
+]
+build: [
+  ["dune" "subst"] {dev}
+  [
+    "dune"
+    "build"
+    "-p"
+    name
+    "-j"
+    jobs
+    "@install"
+    "@runtest" {with-test}
+    "@doc" {with-doc}
+  ]
+]
+dev-repo: "git+https://git.frama-c.com/pub/colibrics.git"
diff --git a/dune-project b/dune-project
index 31cf0dbb133228e32c33bf677b9e19869e3b1852..dcac8be62d81a587edaffe265e62bb45c4665ad9 100644
--- a/dune-project
+++ b/dune-project
@@ -2,63 +2,82 @@
 
 (cram enable)
 (generate_opam_files true)
-(using coq 0.3)
 (using ctypes 0.1)
+;(strict_package_deps true)
 
-(name colibrics)
+(source (uri "git+https://git.frama-c.com/pub/colibrics.git"))
+(homepage "https://colibri.frama-c.com")
+(bug_reports "https://git.frama-c.com/pub/colibrics/issues")
+(license "LGPL-2.1")
+
+(name colibri2)
 (package
   (name colibrics)
   (authors "François Bobot")
   (maintainers "François Bobot")
   (synopsis "A CP solver proved in Why3")
-  (description "The core of Colibrics is formally proved using Why3. It offers also libraries that define formally proved simple propagation domains ")
+  (description "The core of Colibrics is formally proved using Why3.")
   (depends
-    "ppx_deriving_yojson"
-    ("dolmen" (>= "0.5~dev"))
-    ("dolmen_type" (>= "0.5~dev"))
-    ("dolmen_loop" (>= "0.5~dev"))
+    ("ppx_deriving_yojson" (>= "3.6.1"))
+    ("dolmen" (>= "0.7"))
+    ("dolmen_type" (>= "0.7"))
+    ("dolmen_loop" (>= "0.7"))
     "dune"
-    "zarith"
-    ("cmdliner" (= 1.0.4))
+    ("zarith" (>= "1.12"))
+    ("cmdliner" (>= 1.1.1))
     ("ocaml" (>= "4.08"))
     ("core" (>= "v0.14.1"))
-    "jingoo" "logs"
+    ("jingoo" (>= "1.4.4"))
+    ("logs" (>= "0.7.0"))
+    ("why3" (>= "1.4.0"))
+     "yojson"
+    (ocaml (>= 4.12))
   )
 )
 
-(source (uri "git+https://git.frama-c.com/bobot/colibrics.git"))
-(homepage "https://git.frama-c.com/bobot/colibrics")
-(bug_reports "https://git.frama-c.com/bobot/colibrics/issues")
+(package
+  (name colibrilib)
+  (authors "François Bobot")
+  (maintainers "François Bobot")
+  (synopsis "A library of domains and propagators proved in Why3")
+  (description "Interval, and union of interval domains defined formally")
+  (depends
+    ("zarith" (>= "1.12"))
+    (ocaml (>= 4.12))
+  )
+)
 
 
 (package (name colibri2)
-         (authors "François Bobot" "Guillaume Bury" "Stéphane Graham-Lengrand" "Bruno Marre")
+         (authors "François Bobot" "Bruno Marre" "Guillaume Bury" "Stéphane Graham-Lengrand")
          (maintainers "François Bobot")
-         (license LGPL-3.0-only)
          (synopsis "A CP solver for smtlib")
          (description "A reimplementation of COLIBRI in OCaml")
          (depends
-           ("colibrics" (= :version))
-           ("containers" (>= "2.1"))
+           ("colibrilib" (= :version))
+           ("containers" (>= "3.6.1"))
            ("dolmen" (>= "0.7"))
            ("dolmen_type" (>= "0.7"))
            ("dolmen_loop" (>= "0.7"))
-           ("cmdliner" (= 1.0.4))
+           ("cmdliner" (>= 1.1.1))
            ("base" (>= v0.14.2))
-           ("gen" (>= 0.5.3))
+           ("gen" (>= 1.0))
+           ("re" (>= 1.10.3))
+           ("ppx_here" (>= v0.14.0))
            "dune"
            "dune-build-info"
-           "zarith"
-           ("ppx_deriving" (> "4.1.5"))
-           "ppx_optcomp"
-           "ppx_hash"
-           "ocamlgraph"
-           "qcheck-core"
+           ("zarith" (>= "1.12"))
+           ("ppx_deriving" (>= "5.2.1"))
+           ("ppx_optcomp" (>= "v0.14.3"))
+           ("ppx_hash" (>= "v0.14.0"))
+           ("ppx_inline_test" (>= v0.14.1))
+           ("ocamlgraph" (>= "2.0.0"))
+           ("qcheck-core" (>= "0.18.1"))
            ; ("ppx_deriving_qcheck" (>= 0.2.0))
            "calcium"
            "farith"
-           ("ounit2" :with-test)
-          ("ocaml" (>= "4.08"))
-           "ocplib-simplex"
+           ("ounit2" (and (>= "2.2.4") :with-test))
+          ("ocaml" (>= "4.12"))
+          ("ocplib-simplex" (>= "0.4"))
          )
 )
diff --git a/src/bin/main.ml b/src/bin/main.ml
index d4f909723946a673a18f6c218200b5bb0898d28d..d18518b57c5b2c7099cc80bed03eebd98a3a7c43 100644
--- a/src/bin/main.ml
+++ b/src/bin/main.ml
@@ -65,11 +65,12 @@ let () =
     `S Cmdliner.Manpage.s_authors;
     `P "Francois Bobot <francois.bobot@cea.fr>"
   ] in
-  let info = Cmdliner.Term.info ~man ~version:"0.1" "dolmen" in
-  let st = match Cmdliner.Term.eval (Options.state, info) with
-    | `Version | `Help -> exit 0
-    | `Error `Parse | `Error `Term | `Error `Exn -> exit 2
-    | `Ok opt -> opt
+  let info = Cmdliner.Cmd.info ~man ~version:"0.1" "dolmen" in
+  let cmd = Cmdliner.Cmd.v info Options.state in
+  let st = match Cmdliner.Cmd.eval_value cmd with
+    | Ok `Version | Ok `Help -> exit 0
+    | Error (`Parse | `Term | `Exn) -> exit 2
+    | Ok (`Ok opt) -> opt
   in
   let st, g =
     try Loop.Parser.parse [] st
diff --git a/src/bin/options.ml b/src/bin/options.ml
index 721859b3db371204358e049695784fa647b050ab..bd5a281cf0363650a9fa1f809d5c0dc1586a3bf7 100644
--- a/src/bin/options.ml
+++ b/src/bin/options.ml
@@ -152,12 +152,10 @@ let parse_time arg =
 let size_string f =
   let n = int_of_float f in
   let aux n div = n / div, n mod div in
-  let n_tera, n = aux n 1_000_000_000_000 in
   let n_giga, n = aux n 1_000_000_000 in
   let n_mega, n = aux n 1_000_000 in
   let n_kilo, n = aux n 1_000 in
   let print_aux s n = if n <> 0 then (string_of_int n) ^ s else "" in
-  (print_aux "To" n_tera) ^
   (print_aux "Go" n_giga) ^
   (print_aux "Mo" n_mega) ^
   (print_aux "ko" n_kilo) ^
diff --git a/src/lib/constraints/dune b/src/lib/constraints/dune
index 27671d52b611fefbf202be1dad7602c8a15f0cc1..28431dbfd7dce7a2c6326b9a2d62ffeed9456627 100644
--- a/src/lib/constraints/dune
+++ b/src/lib/constraints/dune
@@ -1,14 +1,20 @@
 (rule
  (targets simple.mlw)
  (action
-  (run generator/generate_simple.exe %{dep:constraints.json}
-    %{dep:simple.template.mlw} simple.mlw)))
+  (run
+   generator/generate_simple.exe
+   %{dep:constraints.json}
+   %{dep:simple.template.mlw}
+   simple.mlw)))
 
 (rule
  (targets dune.generated)
  (action
-  (run generator/generate_simple.exe %{dep:constraints.json}
-    %{dep:dune.template.generated} dune.generated))
+  (run
+   generator/generate_simple.exe
+   %{dep:constraints.json}
+   %{dep:dune.template.generated}
+   dune.generated))
  (mode promote))
 
 (include dune.generated)
diff --git a/src/lib/dune b/src/lib/dune
index 5135df68de02a4a72b140b96bf44dfc6fe330134..6404a361eac2453303f6e4ffbc9dce4eeae47f88 100644
--- a/src/lib/dune
+++ b/src/lib/dune
@@ -5,30 +5,103 @@
   (-w -3)))
 
 (rule
- (deps cp.mlw all.mlw utils/tagtbl.mlw utils/extstd.mlw cp.drv
-   constraints/simple.mlw)
- (targets utils__extstd__Int63.ml utils__extstd__Bool.ml cp__Impl0.ml
-   cp__Var.ml cp__Var0.ml cp__Type.ml cp__DomB.ml cp__DomI.ml
-   constraints__simple__Simple.ml cp__ConstraintHelpers.ml all__All.ml
-   all__API.ml all__APIDefensive.ml)
+ (deps
+  cp.mlw
+  all.mlw
+  utils/tagtbl.mlw
+  utils/extstd.mlw
+  cp.drv
+  constraints/simple.mlw)
+ (targets
+  utils__extstd__Int63.ml
+  utils__extstd__Bool.ml
+  cp__Impl0.ml
+  cp__Var.ml
+  cp__Var0.ml
+  cp__Type.ml
+  cp__DomB.ml
+  cp__DomI.ml
+  constraints__simple__Simple.ml
+  cp__ConstraintHelpers.ml
+  all__All.ml
+  all__API.ml
+  all__APIDefensive.ml)
  (action
-  (run why3 extract -L . -D ocaml64 -D cp.drv -o . --modular
-    utils.extstd.Int63 utils.extstd.Bool cp.Impl0 cp.Var cp.Var0 cp.Type
-    cp.DomI cp.DomB constraints.simple.Simple cp.ConstraintHelpers all.All
-    all.API all.APIDefensive)))
+  (run
+   why3
+   extract
+   -L
+   .
+   -D
+   ocaml64
+   -D
+   cp.drv
+   -o
+   .
+   --modular
+   utils.extstd.Int63
+   utils.extstd.Bool
+   cp.Impl0
+   cp.Var
+   cp.Var0
+   cp.Type
+   cp.DomI
+   cp.DomB
+   constraints.simple.Simple
+   cp.ConstraintHelpers
+   all.All
+   all.API
+   all.APIDefensive)))
 
 ;; Doesn't extract anything currently
+
 (rule
- (deps cp.mlw all.mlw utils/tagtbl.mlw utils/extstd.mlw cp_c.drv
-   constraints/simple.mlw)
- (targets int63.c bool.c impl0.c
-   var.c var0.c type.c domb.c domi.c
-   simple.c constrainthelpers.c all.c
-   api.c apidefensive.c)
+ (deps
+  cp.mlw
+  all.mlw
+  utils/tagtbl.mlw
+  utils/extstd.mlw
+  cp_c.drv
+  constraints/simple.mlw)
+ (targets
+  int63.c
+  bool.c
+  impl0.c
+  var.c
+  var0.c
+  type.c
+  domb.c
+  domi.c
+  simple.c
+  constrainthelpers.c
+  all.c
+  api.c
+  apidefensive.c)
  (action
-  (run why3 extract -L . -D c -D cp_c.drv -o . --modular
-    utils.extstd.Int63 utils.extstd.Bool cp.Impl0 cp.Var cp.Var0 cp.Type
-    cp.DomI cp.DomB constraints.simple.Simple cp.ConstraintHelpers all.All
-    all.API all.APIDefensive)))
+  (run
+   why3
+   extract
+   -L
+   .
+   -D
+   c
+   -D
+   cp_c.drv
+   -o
+   .
+   --modular
+   utils.extstd.Int63
+   utils.extstd.Bool
+   cp.Impl0
+   cp.Var
+   cp.Var0
+   cp.Type
+   cp.DomI
+   cp.DomB
+   constraints.simple.Simple
+   cp.ConstraintHelpers
+   all.All
+   all.API
+   all.APIDefensive)))
 
 (copy_files constraints/*.ml)
diff --git a/src_colibri2/bin/dune b/src_colibri2/bin/dune
index 24f1208d37aef106b7e6b05c1efc95c57624cf2e..ecb413746853c06ccbf7eb4eb09fc7a86331085d 100644
--- a/src_colibri2/bin/dune
+++ b/src_colibri2/bin/dune
@@ -15,7 +15,6 @@
   dolmen_type
   dolmen_loop
   dune-build-info
-  ; colibrics
   ; <- Here insert new theories ! ->
   colibri2.solver
   colibri2.theories.bool
@@ -31,9 +30,10 @@
  (name colibri2_stage0)
  ; (public_name colibri2)
  ; (package colibri2)
- (flags -linkall
-        ; FOR STATIC -ccopt -static
- )
+ (flags
+  -linkall
+  ; FOR STATIC -ccopt -static
+  )
  (libraries colibri2_main colibri2.theories.LRA.stages.stage0)
  (modules colibri2_stage0))
 
@@ -50,9 +50,10 @@
  (name colibri2_stage1)
  ; (public_name colibri2)
  ; (package colibri2)
- (flags -linkall
-        ; FOR STATIC -ccopt -static
- )
+ (flags
+  -linkall
+  ; FOR STATIC -ccopt -static
+  )
  (libraries colibri2_main colibri2.theories.LRA.stages.stage1)
  (modules colibri2_stage1))
 
@@ -69,9 +70,10 @@
  (name colibri2_stage2)
  (public_name colibri2)
  (package colibri2)
- (flags -linkall
-        ; FOR STATIC -ccopt -static
- )
+ (flags
+  -linkall
+  ; FOR STATIC -ccopt -static
+  )
  (libraries colibri2_main colibri2.theories.LRA.stages.stage2)
  (modules colibri2_stage2))
 
diff --git a/src_colibri2/bin/main.ml b/src_colibri2/bin/main.ml
index b48b60b99c7815d004f5f1af7fbe6b018ce6a8f5..9176d9fb9e5b20dd4da45b79cea87d26b62b9504 100644
--- a/src_colibri2/bin/main.ml
+++ b/src_colibri2/bin/main.ml
@@ -40,13 +40,14 @@ let () =
     | None -> "n/a"
     | Some v -> Build_info.V1.Version.to_string v
   in
-  let info = Cmdliner.Term.info ~man ~version "Colibri2" in
+  let info = Cmdliner.Cmd.info ~man ~version "Colibri2" in
   let theories = Colibri2_core.ForSchedulers.default_theories () in
+  let cli_term = Cmdliner.Cmd.v info (Options.state theories) in
   let st, show_steps, check_status, show_check_sat_result =
-    match Cmdliner.Term.eval (Options.state theories, info) with
-    | `Version | `Help -> exit 0
-    | `Error `Parse | `Error `Term | `Error `Exn -> exit 2
-    | `Ok opt -> opt
+    match Cmdliner.Cmd.eval_value cli_term with
+    | Ok (`Version | `Help) -> exit 0
+    | Error (`Parse | `Term | `Exn) -> exit 2
+    | Ok (`Ok opt) -> opt
   in
   try
     Colibri2_core.Debug.add_time_during stat_runtime @@ fun () ->
diff --git a/src_colibri2/bin/options.ml b/src_colibri2/bin/options.ml
index b9f579dd9af3c1beb25c57904237ab7cba517d79..612bc1caab6184c16926093f64fdd711e9403380 100644
--- a/src_colibri2/bin/options.ml
+++ b/src_colibri2/bin/options.ml
@@ -29,7 +29,6 @@ open Cmdliner
 (* ************************************************************************* *)
 
 let gc_section = "GC OPTIONS"
-
 let common_section = Manpage.s_options
 
 (* State creation *)
@@ -104,7 +103,6 @@ let mode_conv = Arg.enum [ ("full", `Full); ("incremental", `Incremental) ]
 (* ************************************************************************* *)
 
 let output_to_string = function `Stdout -> "<stdout>" | `File f -> f
-
 let parse_output = function "stdout" -> Ok `Stdout | f -> Ok (`File f)
 
 let output_conv =
@@ -115,9 +113,7 @@ let output_conv =
 (* ************************************************************************ *)
 
 let nb_sec_minute = 60
-
 let nb_sec_hour = 60 * nb_sec_minute
-
 let nb_sec_day = 24 * nb_sec_hour
 
 let time_string f =
@@ -149,7 +145,7 @@ let parse_time arg =
     | _ -> `Error "bad numeric argument"
   with Failure _ -> `Error "bad numeric argument"
 
-let parse_limit_last_effort : _ Arg.parser =
+let parse_limit_last_effort =
   let rint = Re.(group @@ rep1 digit) in
   let rfloat =
     Re.(group @@ seq [ rep1 digit; opt (seq [ char '.'; rep digit ]) ])
@@ -199,13 +195,12 @@ let print_limit_last_effort : _ Arg.printer =
 let size_string f =
   let n = int_of_float f in
   let aux n div = (n / div, n mod div) in
-  let n_tera, n = aux n 1_000_000_000_000 in
   let n_giga, n = aux n 1_000_000_000 in
   let n_mega, n = aux n 1_000_000 in
   let n_kilo, n = aux n 1_000 in
   let print_aux s n = if n <> 0 then string_of_int n ^ s else "" in
-  print_aux "To" n_tera ^ print_aux "Go" n_giga ^ print_aux "Mo" n_mega
-  ^ print_aux "ko" n_kilo ^ print_aux "" n
+  print_aux "Go" n_giga ^ print_aux "Mo" n_mega ^ print_aux "ko" n_kilo
+  ^ print_aux "" n
 
 let print_size fmt f = Format.fprintf fmt "%s" (size_string f)
 
@@ -227,9 +222,7 @@ let parse_size arg =
   with Failure _ -> `Error "bad numeric argument"
 
 let c_time = (parse_time, print_time)
-
 let c_size = (parse_size, print_size)
-
 let c_limit_last_effort = (parse_limit_last_effort, print_limit_last_effort)
 
 (* Gc Options parsing *)
@@ -424,7 +417,9 @@ let state theories =
     let doc = Format.asprintf "Activate learning." in
     Arg.(
       value & flag
-      & info ~env:(env_var ~doc "COLIBRI2_LEARNING") [ "learning" ] ~docs ~doc)
+      & info
+          ~env:(Cmd.Env.info ~doc "COLIBRI2_LEARNING")
+          [ "learning" ] ~docs ~doc)
   in
   let last_effort_limit =
     let doc =
diff --git a/src_colibri2/core/choice_group.mli b/src_colibri2/core/choice_group.mli
index 12cf70fa5735480c490bd13b62a9b7858f7e29cc..36c84f691a7b80b263877900bfc8e9f6869540bc 100644
--- a/src_colibri2/core/choice_group.mli
+++ b/src_colibri2/core/choice_group.mli
@@ -23,9 +23,7 @@ type t
     Used for propagating into a term without decisions *)
 
 val create : _ Egraph.t -> t
-
 val activate : _ Egraph.t -> t -> unit
-
 val add_to_group : _ Egraph.t -> Nodes.ThTerm.t -> t -> unit
 
 val register_decision : _ Egraph.t -> Nodes.ThTerm.t -> Egraph.choice -> unit
diff --git a/src_colibri2/core/colibri2_core.ml b/src_colibri2/core/colibri2_core.ml
index b6bcddbe115585a63bd68f364e059d34fcb66471..0cd4dc2ff6b1d7249591e8dc7200ddba1fdcfec3 100644
--- a/src_colibri2/core/colibri2_core.ml
+++ b/src_colibri2/core/colibri2_core.ml
@@ -87,7 +87,6 @@ module Dom = struct
    representative *)
 
     val pp : Format.formatter -> t -> unit
-
     val key : t Kind.t
   end
 
@@ -99,9 +98,7 @@ module Dom = struct
     type t
 
     val equal : t -> t -> bool
-
     val pp : Format.formatter -> t -> unit
-
     val key : t Kind.t
 
     val inter : Egraph.wt -> t -> t -> t option
@@ -127,7 +124,6 @@ module Dom = struct
       type t = L.t
 
       let pp = L.pp
-
       let key = L.key
 
       let set_dom d node v =
@@ -232,7 +228,6 @@ module Debug = struct
   include Colibri2_stdlib.Debug
 
   let decision = Egraph.print_decision
-
   let contradiction = Egraph.print_contradiction
 end
 
@@ -240,15 +235,12 @@ module ForSchedulers = struct
   module Backtrackable = Egraph.Backtrackable
 
   let default_theories = Egraph.default_theories
-
   let ground_init = Ground.init
-
   let interp_init = Interp.init
 
   module Fix_model = Interp.Fix_model
 
   let get_event_priority = Events.Wait.get_priority
-
   let flush_internal = Egraph.flush_internal
 
   module Options = Options
@@ -266,7 +258,6 @@ module Choice = struct
   }
 
   let register d g dec = Choice_group.register_decision d (Ground.thterm g) dec
-
   let register_thterm = Choice_group.register_decision
 
   module Group = Choice_group
diff --git a/src_colibri2/core/colibri2_core.mli b/src_colibri2/core/colibri2_core.mli
index e79c02b6cd00a55138779c41157750a8cc883540..e95a01dfd0ea327835ef9975289d88e04e574a23 100644
--- a/src_colibri2/core/colibri2_core.mli
+++ b/src_colibri2/core/colibri2_core.mli
@@ -41,7 +41,6 @@
 
 module rec Egraph : sig
   type 'a t
-
   type rw
 
   type wt = rw t
@@ -59,7 +58,6 @@ module rec Egraph : sig
   (** [find_def d n] finds the representative of the equivalence class of [n] *)
 
   val find : _ t -> Node.t -> Node.t
-
   val is_repr : _ t -> Node.t -> bool
 
   val get_dom : _ t -> 'a Dom.Kind.t -> Node.t -> 'a option
@@ -77,9 +75,7 @@ module rec Egraph : sig
   (** Can raise UninitializedEnv *)
 
   val set_env : _ t -> 'a Env.Saved.t -> 'a -> unit
-
   val get_unsaved_env : _ t -> 'a Env.Unsaved.t -> 'a
-
   val context : _ t -> Context.creator
 
   val register : _ t -> Node.t -> unit
@@ -106,7 +102,6 @@ module rec Egraph : sig
   (** raises {!Contradiction} *)
 
   exception Contradiction
-
   exception NotRegistered
 end
 
@@ -127,13 +122,11 @@ end
 and Ground : sig
   module rec Subst : sig
     type ty = Ty.t Expr.Ty.Var.M.t [@@deriving show, hash, ord, eq]
-
     type t = { term : Node.t Expr.Term.Var.M.t; ty : ty }
 
     include Colibri2_popop_lib.Popop_stdlib.Datatype with type t := t
 
     val empty : t
-
     val distinct_union : t -> t -> t
   end
 
@@ -182,7 +175,6 @@ and Ground : sig
   }
 
   module Term : Colibri2_popop_lib.Popop_stdlib.Datatype with type t = s
-
   include Colibri2_popop_lib.Popop_stdlib.Datatype
 
   val node : t -> Node.t
@@ -327,21 +319,14 @@ and Node : sig
 
   module HC : sig
     type 'a t
-
     type key
 
     val create : 'a Format.printer -> string -> 'a t
-
     val remove : 'a t -> _ Egraph.t -> key -> unit
-
     val set : 'a t -> _ Egraph.t -> key -> 'a -> unit
-
     val find : 'a t -> _ Egraph.t -> key -> 'a
-
     val find_opt : 'a t -> _ Egraph.t -> key -> 'a option
-
     val mem : 'a t -> _ Egraph.t -> key -> bool
-
     val change : ('a option -> 'a option) -> 'a t -> _ Egraph.t -> key -> unit
   end
   with type key := t
@@ -413,7 +398,6 @@ and Value : sig
   (** Return the corresponding node from a value *)
 
   val node : t -> Node.t
-
   val value : ('a, _) Kind.t -> t -> 'a option
 
   type kind = Value : (_, 'b) Kind.t * 'b -> kind
@@ -443,13 +427,9 @@ and Value : sig
     (** Return the value from a nodevalue *)
 
     val nodevalue : t -> Value.t
-
     val of_nodevalue : Value.t -> t option
-
     val of_value : s -> Value.t
-
     val coerce_nodevalue : Value.t -> t
-
     val coerce_value : Value.t -> s
   end
 
@@ -479,7 +459,6 @@ and Dom : sig
    representative *)
 
     val pp : Format.formatter -> t -> unit
-
     val key : t Kind.t
   end
 
@@ -489,9 +468,7 @@ and Dom : sig
     type t
 
     val equal : t -> t -> bool
-
     val pp : Format.formatter -> t -> unit
-
     val key : t Kind.t
 
     val inter : Egraph.wt -> t -> t -> t option
@@ -551,9 +528,7 @@ module Interp : sig
     (** cartesian product {!Base.Sequence.cartesian_product} *)
 
     val ( let* ) : 'a t -> ('a -> 'b t) -> 'b t
-
     val map : 'a t -> f:('a -> 'b) -> 'b t
-
     val filter_map : 'a t -> f:('a -> 'b option) -> 'b t
 
     val unfold_with :
@@ -680,21 +655,14 @@ module Datastructure : sig
 
   module type Sig = sig
     type 'a t
-
     type key
 
     val create : 'a Format.printer -> string -> 'a t
-
     val remove : 'a t -> _ Egraph.t -> key -> unit
-
     val set : 'a t -> _ Egraph.t -> key -> 'a -> unit
-
     val find : 'a t -> _ Egraph.t -> key -> 'a
-
     val find_opt : 'a t -> _ Egraph.t -> key -> 'a option
-
     val mem : 'a t -> _ Egraph.t -> key -> bool
-
     val change : ('a option -> 'a option) -> 'a t -> _ Egraph.t -> key -> unit
   end
 
@@ -705,15 +673,11 @@ module Datastructure : sig
 
   module type Sig2 = sig
     type 'a t
-
     type key
 
     val create : 'a Format.printer -> string -> (Context.creator -> 'a) -> 'a t
-
     val set : 'a t -> _ Egraph.t -> key -> 'a -> unit
-
     val find : 'a t -> _ Egraph.t -> key -> 'a
-
     val change : ('a -> 'a) -> 'a t -> _ Egraph.t -> key -> unit
   end
 
@@ -725,16 +689,13 @@ module Datastructure : sig
 
   module type Memo = sig
     type 'a t
-
     type key
 
     val create :
       'a Format.printer -> string -> (Context.creator -> key -> 'a) -> 'a t
 
     val find : 'a t -> _ Egraph.t -> key -> 'a
-
     val iter : (key -> 'a -> unit) -> 'a t -> _ Egraph.t -> unit
-
     val fold : (key -> 'a -> 'acc -> 'acc) -> 'a t -> _ Egraph.t -> 'acc -> 'acc
   end
 
@@ -745,15 +706,10 @@ module Datastructure : sig
     type 'a t
 
     val create : 'a Format.printer -> string -> 'a t
-
     val push : 'a t -> _ Egraph.t -> 'a -> unit
-
     val iter : f:('a -> unit) -> 'a t -> _ Egraph.t -> unit
-
     val fold : f:('acc -> 'a -> 'acc) -> init:'acc -> 'a t -> _ Egraph.t -> 'acc
-
     val length : 'a t -> _ Egraph.t -> int
-
     val get : 'a t -> _ Egraph.t -> int -> 'a
   end
 
@@ -761,9 +717,7 @@ module Datastructure : sig
     type 'a t
 
     val create : 'a Fmt.t -> string -> 'a -> 'a t
-
     val get : 'a t -> _ Egraph.t -> 'a
-
     val set : 'a t -> _ Egraph.t -> 'a -> unit
   end
 end
@@ -1010,31 +964,24 @@ end
 
 module Monad : sig
   type 'a monad
-
   type sequence
 
   val getd : ?def:'a -> 'a Dom.Kind.t -> Node.t -> 'a option monad
-
   val setd : 'a Dom.Kind.t -> Node.t -> 'a option monad -> sequence
 
   val updd :
     (Egraph.wt -> Node.t -> 'a -> unit) -> Node.t -> 'a option monad -> sequence
 
   val getv : ('a, _) Value.Kind.t -> Node.t -> 'a option monad
-
   val setv : ('a, _) Value.Kind.t -> Node.t -> 'a option monad -> sequence
 
   val exec_ro : (Egraph.rt -> unit) -> 'a monad -> 'a monad
   (** An hook in the middle, for printing debug message for example *)
 
   val ( let+ ) : 'a option monad -> ('a -> 'c) -> 'c option monad
-
   val ( let* ) : 'a option monad -> ('a -> 'c option) -> 'c option monad
-
   val ( and+ ) : 'a option monad -> 'b option monad -> ('a * 'b) option monad
-
   val ( && ) : sequence -> sequence -> sequence
-
   val attach : _ Egraph.t -> ?thterm:ThTerm.t -> sequence -> unit
 end
 
@@ -1045,9 +992,7 @@ module rec DaemonWithKey : sig
     module Key : Colibri2_popop_lib.Popop_stdlib.Datatype
 
     val delay : Events.delay
-
     val run : Egraph.wt -> Key.t -> state
-
     val name : string
   end
 
@@ -1145,7 +1090,6 @@ and Events : sig
     (** The function run after the delay *)
 
     val key : runable Dem.t
-
     val delay : delay
   end
 
@@ -1214,7 +1158,6 @@ end
 
 module Choice : sig
   type choice_state = DecNo | DecTodo of (Egraph.wt -> unit) list
-
   and t = { choice : Egraph.wt -> choice_state; prio : int; print_cho : string }
 
   val register : _ Egraph.t -> Ground.t -> t -> unit
@@ -1637,19 +1580,14 @@ module Debug : sig
   (** Print only if the flag is set *)
 
   val decision : flag
-
   val contradiction : flag
 
   type 'a stat
 
   val register_stats_int : string -> int stat
-
   val register_stats_time : string -> float stat
-
   val add_time_during : float stat -> (unit -> 'a) -> 'a
-
   val incr : int stat -> unit
-
   val decr : int stat -> unit
 
   val real_dprintf :
@@ -1710,7 +1648,6 @@ module ForSchedulers : sig
   (** Initialize the module interp for later use *)
 
   val get_event_priority : Events.daemon_key -> Events.delay
-
   val flush_internal : Egraph.wt -> unit
 
   module Fix_model : sig
@@ -1726,9 +1663,7 @@ module ForSchedulers : sig
     type options
 
     val set_egraph : _ Egraph.t -> options -> unit
-
     val parser : unit -> options Cmdliner.Term.t
-
     val default_options : unit -> options
   end
 end
diff --git a/src_colibri2/core/dune b/src_colibri2/core/dune
index a8235e738498a16dcde303952e863ad2c21bd97a..4c7d7ff1b8cc5d94e45e4276dd1c0c25e32a2c65 100644
--- a/src_colibri2/core/dune
+++ b/src_colibri2/core/dune
@@ -2,14 +2,36 @@
  (name colibri2_core)
  (public_name colibri2.core)
  (synopsis "core for colibri2, e.g. trail, egraph")
- (libraries containers ocamlgraph str colibri2.stdlib colibri2.popop_lib dolmen.std dolmen_loop cmdliner)
+ (libraries
+  containers
+  ocamlgraph
+  str
+  colibri2.stdlib
+  colibri2.popop_lib
+  dolmen.std
+  dolmen_loop
+  cmdliner)
  (preprocess
   (pps ppx_deriving.std ppx_hash))
- (flags :standard -w +a-4-42-44-48-50-58-60-40-9@8 -color always -open
-   Containers -open Colibri2_stdlib -open Std)
- (ocamlopt_flags :standard -O3 -bin-annot -unbox-closures
-                 -unbox-closures-factor 20)
- (private_modules nodes egraph domKind demon events datastructure)
-)
+ (flags
+  :standard
+  -w
+  +a-4-42-44-48-50-58-60-40-9@8
+  -color
+  always
+  -open
+  Containers
+  -open
+  Colibri2_stdlib
+  -open
+  Std)
+ (ocamlopt_flags
+  :standard
+  -O3
+  -bin-annot
+  -unbox-closures
+  -unbox-closures-factor
+  20)
+ (private_modules nodes egraph domKind demon events datastructure))
 
 (copy_files structures/*.ml*)
diff --git a/src_colibri2/core/egraph.ml b/src_colibri2/core/egraph.ml
index 29493d5bd3faa133a59693b63f527cf5bbcdc71b..0256693c365887386c726a87a249be31f620ae6d 100644
--- a/src_colibri2/core/egraph.ml
+++ b/src_colibri2/core/egraph.ml
@@ -79,7 +79,6 @@ module Def = struct
       saved_repr  : Node.t Node.M.t;
       saved_rang  : int Node.M.t;
       saved_event_repr :  event_node Bag.t Node.M.t;
-      saved_event_any_repr : event_node Bag.t;
       saved_event_value : (ro delayed_t -> Node.t -> Value.t -> Events.enqueue) Bag.t Node.M.t;
       saved_event_reg : event_node Bag.t Node.M.t;
       saved_event_any_reg : event_node Bag.t;
@@ -215,7 +214,6 @@ module Hidden = Context.Make(struct
         saved_repr = t.repr;
         saved_rang = t.rang;
         saved_event_repr = t.event_repr;
-        saved_event_any_repr = t.event_any_repr;
         saved_event_value = t.event_value;
         saved_event_reg = t.event_reg;
         saved_event_any_reg = t.event_any_reg;
diff --git a/src_colibri2/core/events.ml b/src_colibri2/core/events.ml
index 15f84bdcbe7b843e395d97cdeea3a2d7c779f8f7..e8091abc00541794392926685a225c5f1c32e94b 100644
--- a/src_colibri2/core/events.ml
+++ b/src_colibri2/core/events.ml
@@ -22,18 +22,6 @@
 
 module Dem = Keys.Make_key ()
 
-module Print = struct
-  (** Cutting the knot for pp *)
-
-  type pdem_runable = {
-    mutable pdem_runable : 'd. 'd Dem.t -> 'd Format.printer;
-  }
-
-  (** called too early *)
-  let pdem_runable : pdem_runable =
-    { pdem_runable = (fun _ _ _ -> assert false) }
-end
-
 type delay =
   | Immediate
   | Delayed_by of int
@@ -62,22 +50,15 @@ module Wait = struct
       type runable
 
       val print_runable : runable Format.printer
-
       val run : delayed -> runable -> unit
-
       val key : runable Dem.t
-
       val delay : delay
     end
 
     val register_dem : (module Dem with type runable = 'd) -> unit
-
     val get_dem : 'd Dem.t -> (module Dem with type runable = 'd)
-
     val get_priority : daemon_key -> delay
-
     val print_dem_runable : 'b Dem.t -> 'b Format.printer
-
     val is_well_initialized : unit -> bool
   end
 
@@ -90,11 +71,8 @@ module Wait = struct
       type runable
 
       val print_runable : runable Format.printer
-
       val run : delayed -> runable -> unit
-
       val key : runable Dem.t
-
       val delay : delay
     end
 
@@ -111,7 +89,6 @@ module Wait = struct
     end)
 
     let register_dem = Registry.register
-
     let get_dem = Registry.get
 
     let get_priority = function
@@ -120,9 +97,6 @@ module Wait = struct
           Dem.delay
 
     let print_dem_runable = Registry.print
-
-    let () = Print.pdem_runable.Print.pdem_runable <- print_dem_runable
-
     let is_well_initialized = Registry.is_well_initialized
   end
 end
diff --git a/src_colibri2/core/events.mli b/src_colibri2/core/events.mli
index ebf78a13b5f29f566c71da3bc3e82e846938aa70..a0978848caa16f0114a59e0e40248f9777691892 100644
--- a/src_colibri2/core/events.mli
+++ b/src_colibri2/core/events.mli
@@ -56,18 +56,13 @@ module Wait : sig
       (** The function run after the delay *)
 
       val key : runable Dem.t
-
       val delay : delay
     end
 
     val register_dem : (module Dem with type runable = 'd) -> unit
-
     val get_dem : 'd Dem.t -> (module Dem with type runable = 'd)
-
     val get_priority : daemon_key -> delay
-
     val print_dem_runable : 'b Dem.t -> 'b Format.printer
-
     val is_well_initialized : unit -> bool
   end
 
diff --git a/src_colibri2/core/ground.ml b/src_colibri2/core/ground.ml
index 542493908244211a7330244df9d22c041f0ee5b5..8ef12c068dbc8fafc412af139dbff9ab5665e9ce 100644
--- a/src_colibri2/core/ground.ml
+++ b/src_colibri2/core/ground.ml
@@ -135,21 +135,13 @@ module Ty = struct
     | Pi _ -> invalid_arg "Not_ground: polymorphism"
 
   let prop = convert Expr.Ty.Var.M.empty Expr.Ty.prop
-
   let bool = convert Expr.Ty.Var.M.empty Expr.Ty.bool
-
   let unit = convert Expr.Ty.Var.M.empty Expr.Ty.unit
-
   let base = convert Expr.Ty.Var.M.empty Expr.Ty.base
-
   let int = convert Expr.Ty.Var.M.empty Expr.Ty.int
-
   let rat = convert Expr.Ty.Var.M.empty Expr.Ty.rat
-
   let real = convert Expr.Ty.Var.M.empty Expr.Ty.real
-
   let string = convert Expr.Ty.Var.M.empty Expr.Ty.string
-
   let string_reg_lang = convert Expr.Ty.Var.M.empty Expr.Ty.string_reg_lang
 
   let definition sym =
@@ -476,7 +468,6 @@ module Defs = struct
   }
 
   let pp_fundef _ _ = ()
-
   let fundefs = Expr.Term.Const.HC.create pp_fundef "SynTerm.fundefs"
 
   let add d tc tyl tvl body =
@@ -556,7 +547,6 @@ module Defs = struct
 end
 
 let registered_converter = Datastructure.Push.create Fmt.nop "Ground.converters"
-
 let register_converter d f = Datastructure.Push.push registered_converter d f
 
 let dom_tys =
@@ -573,7 +563,6 @@ let () =
       include Ty.S
 
       let key = dom_tys
-
       let merged tys0 tys1 = Option.equal equal tys0 tys1
 
       let merge d (tys0, n0) (tys1, n1) _ =
diff --git a/src_colibri2/core/ground.mli b/src_colibri2/core/ground.mli
index 7391b92737a4e33b517e7262313e9d4ac958d22a..3d8493ce3a8a105ab1c1cba65cf4356e44c00cfe 100644
--- a/src_colibri2/core/ground.mli
+++ b/src_colibri2/core/ground.mli
@@ -34,13 +34,11 @@ end
 
 module Subst : sig
   type ty = All.ty Expr.Ty.Var.M.t [@@deriving show, hash, ord, eq]
-
   type t = { term : Node.t Expr.Term.Var.M.t; ty : ty }
 
   include Colibri2_popop_lib.Popop_stdlib.Datatype with type t := t
 
   val empty : t
-
   val distinct_union : t -> t -> t
 end
 
diff --git a/src_colibri2/core/interp.mli b/src_colibri2/core/interp.mli
index 1f64312bb534761840537a6c7e734fe7c799f915..eabaf01576ddb47d39e5947f28916ab105a1b3a8 100644
--- a/src_colibri2/core/interp.mli
+++ b/src_colibri2/core/interp.mli
@@ -37,9 +37,7 @@ module SeqLim : sig
   (** cartesian product {!Base.Sequence.cartesian_product} *)
 
   val ( let* ) : 'a t -> ('a -> 'b t) -> 'b t
-
   val map : 'a t -> f:('a -> 'b) -> 'b t
-
   val filter_map : 'a t -> f:('a -> 'b option) -> 'b t
 
   val unfold_with :
diff --git a/src_colibri2/core/options.ml b/src_colibri2/core/options.ml
index e09f16ce0ad75b8ded4caf5fedcf995e04124afc..d418f0cb1d573254495f50155f3cc803142c65a0 100644
--- a/src_colibri2/core/options.ml
+++ b/src_colibri2/core/options.ml
@@ -4,7 +4,6 @@ module Data = struct
   type 'a data = { cmd : 'a Cmdliner.Term.t; id : 'a K.t; pp : 'a Fmt.t }
 
   let pp d = d.pp
-
   let key d = d.id
 end
 
@@ -29,7 +28,6 @@ module KM = K.MkMap (struct
 end)
 
 let env = Datastructure.Ref.create Fmt.nop "Core.Options" KM.empty
-
 let get d k = KM.find k (Datastructure.Ref.get env d)
 
 type options = unit KM.t
@@ -39,13 +37,13 @@ let set m k v = KM.add k v m
 let parser () : options Cmdliner.Term.t =
   let fold acc data =
     Cmdliner.Term.(
-      pure (fun acc v -> set acc data.Data.id v) $ acc $ data.Data.cmd)
+      const (fun acc v -> set acc data.Data.id v) $ acc $ data.Data.cmd)
   in
   Reg.fold_initialized { fold } (Cmdliner.Term.const KM.empty)
 
 let set_egraph d m = Datastructure.Ref.set env d m
 
 let default_options () =
-  match Cmdliner.Term.eval_peek_opts ~argv:[| "colibri2" |] (parser ()) with
+  match Cmdliner.Cmd.eval_peek_opts ~argv:[| "colibri2" |] (parser ()) with
   | Some r, _ -> r
   | None, _ -> invalid_arg "Some options are not optional"
diff --git a/src_colibri2/core/options.mli b/src_colibri2/core/options.mli
index cce31384391b9d63d0a4a9a65d7d3fbbd5e3a879..27f4bd6334cf4e00b9f3daa08207ebb3f7caaeff 100644
--- a/src_colibri2/core/options.mli
+++ b/src_colibri2/core/options.mli
@@ -21,15 +21,11 @@
 type 'a t
 
 val register : ?pp:'a Fmt.t -> string -> 'a Cmdliner.Term.t -> 'a t
-
 val get : _ Egraph.t -> 'a t -> 'a
 
 type options
 
 val set : options -> 'a t -> 'a -> options
-
 val parser : unit -> options Cmdliner.Term.t
-
 val set_egraph : _ Egraph.t -> options -> unit
-
 val default_options : unit -> options
diff --git a/src_colibri2/core/structures/expr.ml b/src_colibri2/core/structures/expr.ml
index f4674eb6cd6412727eb8f3677b72f6dc3d8d1c09..5603a1604852bd13b76d1b7676fce5f3eade0f0b 100644
--- a/src_colibri2/core/structures/expr.ml
+++ b/src_colibri2/core/structures/expr.ml
@@ -30,13 +30,9 @@ module Ty = struct
     type nonrec t = t
 
     let equal = equal
-
     let compare = compare
-
     let hash = hash
-
     let pp = pp
-
     let hash_fold_t s t = Base.Hash.fold_int s (hash t)
   end)
 
@@ -49,13 +45,9 @@ module Ty = struct
       type nonrec t = t
 
       let equal = equal
-
       let compare = compare
-
       let hash = hash
-
       let pp = pp
-
       let hash_fold_t s t = Base.Hash.fold_int s (hash t)
     end)
   end
@@ -79,13 +71,9 @@ module Ty = struct
       type nonrec t = t
 
       let equal = equal
-
       let compare = compare
-
       let hash = hash
-
       let pp = pp
-
       let hash_fold_t s t = Base.Hash.fold_int s (hash t)
     end)
   end
@@ -100,13 +88,9 @@ module Term = struct
     type nonrec t = t
 
     let equal = equal
-
     let compare = compare
-
     let hash = hash
-
     let pp = pp
-
     let hash_fold_t s t = Base.Hash.fold_int s (hash t)
   end)
 
@@ -120,13 +104,9 @@ module Term = struct
         type nonrec t = t
 
         let equal = equal
-
         let compare = compare
-
         let hash = hash
-
         let pp = pp
-
         let hash_fold_t s t = Base.Hash.fold_int s (hash t)
       end)
     end
@@ -144,13 +124,9 @@ module Term = struct
       type nonrec t = t
 
       let equal = equal
-
       let compare = compare
-
       let hash = hash
-
       let pp = pp
-
       let hash_fold_t s t = Base.Hash.fold_int s (hash t)
     end)
   end
diff --git a/src_colibri2/core/structures/nodes.ml b/src_colibri2/core/structures/nodes.ml
index 8325f5fb1b5d56c023a1a6bf1afaeb5ffed57223..477e0d0769439c1789d2a39a71ade0f54f01b2d6 100644
--- a/src_colibri2/core/structures/nodes.ml
+++ b/src_colibri2/core/structures/nodes.ml
@@ -22,13 +22,9 @@ open Colibri2_popop_lib
 open Popop_stdlib
 
 exception BrokenInvariant of string
-
 exception SolveSameRepr
-
 exception UnwaitedEvent
-
 exception AlreadyDead
-
 exception AlreadyRedirected
 
 let debug_create =
@@ -36,7 +32,6 @@ let debug_create =
     ~desc:"for the core solver class creation information" "index"
 
 module ThTermKind = Keys.Make_key2 ()
-
 module ValueKind = Keys.Make_key2 ()
 
 module Node = struct
@@ -45,9 +40,7 @@ module Node = struct
     | Value : int * ('a, _) ValueKind.t * 'a -> [ `Value ] r
 
   type t' = All : _ r -> t' [@@unboxed]
-
   type thterm = [ `ThTerm ] r
-
   type nodevalue = [ `Value ] r
 
   let tag : t' -> int = function
@@ -55,7 +48,6 @@ module Node = struct
     | All (Value (tag, _, _)) -> tag
 
   let names = Simple_vector.create 100
-
   let used_names : (* next id to use *) int DStr.H.t = DStr.H.create 100
 
   (** remove the empty string *)
@@ -69,7 +61,6 @@ module Node = struct
     type t = t'
 
     let tag = tag
-
     let pp = pp
   end)
 
@@ -86,7 +77,6 @@ module Node = struct
   end)
 
   let semindex : unit ThTermIndex.t = ThTermIndex.create 8
-
   let thterm sem v : thterm = ThTermIndex.get semindex sem v
 
   module ValueIndex = ValueKind.MkVector (struct
@@ -94,15 +84,10 @@ module Node = struct
   end)
 
   let valueindex : unit ValueIndex.t = ValueIndex.create 8
-
   let nodevalue value v : nodevalue = ValueIndex.get valueindex value v
-
   let of_thterm : thterm -> t = fun t -> All t
-
   let of_nodevalue : nodevalue -> t = fun t -> All t
-
   let index_sem sem v = of_thterm (thterm sem v)
-
   let index_value sem v = of_nodevalue (nodevalue sem v)
 end
 
@@ -132,9 +117,7 @@ module type RegisteredThTerm = sig
   (** Return the sem from a thterm *)
 
   val thterm : t -> Node.thterm
-
   val of_thterm : Node.thterm -> t option
-
   val coerce_thterm : Node.thterm -> t
 end
 
@@ -143,16 +126,12 @@ module ThTermRegistry = ThTermKind.Make_Registry (struct
     (module RegisteredThTerm with type s = 'k and type t = 'd)
 
   let ppk (type k d) ((module ThTerm) : (k, d) data) = ThTerm.SD.pp
-
   let ppd (type k d) ((module ThTerm) : (k, d) data) = ThTerm.pp
-
   let key (type k d) ((module ThTerm) : (k, d) data) = ThTerm.key
 end)
 
 let check_thterm_registered = ThTermRegistry.check_is_registered
-
 let print_thterm = ThTermRegistry.printk
-
 let get_thterm = ThTermRegistry.get
 
 module type RegisteredValue = sig
@@ -175,13 +154,9 @@ module type RegisteredValue = sig
   (** Return the value from a nodevalue *)
 
   val nodevalue : t -> Node.nodevalue
-
   val of_nodevalue : Node.nodevalue -> t option
-
   val of_value : s -> Node.nodevalue
-
   val coerce_nodevalue : Node.nodevalue -> t
-
   val coerce_value : Node.nodevalue -> s
 end
 
@@ -189,16 +164,12 @@ module ValueRegistry = ValueKind.Make_Registry (struct
   type ('k, 'd) data = (module RegisteredValue with type s = 'k and type t = 'd)
 
   let ppk (type k d) ((module Value) : (k, d) data) = Value.SD.pp
-
   let ppd (type k d) ((module Value) : (k, d) data) = Value.pp
-
   let key (type k d) ((module Value) : (k, d) data) = Value.key
 end)
 
 let check_value_registered = ValueRegistry.check_is_registered
-
 let print_value = ValueRegistry.printk
-
 let get_value = ValueRegistry.get
 
 module ThTerm = struct
@@ -212,7 +183,6 @@ module ThTerm = struct
   end)
 
   let index = Node.thterm
-
   let node = Node.of_thterm
 end
 
@@ -227,7 +197,6 @@ struct
           let name = D.name
 
           type t = D.t
-
           type d = Node.thterm
         end)
 
@@ -237,7 +206,6 @@ struct
       type t = thterm
 
       let next_tag = Node.next_tag
-
       let incr_tag = Node.incr_tag
 
       let equal : t -> t -> bool =
@@ -326,7 +294,6 @@ module Value = struct
   end)
 
   let index = Node.nodevalue
-
   let node = Node.of_nodevalue
 
   let value : type a b. (a, b) ValueKind.t -> t -> a option =
@@ -350,7 +317,6 @@ struct
           let name = D.name
 
           type t = D.t
-
           type d = Node.nodevalue
         end)
 
@@ -362,7 +328,6 @@ struct
       type t = nodevalue
 
       let next_tag = Node.next_tag
-
       let incr_tag = Node.incr_tag
 
       let equal : t -> t -> bool =
@@ -456,7 +421,6 @@ module Only_for_solver = struct
     | Node.All (Node.Value _ as x) -> Some x
 
   let node_of_thterm : ThTerm.t -> Node.t = ThTerm.node
-
   let node_of_nodevalue : Value.t -> Node.t = Value.node
 
   type opened_node =
diff --git a/src_colibri2/core/structures/nodes.mli b/src_colibri2/core/structures/nodes.mli
index 1896052704f56f573edf96b602c6ea099f97da22..ec93dec301e9592e29ba39965b4171e2ee1ac645 100644
--- a/src_colibri2/core/structures/nodes.mli
+++ b/src_colibri2/core/structures/nodes.mli
@@ -26,17 +26,12 @@ open Popop_stdlib
 (** {2 General exceptions (to move away) } *)
 
 exception BrokenInvariant of string
-
 exception SolveSameRepr
-
 exception UnwaitedEvent
-
 exception AlreadyDead
-
 exception AlreadyRedirected
 
 module ThTermKind : Keys.Key2
-
 module ValueKind : Keys.Key2
 
 (** Node *)
@@ -122,7 +117,6 @@ val get_thterm :
     equivalence class (like it does for domains) *)
 
 val print_value : ('a, _) ValueKind.t -> 'a Format.printer
-
 val check_value_registered : _ ValueKind.t -> unit
 
 (** {3 Module for handling generically values} *)
@@ -134,7 +128,6 @@ module Value : sig
   (** Return the corresponding node from a value *)
 
   val node : t -> Node.t
-
   val value : ('a, _) ValueKind.t -> t -> 'a option
 
   type kind = Value : (_, 'b) ValueKind.t * 'b -> kind
@@ -166,14 +159,11 @@ module type RegisteredValue = sig
   val value : t -> s
   (** Return the value from a nodevalue *)
 
-  val nodevalue: t -> Value.t
-  val of_nodevalue: Value.t -> t option
-
-  val of_value: s -> Value.t
-
+  val nodevalue : t -> Value.t
+  val of_nodevalue : Value.t -> t option
+  val of_value : s -> Value.t
   val coerce_nodevalue : Value.t -> t
-
-  val coerce_value: Value.t -> s
+  val coerce_value : Value.t -> s
 end
 
 module RegisterValue (D : NamedDatatype) : RegisteredValue with type s = D.t
@@ -190,19 +180,18 @@ module Only_for_solver : sig
   type sem_of_node = ThTerm : (_, 'b) ThTermKind.t * 'b -> sem_of_node
 
   val thterm : Node.t -> ThTerm.t option
-    (** give the sem associated with a node, make sense only for not merged
+  (** give the sem associated with a node, make sense only for not merged
         class. So only the module solver can use it *)
 
   val sem_of_node : ThTerm.t -> sem_of_node
-    (** give the sem associated with a node, make sense only for not merged
+  (** give the sem associated with a node, make sense only for not merged
         class. So only the module solver can use it *)
 
   val nodevalue : Node.t -> Value.t option
-    (** give the value associated with a node, make sense only for not merged
+  (** give the value associated with a node, make sense only for not merged
         class. So only the module solver can use it *)
 
   val node_of_thterm : ThTerm.t -> Node.t
-
   val node_of_nodevalue : Value.t -> Node.t
 
   type opened_node =
@@ -210,6 +199,5 @@ module Only_for_solver : sig
     | Value : Value.t -> opened_node
 
   val open_node : Node.t -> opened_node
-
   val is_value : Node.t -> bool
 end
diff --git a/src_colibri2/popop_lib/dune b/src_colibri2/popop_lib/dune
index e3657e73e4bba13224c51ee8d9171e6be9cad8a4..94c5f2304a83d684d6c81a479826fae4be616be9 100644
--- a/src_colibri2/popop_lib/dune
+++ b/src_colibri2/popop_lib/dune
@@ -4,10 +4,15 @@
  (name colibri2_popop_lib)
  (public_name colibri2.popop_lib)
  (synopsis
-   "Temporary for colibri2 (intended to be replaced by another library)")
+  "Temporary for colibri2 (intended to be replaced by another library)")
  (libraries str unix zarith base fmt)
  (preprocess
   (pps ppx_deriving.std ppx_hash))
  (flags :standard -w +a-4-42-44-48-50-58-60-40-9@8 -color always)
- (ocamlopt_flags :standard -O3 -bin-annot -unbox-closures
-   -unbox-closures-factor 20))
+ (ocamlopt_flags
+  :standard
+  -O3
+  -bin-annot
+  -unbox-closures
+  -unbox-closures-factor
+  20))
diff --git a/src_colibri2/popop_lib/exthtbl.ml b/src_colibri2/popop_lib/exthtbl.ml
index 79e10417d4ceb5159de7d914fbdfcad2b57c2340..d9fdb2cb0a721d36d796faef2b04563d406ef071 100644
--- a/src_colibri2/popop_lib/exthtbl.ml
+++ b/src_colibri2/popop_lib/exthtbl.ml
@@ -152,7 +152,7 @@ module MakeSeeded(H: SeededHashedType) =
     type 'b t =
       { mutable size: int;                        (* number of entries *)
         mutable data: 'b bucketlist array;  (* the buckets *)
-        mutable seed: int;                        (* for randomization *)
+        seed: int;                        (* for randomization *)
         initial_size: int;                        (* initial array size *)
       }
 
diff --git a/src_colibri2/solver/dune b/src_colibri2/solver/dune
index b58f23fdedaa6f19c946049c4f4f54e059fac761..6007fd8226c73e4b60fd2ad8c6eeea63ff11219a 100644
--- a/src_colibri2/solver/dune
+++ b/src_colibri2/solver/dune
@@ -2,12 +2,35 @@
  (name colibri2_solver)
  (public_name colibri2.solver)
  (synopsis "colibri2's solver")
- (libraries containers zarith ocamlgraph gen dolmen spelll colibri2.stdlib
-   colibri2.popop_lib str colibri2.core dolmen_loop
-   dolmen_type)
+ (libraries
+  containers
+  zarith
+  ocamlgraph
+  gen
+  dolmen
+  spelll
+  colibri2.stdlib
+  colibri2.popop_lib
+  str
+  colibri2.core
+  dolmen_loop
+  dolmen_type)
  (preprocess
   (pps ppx_deriving.std))
- (flags :standard -w +a-4-42-44-48-50-58-60-40-9@8 -color always -open
-   Colibri2_stdlib -open Colibri2_core)
- (ocamlopt_flags :standard -O3 -bin-annot -unbox-closures
-   -unbox-closures-factor 20))
+ (flags
+  :standard
+  -w
+  +a-4-42-44-48-50-58-60-40-9@8
+  -color
+  always
+  -open
+  Colibri2_stdlib
+  -open
+  Colibri2_core)
+ (ocamlopt_flags
+  :standard
+  -O3
+  -bin-annot
+  -unbox-closures
+  -unbox-closures-factor
+  20))
diff --git a/src_colibri2/solver/input.ml b/src_colibri2/solver/input.ml
index 6fb706ce1831d61b2e63a5018487f30e09b95700..b0c90b1456b9053170963e6b4ffe598ea5148c91 100644
--- a/src_colibri2/solver/input.ml
+++ b/src_colibri2/solver/input.ml
@@ -77,6 +77,7 @@ module Header = Dolmen_loop.Headers.Pipe (State)
 module Typer = struct
   module T = Dolmen_loop.Typer.Make (State)
   include T
+
   include
     Dolmen_loop.Typer.Pipe (Dolmen.Std.Expr) (Dolmen.Std.Expr.Print) (State) (T)
 end
diff --git a/src_colibri2/solver/scheduler.ml b/src_colibri2/solver/scheduler.ml
index d1e4faedbd2af2b9b5c4827fa4d697a2d3150c90..5c27d24d584a81a03af71962a9abd586426a0c2e 100644
--- a/src_colibri2/solver/scheduler.ml
+++ b/src_colibri2/solver/scheduler.ml
@@ -40,26 +40,19 @@ let debug_dotgui =
     "sched_dotgui"
 
 let var_decay = 1. /. 0.95
-
 let stats_propa = Debug.register_stats_int "Scheduler.daemon"
-
 let stats_lasteffort = Debug.register_stats_int "Scheduler.lasteffort"
 
 let stats_lasteffort_propa =
   Debug.register_stats_int "Scheduler.lasteffort_propa"
 
 let stats_dec = Debug.register_stats_int "Scheduler.decision"
-
 let stats_con = Debug.register_stats_int "Scheduler.conflict"
-
 let stats_con_fix = Debug.register_stats_int "Scheduler.conflict_fix_model"
-
 let stats_step = Debug.register_stats_int "Scheduler.step"
-
 let stats_fix_model = Debug.register_stats_int "Scheduler.fix_model"
 
 exception Contradiction
-
 exception ReachStepLimit
 
 type last_effort_limit = Time of float | Steps of int
@@ -73,6 +66,8 @@ struct
   module Att = struct
     type t = { id : int; v : S.t; added_at : int }
 
+    let _f x = x.added_at
+
     type prio = float
 
     let equal_prio = ( = )
@@ -208,11 +203,10 @@ type t = {
   solve_step : solve_step Context.Ref.t;
   last_effort_limit : last_effort_limit option;
   mutable steps : int;
-  mutable stepsl : int;
   mutable last_todo : (Egraph.wt -> unit) * bp_kind;
   last_effort_learnt : Events.daemon_key Context.Clicket.t;
   allow_learning : bool;  (** Learning *)
-  mutable learning_htbl : int ThTerm.H.t;
+  learning_htbl : int ThTerm.H.t;
   mutable learning_tbl : bool array;
   (* last before contradiction *)
   mutable last_effort_made : PrioLastEffort.Att.t option;
@@ -257,7 +251,6 @@ let new_solver ~learning ?last_effort_limit
       level = 0;
       solve_step = Context.Ref.create creator Propagate;
       steps = 0;
-      stepsl = 0;
       last_todo = ((fun _ -> ()), External);
       last_effort_learnt = Context.Clicket.create creator;
       last_effort_limit;
@@ -719,7 +712,5 @@ let run ?nodec ?step_limit ?last_effort_limit ?options ~theories f =
   with Contradiction -> `Contradiction
 
 let pop_to st bp = ignore (pop_to st bp)
-
 let push st = push External st
-
 let get_context t = Context.creator t.context
diff --git a/src_colibri2/solver/scheduler.mli b/src_colibri2/solver/scheduler.mli
index 42d85deb21415578f38804a9f8accb446265c68e..1371d334f7a230e19573ae8bd0ddf387b4f97cf7 100644
--- a/src_colibri2/solver/scheduler.mli
+++ b/src_colibri2/solver/scheduler.mli
@@ -59,20 +59,17 @@ val new_solver :
   t
 
 val init_theories : theories:(Egraph.wt -> unit) list -> t -> unit
-
 val add_assertion : t -> (Egraph.wt -> unit) -> unit
 
 val check_sat :
   ?step_limit:int -> t -> [> `Unsat | `Sat of Egraph.wt | `Unknown of Egraph.wt ]
 
 val get_steps : t -> int
-
 val get_context : t -> Context.creator
 
 type bp
 
 val push : t -> bp
-
 val pop_to : t -> bp -> unit
 
 module LearnSet : Set.S with type elt = Ground.t
diff --git a/src_colibri2/stdlib/comp_keys.ml b/src_colibri2/stdlib/comp_keys.ml
index fc875259cc256f4ce5424357d88f9567a3d51d1b..6b99015e64b55e57cedb5bbb4799ae9dcbca93db 100644
--- a/src_colibri2/stdlib/comp_keys.ml
+++ b/src_colibri2/stdlib/comp_keys.ml
@@ -24,15 +24,17 @@
 open Colibri2_popop_lib
 open Popop_stdlib
 open Std
-    
+
 module type NamedType = sig
   type t
+
   val name : string
 end
 
 module type NamedType2 = sig
   type t
   type d
+
   val name : string
 end
 
@@ -42,7 +44,7 @@ module type Registry = sig
   type 'a key
   type 'a data
 
-  val register: 'a data -> unit
+  val register : 'a data -> unit
   val check_is_registered : 'a key -> unit
   val is_well_initialized : unit -> bool
   val get : 'a key -> 'a data
@@ -50,34 +52,37 @@ module type Registry = sig
 
   exception UnregisteredKey : 'a key -> exn
   exception AlreadyRegisteredKey : 'a key -> exn
-
 end
 
 module type Key = sig
   (** Key with arity 1 *)
 
-  module K: Datatype
+  module K : Datatype
+
   type 'a t (* = private K.t *)
 
-  val pp: 'a t Pp.pp
-  val compare: 'a t -> 'b t -> int
-  val equal: 'a t -> 'b t -> bool
+  val pp : 'a t Pp.pp
+  val compare : 'a t -> 'b t -> int
+  val equal : 'a t -> 'b t -> bool
   val hash : 'a t -> int
-  val tag: 'a t -> int
-  val key: 'a t -> K.t
+  val tag : 'a t -> int
+  val key : 'a t -> K.t
+
+  type iter = { iter : 'a. 'a t -> unit }
 
-  type iter = {iter : 'a. 'a t -> unit}
   val iter : iter -> unit
-  type 'b fold = {fold : 'a. 'a t -> 'b -> 'b}
+
+  type 'b fold = { fold : 'a. 'a t -> 'b -> 'b }
+
   val fold : 'b fold -> 'b -> 'b
   val hint_size : unit -> int
 
-  module Eq: sig
-    val eq_type : 'a t -> 'b t -> ('a,'b) Poly.iseq
+  module Eq : sig
+    val eq_type : 'a t -> 'b t -> ('a, 'b) Poly.iseq
     (** If the two arguments are physically identical then an equality witness
         between the types is returned *)
 
-    val coerce_type : 'a t -> 'b t -> ('a,'b) Poly.eq
+    val coerce_type : 'a t -> 'b t -> ('a, 'b) Poly.eq
     (** If the two arguments are physically identical then an equality witness
         between the types is returned otherwise
         the exception BadCoercion is raised  *)
@@ -85,43 +90,54 @@ module type Key = sig
     val coerce : 'a t -> 'b t -> 'a -> 'b
     (** If the two arguments are physically identical then covnert the
         argument otherwise taise BadCoercion *)
-
   end
-  val create: (module NamedType with type t = 'a) -> 'a t
 
-  module MkVector(D:sig type ('a,'b) t end)
-    : Vector_hetero.S1 with
-                         type 'a key = 'a t and type ('a,'b) data = ('a,'b) D.t
+  val create : (module NamedType with type t = 'a) -> 'a t
+
+  module MkVector (D : sig
+    type ('a, 'b) t
+  end) :
+    Vector_hetero.S1
+      with type 'a key = 'a t
+       and type ('a, 'b) data = ('a, 'b) D.t
 
-  module MkMap(D:sig type ('a,'b) t end)
-    : Intmap_hetero.S1 with
-                         type 'a key = 'a t and type ('a,'b) data = ('a,'b) D.t
+  module MkMap (D : sig
+    type ('a, 'b) t
+  end) :
+    Intmap_hetero.S1
+      with type 'a key = 'a t
+       and type ('a, 'b) data = ('a, 'b) D.t
 
-  module Vector  : Vector_hetero.R1 with type 'a key = 'a t
+  module Vector : Vector_hetero.R1 with type 'a key = 'a t
   module VectorH : Hashtbl_hetero.T1 with type 'a key = 'a t
   module M : Intmap_hetero.R1 with type 'a key = 'a t
-  module Make_Registry(S:sig
-      type 'a data
-      val pp: 'a data -> 'a Pp.pp
-      val key: 'a data -> 'a t
-    end) : Registry with type 'a key := 'a t and type 'a data = 'a S.data
-end
 
+  module Make_Registry (S : sig
+    type 'a data
+
+    val pp : 'a data -> 'a Pp.pp
+    val key : 'a data -> 'a t
+  end) : Registry with type 'a key := 'a t and type 'a data = 'a S.data
+end
 
-module Make_key(X:sig end): Key = struct
-  module K = Strings.Fresh(struct end)
+module Make_key (X : sig end) : Key = struct
+  module K = Strings.Fresh ()
 
   type 'a t = K.t (* >= 0 *)
+
   let pp fmt x = K.pp fmt x
-  let compare x y   = K.compare x y
-  let equal x y   = K.equal x y
-  let hash  x     = K.hash x
-  let tag (x:K.t) = (x:>int)
+  let compare x y = K.compare x y
+  let equal x y = K.equal x y
+  let hash x = K.hash x
+  let tag (x : K.t) = (x :> int)
   let key x = x
 
-  type iter = {iter : 'a. 'a t -> unit}
+  type iter = { iter : 'a. 'a t -> unit }
+
   let iter f = K.iter f.iter
-  type 'b fold = {fold : 'a. 'a t -> 'b -> 'b}
+
+  type 'b fold = { fold : 'a. 'a t -> 'b -> 'b }
+
   let fold f acc = K.fold f.fold acc
   let hint_size = K.hint_size
 
@@ -130,106 +146,144 @@ module Make_key(X:sig end): Key = struct
 
   (** the 'a k can be used as equality witness because K gives fresh values *)
   module Eq = struct
-    let eq_type :
-      type a b. a t -> b t -> (a,b) Poly.iseq =
-      fun a b ->
-        if equal a b
-        then ((Obj.magic (Poly.Eq : (a,a) Poly.eq)) : (a,b) Poly.iseq)
-        else Poly.Neq
-
-    let coerce_type :
-      type a b. a t -> b t -> (a,b) Poly.eq =
-      fun a b ->
-        if equal a b
-        then ((Obj.magic (Eq : (a,a) Poly.eq)) : (a,b) Poly.eq)
-        else raise BadCoercion
-
-    let coerce (type a) (type b) (a:a t) (b:b t) (x:a) : b =
-      match coerce_type a b with
-      | (Poly.Eq:(a,b) Poly.eq) -> x
+    let eq_type : type a b. a t -> b t -> (a, b) Poly.iseq =
+     fun a b ->
+      if equal a b then
+        (Obj.magic (Poly.Eq : (a, a) Poly.eq) : (a, b) Poly.iseq)
+      else Poly.Neq
+
+    let coerce_type : type a b. a t -> b t -> (a, b) Poly.eq =
+     fun a b ->
+      if equal a b then (Obj.magic (Eq : (a, a) Poly.eq) : (a, b) Poly.eq)
+      else raise BadCoercion
+
+    let coerce (type a b) (a : a t) (b : b t) (x : a) : b =
+      match coerce_type a b with (Poly.Eq : (a, b) Poly.eq) -> x
   end
-  module MkVector(D:sig type ('a,'b) t end) =
-    Vector_hetero.Make1(struct type nonrec 'a t = 'a t end)(D)
-  module MkMap(D:sig type ('a,'b) t end) =
-    Intmap_hetero.Make1(struct type nonrec 'a t = 'a t end)(D)
-  module Vector =
-    Vector_hetero.RMake1(struct type nonrec 'a t = 'a t end)
+
+  module MkVector (D : sig
+    type ('a, 'b) t
+  end) =
+    Vector_hetero.Make1
+      (struct
+        type nonrec 'a t = 'a t
+      end)
+      (D)
+
+  module MkMap (D : sig
+    type ('a, 'b) t
+  end) =
+    Intmap_hetero.Make1
+      (struct
+        type nonrec 'a t = 'a t
+      end)
+      (D)
+
+  module Vector = Vector_hetero.RMake1 (struct
+    type nonrec 'a t = 'a t
+  end)
+
   module VectorH : Hashtbl_hetero.T1 with type 'a key = 'a t = struct
+    module VH = Vector_hetero.TMake1 (struct
+      type nonrec 'a t = 'a t
+    end)
 
-    module VH = Vector_hetero.TMake1(struct type nonrec 'a t = 'a t end)
     type 'a key = 'a VH.key
     type t = unit VH.t
+
     let create = VH.create
-    let get  = VH.get
+    let get = VH.get
     let get_def = VH.get_def
     let set = VH.set
     let is_uninitialized = VH.is_uninitialized
-    type iter_initialized  = { iter : 'a. 'a -> unit; }
-    type iter_initializedi = { iteri : 'a. 'a key -> 'a -> unit; }
-    let iter_initializedi ({iteri}:iter_initializedi) =
+
+    type iter_initialized = { iter : 'a. 'a -> unit }
+    type iter_initializedi = { iteri : 'a. 'a key -> 'a -> unit }
+
+    let iter_initializedi ({ iteri } : iter_initializedi) =
       VH.iter_initializedi { VH.iteri }
-    let iter_initialized ({iter}:iter_initialized) =
-      VH.iter_initializedi { VH.iteri = fun _ c -> iter c }
-    type 'c fold_initialized  = { fold : 'a. 'c -> 'a -> 'c; }
-    type 'c fold_initializedi = { foldi : 'a. 'c -> 'a key -> 'a -> 'c; }
-    let fold_initializedi ({foldi}:'c fold_initializedi) =
-      VH.fold_initializedi {VH.foldi}
-    let fold_initialized ({fold}:'c fold_initialized) =
-      VH.fold_initializedi { foldi = fun sofar _ c -> fold sofar c }
+
+    let iter_initialized ({ iter } : iter_initialized) =
+      VH.iter_initializedi { VH.iteri = (fun _ c -> iter c) }
+
+    type 'c fold_initialized = { fold : 'a. 'c -> 'a -> 'c }
+    type 'c fold_initializedi = { foldi : 'a. 'c -> 'a key -> 'a -> 'c }
+
+    let fold_initializedi ({ foldi } : 'c fold_initializedi) =
+      VH.fold_initializedi { VH.foldi }
+
+    let fold_initialized ({ fold } : 'c fold_initialized) =
+      VH.fold_initializedi { foldi = (fun sofar _ c -> fold sofar c) }
+
     let copy = VH.copy
     let move = VH.move
+
     type printk = { printk : 'a. 'a key Format.printer }
     type printd = { printd : 'a. 'a key -> 'a Format.printer }
-    let pp sep1 sep2 {printk} {printd} = VH.pp sep1 sep2 {VH.printk} {VH.printd}
+
+    let pp sep1 sep2 { printk } { printd } =
+      VH.pp sep1 sep2 { VH.printk } { VH.printd }
+
     let clear _ = ()
     let remove _ = failwith "Unneeded"
-
   end
-  module M =
-    Intmap_hetero.RMake1(struct type nonrec 'a t = 'a t end)
 
-  module Make_Registry(S:sig
-      type 'a data
-      val pp: 'a data -> 'a Pp.pp
-      val key: 'a data -> 'a t
-    end) = struct
+  module M = Intmap_hetero.RMake1 (struct
+    type nonrec 'a t = 'a t
+  end)
+
+  module Make_Registry (S : sig
+    type 'a data
 
+    val pp : 'a data -> 'a Pp.pp
+    val key : 'a data -> 'a t
+  end) =
+  struct
     type 'a data = 'a S.data
 
-    module V = MkVector(struct type ('a,'unedeed) t = 'a S.data end)
+    module V = MkVector (struct
+      type ('a, 'unedeed) t = 'a S.data
+    end)
 
     exception UnregisteredKey : 'a t -> exn
     exception AlreadyRegisteredKey : 'a t -> exn
 
-    let () = Exn_printer.register (fun fmt exn ->
-        match exn with
-        | UnregisteredKey(key) ->
-          Format.fprintf fmt "The key %a have not been registered" K.pp key
-        | AlreadyRegisteredKey(key) ->
-          Format.fprintf fmt "The key %a have already been registered" K.pp key
-        | exn -> raise exn
-      )
+    let () =
+      Exn_printer.register (fun fmt exn ->
+          match exn with
+          | UnregisteredKey key ->
+              Format.fprintf fmt "The key %a have not been registered" K.pp key
+          | AlreadyRegisteredKey key ->
+              Format.fprintf fmt "The key %a have already been registered" K.pp
+                key
+          | exn -> raise exn)
 
-  let registry : unit V.t = V.create 8
+    let registry : unit V.t = V.create 8
 
     let register data =
       let key = S.key data in
-        V.inc_size key registry;
-        assert (if not (V.is_uninitialized registry key)
-                then raise (AlreadyRegisteredKey(key)) else true);
-        V.set registry key data
+      V.inc_size key registry;
+      assert (
+        if not (V.is_uninitialized registry key) then
+          raise (AlreadyRegisteredKey key)
+        else true);
+      V.set registry key data
 
     let check_is_registered key =
-      assert (if V.is_uninitialized registry key
-              then raise (UnregisteredKey(key)) else true)
+      assert (
+        if V.is_uninitialized registry key then raise (UnregisteredKey key)
+        else true)
 
     let is_well_initialized () =
       let well_initialized = ref true in
-      iter {iter = fun data ->
-          if V.is_uninitialized registry data then begin
-            Format.eprintf "[Warning] %a is not registered" pp data;
-            well_initialized := false;
-          end};
+      iter
+        {
+          iter =
+            (fun data ->
+              if V.is_uninitialized registry data then (
+                Format.eprintf "[Warning] %a is not registered" pp data;
+                well_initialized := false));
+        };
       !well_initialized
 
     let get k =
@@ -240,153 +294,182 @@ module Make_key(X:sig end): Key = struct
       let data = get k in
       (S.pp data) fmt s
   end
-
 end
 
 module type Registry2 = sig
-  type ('k,'d) key
-  type ('k,'d) data
+  type ('k, 'd) key
+  type ('k, 'd) data
 
-  val register: ('k,'d) data -> unit
-  val check_is_registered : ('k,'d) key -> unit
+  val register : ('k, 'd) data -> unit
+  val check_is_registered : ('k, 'd) key -> unit
   val is_well_initialized : unit -> bool
-  val get : ('k,'d) key -> ('k,'d) data
-  val printk : ('k,'d) key -> 'k Pp.pp
-  val printd : ('k,'d) key -> 'd Pp.pp
-
+  val get : ('k, 'd) key -> ('k, 'd) data
+  val printk : ('k, 'd) key -> 'k Pp.pp
+  val printd : ('k, 'd) key -> 'd Pp.pp
 
-  exception UnregisteredKey : ('a,'b) key -> exn
-  exception AlreadyRegisteredKey : ('a,'b) key -> exn
+  exception UnregisteredKey : ('a, 'b) key -> exn
+  exception AlreadyRegisteredKey : ('a, 'b) key -> exn
 end
 
 module type Key2 = sig
   (** Key with arity 2 *)
 
-  module K: Datatype
-  type ('k,'d) t (* = private K.t *)
+  module K : Datatype
+
+  type ('k, 'd) t
   (** kind of daemon for semantic value of type 'a *)
-  val pp: ('k,'d) t Pp.pp
-  val equal: ('k1,'d1) t -> ('k2,'d2) t -> bool
-  val hash : ('k,'d) t -> int
 
-  type iter = {iter : 'k 'd. ('k,'d) t -> unit}
+  val pp : ('k, 'd) t Pp.pp
+  val equal : ('k1, 'd1) t -> ('k2, 'd2) t -> bool
+  val hash : ('k, 'd) t -> int
+
+  type iter = { iter : 'k 'd. ('k, 'd) t -> unit }
+
   val iter : iter -> unit
 
-  val create: (module NamedType2 with type t = 'a1
-                                      and type d = 'a2)
-                  -> ('a1,'a2) t
+  val create :
+    (module NamedType2 with type t = 'a1 and type d = 'a2) -> ('a1, 'a2) t
 
-  module Eq: sig
-    val eq_type : ('a1,'b1) t -> ('a2,'b2) t
-      -> ('a1*'b1,'a2*'b2) Poly.eq option
+  module Eq : sig
+    val eq_type :
+      ('a1, 'b1) t -> ('a2, 'b2) t -> ('a1 * 'b1, 'a2 * 'b2) Poly.eq option
     (** If the two arguments are physically identical then an equality witness
         between the types is returned *)
 
-    val coerce_type : ('a1,'b1) t -> ('a2,'b2) t
-      -> ('a1*'b1,'a2*'b2) Poly.eq
-      (** If the two arguments are physically identical then an equality witness
+    val coerce_type :
+      ('a1, 'b1) t -> ('a2, 'b2) t -> ('a1 * 'b1, 'a2 * 'b2) Poly.eq
+    (** If the two arguments are physically identical then an equality witness
           between the types is returned otherwise
           the exception BadCoercion is raised  *)
   end
-  module MkVector(D:sig type ('k,'d,'b) t end)
-    : Vector_hetero.S2 with type ('k,'d) key = ('k,'d) t
-                       and type ('k,'d,'b) data = ('k,'d,'b) D.t
-  module Make_Registry(S:sig
-      type ('k,'d) data
-      val ppk: ('k,'d) data -> 'k Pp.pp
-      val ppd: ('k,'d) data -> 'd Pp.pp
-      val key: ('k,'d) data -> ('k,'d) t
-    end) : Registry2 with type ('k,'d) key := ('k,'d) t and type ('k,'d) data = ('k,'d) S.data
+
+  module MkVector (D : sig
+    type ('k, 'd, 'b) t
+  end) :
+    Vector_hetero.S2
+      with type ('k, 'd) key = ('k, 'd) t
+       and type ('k, 'd, 'b) data = ('k, 'd, 'b) D.t
+
+  module Make_Registry (S : sig
+    type ('k, 'd) data
+
+    val ppk : ('k, 'd) data -> 'k Pp.pp
+    val ppd : ('k, 'd) data -> 'd Pp.pp
+    val key : ('k, 'd) data -> ('k, 'd) t
+  end) :
+    Registry2
+      with type ('k, 'd) key := ('k, 'd) t
+       and type ('k, 'd) data = ('k, 'd) S.data
 end
 
-module Make_key2(X:sig end) : Key2 = struct
-  module K = Strings.Fresh(struct end)
+module Make_key2 (X : sig end) : Key2 = struct
+  module K = Strings.Fresh ()
+
+  type ('k, 'd) t = K.t (* >= 0 *)
 
-  type ('k,'d) t = K.t (* >= 0 *)
   let pp fmt x = K.pp fmt x
-  let equal    = K.equal
-  let hash  x  = K.hash x
+  let equal = K.equal
+  let hash x = K.hash x
+
+  type iter = { iter : 'k 'd. ('k, 'd) t -> unit }
 
-  type iter = {iter : 'k 'd. ('k,'d) t -> unit}
   let iter f = K.iter f.iter
 
-  let create (type a1) (type a2) (module NT : NamedType2 with type t = a1
-                                                              and type d = a2)
-    : (a1,a2) t =
+  let create (type a1 a2)
+      (module NT : NamedType2 with type t = a1 and type d = a2) : (a1, a2) t =
     K.create NT.name
 
   (** the ('k,'d) k can be used as equality witness because K gives
       fresh values *)
   module Eq = struct
-
     let eq_type :
-      type a1 b1 a2 b2. (a1,b1) t -> (a2,b2) t
-      -> (a1*b1,a2*b2) Poly.eq option =
-      fun a b ->
-        if equal a b
-        then
-          let eq = (Obj.magic (Poly.Eq : (a1*b1,a1*b1) Poly.eq) : (a1*b1,a2*b2) Poly.eq)
-          in Some eq
-        else None
+        type a1 b1 a2 b2.
+        (a1, b1) t -> (a2, b2) t -> (a1 * b1, a2 * b2) Poly.eq option =
+     fun a b ->
+      if equal a b then
+        let eq =
+          (Obj.magic (Poly.Eq : (a1 * b1, a1 * b1) Poly.eq)
+            : (a1 * b1, a2 * b2) Poly.eq)
+        in
+        Some eq
+      else None
 
     let coerce_type :
-      type a1 b1 a2 b2. (a1,b1) t -> (a2,b2) t
-      -> (a1*b1,a2*b2) Poly.eq =
-      fun a b ->
-        if equal a b
-        then
-          let eq = (Obj.magic (Poly.Eq : (a1*b1,a1*b1) Poly.eq) : (a1*b1,a2*b2) Poly.eq)
-          in eq
-        else raise BadCoercion
-
+        type a1 b1 a2 b2. (a1, b1) t -> (a2, b2) t -> (a1 * b1, a2 * b2) Poly.eq
+        =
+     fun a b ->
+      if equal a b then
+        let eq =
+          (Obj.magic (Poly.Eq : (a1 * b1, a1 * b1) Poly.eq)
+            : (a1 * b1, a2 * b2) Poly.eq)
+        in
+        eq
+      else raise BadCoercion
   end
-  module MkVector(D:sig type ('k,'d,'b) t end) =
-    Vector_hetero.Make2(struct type nonrec ('k,'d) t = ('k,'d) t end)(D)
 
-  module Make_Registry(S:sig
-      type ('k,'d) data
-      val ppk: ('k,'d) data -> 'k Pp.pp
-      val ppd: ('k,'d) data -> 'd Pp.pp
-      val key: ('k,'d) data -> ('k,'d) t
-    end) = struct
-
-    type ('k,'d) data = ('k,'d) S.data
-
-    module V = MkVector(struct type ('k,'d,'unedeed) t = ('k,'d) S.data end)
+  module MkVector (D : sig
+    type ('k, 'd, 'b) t
+  end) =
+    Vector_hetero.Make2
+      (struct
+        type nonrec ('k, 'd) t = ('k, 'd) t
+      end)
+      (D)
+
+  module Make_Registry (S : sig
+    type ('k, 'd) data
+
+    val ppk : ('k, 'd) data -> 'k Pp.pp
+    val ppd : ('k, 'd) data -> 'd Pp.pp
+    val key : ('k, 'd) data -> ('k, 'd) t
+  end) =
+  struct
+    type ('k, 'd) data = ('k, 'd) S.data
+
+    module V = MkVector (struct
+      type ('k, 'd, 'unedeed) t = ('k, 'd) S.data
+    end)
 
     let registry : unit V.t = V.create 8
 
-    exception UnregisteredKey : ('a,'b) t -> exn
-    exception AlreadyRegisteredKey : ('a,'b) t -> exn
+    exception UnregisteredKey : ('a, 'b) t -> exn
+    exception AlreadyRegisteredKey : ('a, 'b) t -> exn
 
     let register data =
       let key = S.key data in
-        V.inc_size key registry;
-        assert (if not (V.is_uninitialized registry key)
-                then raise (AlreadyRegisteredKey key) else true);
-        V.set registry key data
+      V.inc_size key registry;
+      assert (
+        if not (V.is_uninitialized registry key) then
+          raise (AlreadyRegisteredKey key)
+        else true);
+      V.set registry key data
 
     let check_is_registered key =
-      assert (if V.is_uninitialized registry key
-              then raise (UnregisteredKey key) else true)
+      assert (
+        if V.is_uninitialized registry key then raise (UnregisteredKey key)
+        else true)
 
     let is_well_initialized () =
       let well_initialized = ref true in
-      iter {iter = fun data ->
-          if V.is_uninitialized registry data then begin
-            Format.eprintf "[Warning] %a is not registered" pp data;
-            well_initialized := false;
-          end};
+      iter
+        {
+          iter =
+            (fun data ->
+              if V.is_uninitialized registry data then (
+                Format.eprintf "[Warning] %a is not registered" pp data;
+                well_initialized := false));
+        };
       !well_initialized
 
     let get k =
       check_is_registered k;
       V.get registry k
 
-    let printk (type k) (type d) (k : (k,d) t) fmt s =
+    let printk (type k d) (k : (k, d) t) fmt s =
       let data = get k in
       (S.ppk data) fmt s
-    let printd (type k) (type d) (k : (k,d) t) fmt s =
+
+    let printd (type k d) (k : (k, d) t) fmt s =
       let data = get k in
       (S.ppd data) fmt s
   end
diff --git a/src_colibri2/stdlib/comp_keys.mli b/src_colibri2/stdlib/comp_keys.mli
index b5647cc6b6dbb15f9e9228baeb92fc8e3160aef0..acb8cefa7ee69d37614d061715808c5dab1f0733 100644
--- a/src_colibri2/stdlib/comp_keys.mli
+++ b/src_colibri2/stdlib/comp_keys.mli
@@ -28,17 +28,18 @@
 
 open Colibri2_popop_lib
 open Popop_stdlib
-
 open Std
 
 module type NamedType = sig
   type t
+
   val name : string
 end
 
 module type NamedType2 = sig
   type t
   type d
+
   val name : string
 end
 
@@ -56,45 +57,48 @@ module type Registry = sig
   type 'a key
   type 'a data
 
-  val register: 'a data -> unit
+  val register : 'a data -> unit
   val check_is_registered : 'a key -> unit
   val is_well_initialized : unit -> bool
   val get : 'a key -> 'a data
   val print : 'a key -> 'a Pp.pp
 
-
+  exception UnregisteredKey : 'a key -> exn
   (** the key shouldn't be used before its registration and shouldn't be
       registered again *)
-  exception UnregisteredKey : 'a key -> exn
-  exception AlreadyRegisteredKey : 'a key -> exn
 
+  exception AlreadyRegisteredKey : 'a key -> exn
 end
 
 module type Key = sig
   (** Key with arity 1 *)
 
-  module K: Datatype
+  module K : Datatype
+
   type 'a t (* = private K.t *)
 
-  val pp: 'a t Pp.pp
-  val compare: 'a t -> 'b t -> int
-  val equal: 'a t -> 'b t -> bool
+  val pp : 'a t Pp.pp
+  val compare : 'a t -> 'b t -> int
+  val equal : 'a t -> 'b t -> bool
   val hash : 'a t -> int
-  val tag: 'a t -> int
-  val key: 'a t -> K.t
+  val tag : 'a t -> int
+  val key : 'a t -> K.t
+
+  type iter = { iter : 'a. 'a t -> unit }
 
-  type iter = {iter : 'a. 'a t -> unit}
   val iter : iter -> unit
-  type 'b fold = {fold : 'a. 'a t -> 'b -> 'b}
+
+  type 'b fold = { fold : 'a. 'a t -> 'b -> 'b }
+
   val fold : 'b fold -> 'b -> 'b
   val hint_size : unit -> int
 
-  module Eq: sig
-    val eq_type : 'a t -> 'b t -> ('a,'b) Poly.iseq
+  module Eq : sig
+    val eq_type : 'a t -> 'b t -> ('a, 'b) Poly.iseq
     (** If the two arguments are physically identical then an equality witness
         between the types is returned *)
 
-    val coerce_type : 'a t -> 'b t -> ('a,'b) Poly.eq
+    val coerce_type : 'a t -> 'b t -> ('a, 'b) Poly.eq
     (** If the two arguments are physically identical then an equality witness
         between the types is returned otherwise
         the exception BadCoercion is raised  *)
@@ -102,86 +106,104 @@ module type Key = sig
     val coerce : 'a t -> 'b t -> 'a -> 'b
     (** If the two arguments are physically identical then covnert the
         argument otherwise taise BadCoercion *)
-
   end
-  val create: (module NamedType with type t = 'a) -> 'a t
 
-  module MkVector(D:sig type ('a,'b) t end)
-    : Vector_hetero.S1 with
-                         type 'a key = 'a t and type ('a,'b) data = ('a,'b) D.t
+  val create : (module NamedType with type t = 'a) -> 'a t
+
+  module MkVector (D : sig
+    type ('a, 'b) t
+  end) :
+    Vector_hetero.S1
+      with type 'a key = 'a t
+       and type ('a, 'b) data = ('a, 'b) D.t
 
-  module MkMap(D:sig type ('a,'b) t end)
-    : Intmap_hetero.S1 with
-                         type 'a key = 'a t and type ('a,'b) data = ('a,'b) D.t
+  module MkMap (D : sig
+    type ('a, 'b) t
+  end) :
+    Intmap_hetero.S1
+      with type 'a key = 'a t
+       and type ('a, 'b) data = ('a, 'b) D.t
 
-  module Vector  : Vector_hetero.R1 with type 'a key = 'a t
+  module Vector : Vector_hetero.R1 with type 'a key = 'a t
   module VectorH : Hashtbl_hetero.T1 with type 'a key = 'a t
+
   (* module VectorH : Vector_hetero.T1 with type 'a key = 'a t *)
   module M : Intmap_hetero.R1 with type 'a key = 'a t
-  module Make_Registry(S:sig
-      type 'a data
-      val pp: 'a data -> 'a Pp.pp
-      val key: 'a data -> 'a t
-    end) : Registry with type 'a key := 'a t and type 'a data = 'a S.data
+
+  module Make_Registry (S : sig
+    type 'a data
+
+    val pp : 'a data -> 'a Pp.pp
+    val key : 'a data -> 'a t
+  end) : Registry with type 'a key := 'a t and type 'a data = 'a S.data
 end
 
-module Make_key(_:sig end) : Key
+module Make_key (_ : sig end) : Key
 
 module type Registry2 = sig
-  type ('k,'d) key
-  type ('k,'d) data
+  type ('k, 'd) key
+  type ('k, 'd) data
 
-  val register: ('k,'d) data -> unit
-  val check_is_registered : ('k,'d) key -> unit
+  val register : ('k, 'd) data -> unit
+  val check_is_registered : ('k, 'd) key -> unit
   val is_well_initialized : unit -> bool
-  val get : ('k,'d) key -> ('k,'d) data
-  val printk : ('k,'d) key -> 'k Pp.pp
-  val printd : ('k,'d) key -> 'd Pp.pp
-
-  exception UnregisteredKey : ('a,'b) key -> exn
-  exception AlreadyRegisteredKey : ('a,'b) key -> exn
+  val get : ('k, 'd) key -> ('k, 'd) data
+  val printk : ('k, 'd) key -> 'k Pp.pp
+  val printd : ('k, 'd) key -> 'd Pp.pp
 
+  exception UnregisteredKey : ('a, 'b) key -> exn
+  exception AlreadyRegisteredKey : ('a, 'b) key -> exn
 end
 
 module type Key2 = sig
   (** Key with arity 2 *)
 
-  module K: Datatype
-  type ('k,'d) t (* = private K.t *)
+  module K : Datatype
+
+  type ('k, 'd) t
   (** kind of daemon for semantic value of type 'a *)
-  val pp: ('k,'d) t Pp.pp
-  val equal: ('k1,'d1) t -> ('k2,'d2) t -> bool
-  val hash : ('k,'d) t -> int
 
-  type iter = {iter : 'k 'd. ('k,'d) t -> unit}
+  val pp : ('k, 'd) t Pp.pp
+  val equal : ('k1, 'd1) t -> ('k2, 'd2) t -> bool
+  val hash : ('k, 'd) t -> int
+
+  type iter = { iter : 'k 'd. ('k, 'd) t -> unit }
+
   val iter : iter -> unit
 
-  val create: (module NamedType2 with type t = 'a1
-                                      and type d = 'a2)
-                  -> ('a1,'a2) t
+  val create :
+    (module NamedType2 with type t = 'a1 and type d = 'a2) -> ('a1, 'a2) t
 
-  module Eq: sig
-    val eq_type : ('a1,'b1) t -> ('a2,'b2) t
-      -> ('a1*'b1,'a2*'b2) Poly.eq option
+  module Eq : sig
+    val eq_type :
+      ('a1, 'b1) t -> ('a2, 'b2) t -> ('a1 * 'b1, 'a2 * 'b2) Poly.eq option
     (** If the two arguments are physically identical then an equality witness
         between the types is returned *)
 
-    val coerce_type : ('a1,'b1) t -> ('a2,'b2) t
-      -> ('a1*'b1,'a2*'b2) Poly.eq
-      (** If the two arguments are physically identical then an equality witness
+    val coerce_type :
+      ('a1, 'b1) t -> ('a2, 'b2) t -> ('a1 * 'b1, 'a2 * 'b2) Poly.eq
+    (** If the two arguments are physically identical then an equality witness
           between the types is returned otherwise
           the exception BadCoercion is raised  *)
   end
-  module MkVector(D:sig type ('k,'d,'b) t end)
-    : Vector_hetero.S2 with type ('k,'d) key = ('k,'d) t
-                        and type ('k,'d,'b) data = ('k,'d,'b) D.t
-  module Make_Registry(S:sig
-      type ('k,'d) data
-      val ppk: ('k,'d) data -> 'k Pp.pp
-      val ppd: ('k,'d) data -> 'd Pp.pp
-      val key: ('k,'d) data -> ('k,'d) t
-    end) : Registry2 with type ('k,'d) key := ('k,'d) t and type ('k,'d) data = ('k,'d) S.data
 
+  module MkVector (D : sig
+    type ('k, 'd, 'b) t
+  end) :
+    Vector_hetero.S2
+      with type ('k, 'd) key = ('k, 'd) t
+       and type ('k, 'd, 'b) data = ('k, 'd, 'b) D.t
+
+  module Make_Registry (S : sig
+    type ('k, 'd) data
+
+    val ppk : ('k, 'd) data -> 'k Pp.pp
+    val ppd : ('k, 'd) data -> 'd Pp.pp
+    val key : ('k, 'd) data -> ('k, 'd) t
+  end) :
+    Registry2
+      with type ('k, 'd) key := ('k, 'd) t
+       and type ('k, 'd) data = ('k, 'd) S.data
 end
 
-module Make_key2(_:sig end): Key2
+module Make_key2 (_ : sig end) : Key2
diff --git a/src_colibri2/stdlib/context.ml b/src_colibri2/stdlib/context.ml
index f1f54209aec70c43dd0fc77add860c2efc5fef4b..71c62c8a0d870749b334dcbceb6a10a242405fb5 100644
--- a/src_colibri2/stdlib/context.ml
+++ b/src_colibri2/stdlib/context.ml
@@ -19,13 +19,11 @@
 (*************************************************************************)
 
 type context = { mutable bps : bp list }
-
 and bp = { mutable alive : bool;  (** not poped *) context : context }
 
 type creator = context
 
 let creator t = t
-
 let bp_equal (a : bp) b = CCEqual.physical a b
 
 let create () =
@@ -95,7 +93,6 @@ module Ref = struct
     r.contents
 
   let creator (h : 'a t) = h.context
-
   let pp pp fmt r = pp fmt (get r)
 end
 
@@ -179,7 +176,6 @@ module Ref2 = struct
 end
 
 type 'a history = { mutable previous : 'a hist list; context : context }
-
 and 'a hist = { saved : 'a; at : bp }
 
 module Expert = struct
@@ -207,13 +203,10 @@ end
 
 module Make (S : sig
   type t
-
   type saved
 
   val save : t -> saved
-
   val restore : saved -> t -> unit
-
   val get_history : t -> saved history
 end) =
 struct
@@ -251,17 +244,14 @@ struct
     t
 
   let hide t = t
-
   let creator (h : 'a history) = h.context
 end
 
 module Basic (S : sig
   type t
-
   type saved
 
   val save : t -> saved
-
   val restore : saved -> t -> unit
 end) =
 struct
@@ -269,13 +259,10 @@ struct
 
   module M = Make (struct
     type nonrec t = t
-
     type saved = S.saved
 
     let save t = S.save t.d
-
     let restore saved t = S.restore saved t.d
-
     let get_history t = t.history
   end)
 
@@ -290,13 +277,9 @@ module Push = struct
   type 'a t = { v : 'a Vector.vector; h : int history }
 
   let restore t size = Vector.truncate t.v size
-
   let save t () = Vector.size t.v
-
   let refresh t = Expert.refresh ~restore:(restore t) t.h
-
   let save t = Expert.save ~restore:(restore t) ~save:(save t) t.h
-
   let create creator = { v = Vector.create (); h = Expert.create creator }
 
   let push t v =
@@ -343,9 +326,7 @@ module Queue = struct
     if Base.Queue.is_empty t.v then None else Some (Base.Queue.copy t.v)
 
   let refresh t = Expert.refresh ~restore:(restore t) t.h
-
   let save t = Expert.save ~restore:(restore t) ~save:(save t) t.h
-
   let create creator = { v = Base.Queue.create (); h = Expert.create creator }
 
   let enqueue t v =
@@ -394,31 +375,21 @@ module RefOpt = struct
   type 'a t = 'a option Ref.t
 
   let create creator = Ref.create creator None
-
   let set t v = Ref.set t (Some v)
-
   let unset t = Ref.set t None
-
   let get t = Ref.get t
 end
 
 module type Hashtbl = sig
   type 'a t
-
   type key
 
   val create : creator -> 'a t
-
   val remove : 'a t -> key -> unit
-
   val set : 'a t -> key -> 'a -> unit
-
   val find : 'a t -> key -> 'a
-
   val find_opt : 'a t -> key -> 'a option
-
   val mem : 'a t -> key -> bool
-
   val change : ('a option -> 'a option) -> 'a t -> key -> unit
 end
 
@@ -472,9 +443,7 @@ module Array = struct
   type 'a t = 'a Ref.t array
 
   let create ctx i v = Array.init i (fun _ -> Ref.create ctx v)
-
   let set t i v = Ref.set (Array.get t i) v
-
   let get t i = Ref.get (Array.get t i)
 end
 
@@ -488,15 +457,11 @@ module TimeWheel =
 
 module type HashtblWithDefault = sig
   type 'a t
-
   type key
 
   val create : creator -> (creator -> 'a) -> 'a t
-
   val set : 'a t -> key -> 'a -> unit
-
   val find : 'a t -> key -> 'a
-
   val change : ('a -> 'a) -> 'a t -> key -> unit
 end
 
@@ -528,15 +493,11 @@ end
 
 module type Memo = sig
   type 'a t
-
   type key
 
   val create : creator -> (creator -> key -> 'a) -> 'a t
-
   val find : 'a t -> key -> 'a
-
   val iter : (key -> 'a -> unit) -> 'a t -> unit
-
   val fold : (key -> 'a -> 'acc -> 'acc) -> 'a t -> 'acc -> 'acc
 end
 
@@ -555,7 +516,6 @@ module Memo (S : Colibri2_popop_lib.Popop_stdlib.Datatype) :
         r
 
   let iter f t = S.H.iter f t.h
-
   let fold f t = S.H.fold f t.h
 end
 
@@ -563,13 +523,9 @@ module type Clicket = sig
   type 'a t
 
   val create : creator -> 'a t
-
   val push : 'a t -> 'a -> unit
-
   val iter : f:('a -> unit) -> 'a t -> unit
-
   val todo : 'a t -> bool
-
   val pp : ?sep:unit Fmt.t -> 'a Fmt.t -> 'a t Fmt.t
 end
 
@@ -581,7 +537,6 @@ module Clicket = struct
   }
 
   let restore t saved = t.first_not_done <- saved
-
   let save t () = t.first_not_done
 
   (* let refresh t = Expert.refresh ~restore:(restore t) t.h *)
diff --git a/src_colibri2/stdlib/context.mli b/src_colibri2/stdlib/context.mli
index c6337a0a46252a21f72b1d2e7662dc4d4e32bf84..1341afb3843ba3308148d7860a693b61f4704a9a 100644
--- a/src_colibri2/stdlib/context.mli
+++ b/src_colibri2/stdlib/context.mli
@@ -26,23 +26,22 @@ type context
 type creator
 (** Same than context, but only used for creating datastructure *)
 
-val creator: context -> creator
+val creator : context -> creator
 
 type bp
 (** A backtrack point associated to a context *)
 
-val create: unit -> context
+val create : unit -> context
 (** Create a new context, with a base backtrack point.
     It is not possible to go below this backtrack point.
 *)
 
-val bp: context -> bp
+val bp : context -> bp
 (** Get the current backtrack point *)
 
 val push : context -> unit
 (** Push a new backtrack point *)
 
-
 exception AlreadyPoped
 
 val pop : bp -> unit
@@ -52,226 +51,218 @@ val pop : bp -> unit
     raise AlreadyPoped if it already has been poped.
  *)
 
-module Ref: sig
+module Ref : sig
   type 'a t
   (** A reference aware of a context *)
 
-  val create: creator -> 'a -> 'a t
+  val create : creator -> 'a -> 'a t
   (** Create a reference in this context with the given value *)
 
-  val set: 'a t -> 'a -> unit
+  val set : 'a t -> 'a -> unit
   (** Modify the reference *)
 
-  val get: 'a t -> 'a
+  val get : 'a t -> 'a
   (** Get the current value of the reference *)
 
-  val creator: 'a t -> creator
-
-  val pp: 'a Fmt.t -> 'a t Fmt.t
+  val creator : 'a t -> creator
+  val pp : 'a Fmt.t -> 'a t Fmt.t
 end
 
-module Ref2: sig
-  type ('a,'b) t
+module Ref2 : sig
+  type ('a, 'b) t
   (** A reference aware of a context *)
 
-  val create: creator -> 'a -> 'b -> ('a,'b) t
+  val create : creator -> 'a -> 'b -> ('a, 'b) t
   (** Create a reference in this context with the given value *)
 
-  val set: ('a,'b) t -> 'a -> 'b -> unit
+  val set : ('a, 'b) t -> 'a -> 'b -> unit
   (** Modify the reference *)
 
-  val get: ('a,'b) t -> 'a * 'b
+  val get : ('a, 'b) t -> 'a * 'b
   (** Get the current value of the reference *)
 
-  val set1: ('a,'b) t -> 'a -> unit
+  val set1 : ('a, 'b) t -> 'a -> unit
   (** Modify the reference *)
 
-  val get1: ('a,'b) t -> 'a
+  val get1 : ('a, 'b) t -> 'a
   (** Get the current value of the reference *)
 
-  val set2: ('a,'b) t -> 'b -> unit
+  val set2 : ('a, 'b) t -> 'b -> unit
   (** Modify the reference *)
 
-  val get2: ('a,'b) t -> 'b
+  val get2 : ('a, 'b) t -> 'b
   (** Get the current value of the reference *)
 
-  val creator: ('a,'b) t -> creator
-
+  val creator : ('a, 'b) t -> creator
 end
 
 type 'a history
 (** history of the values *)
 
-module Make(S:sig
-    type t
-    (** a type to make context aware *)
-
-    type saved
-    (** The data to save at backtrack point *)
+module Make (S : sig
+  type t
+  (** a type to make context aware *)
 
-    val save: t -> saved
-    (** Get the data to save from the original type *)
+  type saved
+  (** The data to save at backtrack point *)
 
-    val restore: saved -> t -> unit
-    (** Restore the saved data after a pop (delayed at the next {!refresh}) *)
+  val save : t -> saved
+  (** Get the data to save from the original type *)
 
-    val get_history: t -> saved history
-  end): sig
+  val restore : saved -> t -> unit
+  (** Restore the saved data after a pop (delayed at the next {!refresh}) *)
 
-  val create: creator -> S.saved history
+  val get_history : t -> saved history
+end) : sig
+  val create : creator -> S.saved history
   (** Create an history *)
 
-  val refresh: S.t -> unit
+  val refresh : S.t -> unit
   (** Function to call before accessing the value when a pop could have occured *)
 
-  val save: S.t -> unit
+  val save : S.t -> unit
   (** Function to call before modifying the value, it does also refresh *)
 
   type hidden
   (** To be used for enforcing the use of the previous function *)
-  val ro: hidden -> S.t
-  val rw: hidden -> S.t
-  val hide: S.t -> hidden
-
-  val creator: 'a history -> creator
 
+  val ro : hidden -> S.t
+  val rw : hidden -> S.t
+  val hide : S.t -> hidden
+  val creator : 'a history -> creator
 end
 
-module Basic(S:sig
-    type t
-    (** a type to make context aware *)
-
-    type saved
-    (** The data to save at backtrack point *)
-
-    val save: t -> saved
-    (** Get the data to save from the original type *)
+module Basic (S : sig
+  type t
+  (** a type to make context aware *)
 
-    val restore: saved -> t -> unit
-    (** Restore the saved data after a pop (delayed at the next {!refresh}) *)
+  type saved
+  (** The data to save at backtrack point *)
 
-  end): sig
+  val save : t -> saved
+  (** Get the data to save from the original type *)
 
+  val restore : saved -> t -> unit
+  (** Restore the saved data after a pop (delayed at the next {!refresh}) *)
+end) : sig
   type t
 
-  val create: creator -> S.t -> t
+  val create : creator -> S.t -> t
   (** Create an history *)
 
-  val get: t -> S.t
-
+  val get : t -> S.t
 end
 
-module Expert: sig
-
-  val refresh: restore:('a -> unit) -> 'a history -> unit
-  val save: restore:('a -> unit) -> save:(unit -> 'a) -> 'a history -> unit
-  val create: creator -> 'a history
+module Expert : sig
+  val refresh : restore:('a -> unit) -> 'a history -> unit
+  val save : restore:('a -> unit) -> save:(unit -> 'a) -> 'a history -> unit
+  val create : creator -> 'a history
 end
 
-module Push: sig
-
+module Push : sig
   type 'a t
 
-  val create: creator -> 'a t
-  val push: 'a t -> 'a -> unit
-  val iter: ('a -> unit) -> 'a t -> unit
-  val fold: ('acc -> 'a -> 'acc) -> 'acc -> 'a t -> 'acc
-  val length: 'a t -> int
-  val get: 'a t -> int -> 'a
-  val of_seq: 'a t -> 'a Base.Sequence.t
+  val create : creator -> 'a t
+  val push : 'a t -> 'a -> unit
+  val iter : ('a -> unit) -> 'a t -> unit
+  val fold : ('acc -> 'a -> 'acc) -> 'acc -> 'a t -> 'acc
+  val length : 'a t -> int
+  val get : 'a t -> int -> 'a
+
+  val of_seq : 'a t -> 'a Base.Sequence.t
   (** From last current element to first *)
 
-  val pp: ?sep:unit Fmt.t -> 'a Fmt.t -> 'a t Fmt.t
+  val pp : ?sep:unit Fmt.t -> 'a Fmt.t -> 'a t Fmt.t
 end
 
-module Queue: sig
+module Queue : sig
   (** The saving is equal to the current size of the datastructure.
       Should be used when usually it is empty at backtrack point *)
 
   type 'a t
 
-  val create: creator -> 'a t
-  val enqueue: 'a t -> 'a -> unit
-  val dequeue: 'a t -> 'a option
-  val iter: ('a -> unit) -> 'a t -> unit
-  val fold: ('acc -> 'a -> 'acc) -> 'acc -> 'a t -> 'acc
-  val length: 'a t -> int
-  val get: 'a t -> int -> 'a
-  val is_empty: 'a t -> bool
-  val of_seq: 'a t -> 'a Base.Sequence.t
+  val create : creator -> 'a t
+  val enqueue : 'a t -> 'a -> unit
+  val dequeue : 'a t -> 'a option
+  val iter : ('a -> unit) -> 'a t -> unit
+  val fold : ('acc -> 'a -> 'acc) -> 'acc -> 'a t -> 'acc
+  val length : 'a t -> int
+  val get : 'a t -> int -> 'a
+  val is_empty : 'a t -> bool
+
+  val of_seq : 'a t -> 'a Base.Sequence.t
   (** From last current element to first *)
 
-  val pp: ?sep:unit Fmt.t -> 'a Fmt.t -> 'a t Fmt.t
+  val pp : ?sep:unit Fmt.t -> 'a Fmt.t -> 'a t Fmt.t
 end
 
-module Array: sig
+module Array : sig
   type 'a t
-  val create: creator -> int -> 'a -> 'a t
-  val set: 'a t -> int -> 'a -> unit
-  val get: 'a t -> int -> 'a
+
+  val create : creator -> int -> 'a -> 'a t
+  val set : 'a t -> int -> 'a -> unit
+  val get : 'a t -> int -> 'a
 end
 
-module TimeWheel: Colibri2_popop_lib.TimeWheel.S with type context := creator
+module TimeWheel : Colibri2_popop_lib.TimeWheel.S with type context := creator
 
-module type Hashtbl =  sig
+module type Hashtbl = sig
   type 'a t
   type key
 
-  val create: creator -> 'a t
-
-  val remove : 'a t ->  key -> unit
-  val set : 'a t ->  key -> 'a -> unit
-  val find: 'a t ->  key -> 'a
-  val find_opt: 'a t ->  key -> 'a option
-  val mem: 'a t ->  key -> bool
+  val create : creator -> 'a t
+  val remove : 'a t -> key -> unit
+  val set : 'a t -> key -> 'a -> unit
+  val find : 'a t -> key -> 'a
+  val find_opt : 'a t -> key -> 'a option
+  val mem : 'a t -> key -> bool
   val change : ('a option -> 'a option) -> 'a t -> key -> unit
 end
 
-module Hashtbl (S:Colibri2_popop_lib.Popop_stdlib.Datatype) : Hashtbl with type key := S.t
+module Hashtbl (S : Colibri2_popop_lib.Popop_stdlib.Datatype) :
+  Hashtbl with type key := S.t
 
-module type HashtblWithDefault =  sig
+module type HashtblWithDefault = sig
   type 'a t
   type key
 
-  val create: creator -> (creator -> 'a) -> 'a t
-
+  val create : creator -> (creator -> 'a) -> 'a t
   val set : 'a t -> key -> 'a -> unit
   val find : 'a t -> key -> 'a
   val change : ('a -> 'a) -> 'a t -> key -> unit
 end
 
-module HashtblWithDefault (S:Colibri2_popop_lib.Popop_stdlib.Datatype) : HashtblWithDefault with type key := S.t
+module HashtblWithDefault (S : Colibri2_popop_lib.Popop_stdlib.Datatype) :
+  HashtblWithDefault with type key := S.t
 
-module type Memo =  sig
+module type Memo = sig
   type 'a t
   type key
 
-  val create: creator -> (creator -> key -> 'a) -> 'a t
+  val create : creator -> (creator -> key -> 'a) -> 'a t
   val find : 'a t -> key -> 'a
   val iter : (key -> 'a -> unit) -> 'a t -> unit
   val fold : (key -> 'a -> 'acc -> 'acc) -> 'a t -> 'acc -> 'acc
 end
 
-module Memo (S:Colibri2_popop_lib.Popop_stdlib.Datatype) : Memo with type key := S.t
+module Memo (S : Colibri2_popop_lib.Popop_stdlib.Datatype) :
+  Memo with type key := S.t
 
 (** Clicket *)
+
 (** The added element are given back after each pop *)
 
 module type Clicket = sig
-
   type 'a t
 
-  val create: creator -> 'a t
+  val create : creator -> 'a t
+  val push : 'a t -> 'a -> unit
 
-  val push: 'a t -> 'a -> unit
-
-  val iter: f:('a -> unit) -> 'a t -> unit
+  val iter : f:('a -> unit) -> 'a t -> unit
   (** iter on the one that have been added inside sub-branch *)
 
-  val todo: 'a t -> bool
-
-  val pp: ?sep:unit Fmt.t -> 'a Fmt.t -> 'a t Fmt.t
-
+  val todo : 'a t -> bool
+  val pp : ?sep:unit Fmt.t -> 'a Fmt.t -> 'a t Fmt.t
 end
 
 module Clicket : Clicket
diff --git a/src_colibri2/stdlib/debug.ml b/src_colibri2/stdlib/debug.ml
index b0df2a3fec8bcfb9c81ffe82d429eda31ca6b58d..8ad188f34fc34be7a4b862da39ca634152219b68 100644
--- a/src_colibri2/stdlib/debug.ml
+++ b/src_colibri2/stdlib/debug.ml
@@ -17,7 +17,6 @@ let noassert =
   !x
 
 let formatter = ref Format.err_formatter
-
 let () = Format.pp_set_margin !formatter 300
 
 let () =
@@ -32,17 +31,11 @@ exception UnknownFlag of string
 type flag = bool ref
 
 let _true = ref true
-
 let todo = _true
-
 let modifiable s = not (Base.phys_equal s _true)
-
 let flag_table = Hashtbl.create 17
-
 let fst3 (flag, _, _) = flag
-
 let snd3 (_, info, _) = info
-
 let thd3 (_, _, desc) = desc
 
 let gen_register_flag (desc : (unit, unit, unit, unit, unit, unit) format6) s
@@ -54,7 +47,6 @@ let gen_register_flag (desc : (unit, unit, unit, unit, unit, unit) format6) s
     flag
 
 let register_info_flag ~desc s = gen_register_flag desc s true
-
 let register_flag ~desc s = gen_register_flag desc s false
 
 let list_flags () =
@@ -72,7 +64,6 @@ let flag_desc s =
   try thd3 (Hashtbl.find flag_table s) with Not_found -> raise (UnknownFlag s)
 
 let test_flag s = !s
-
 let test_noflag s = not !s
 
 let set_flag s =
@@ -123,7 +114,6 @@ let set_debug_formatter fmt =
   formatter := fmt
 
 let get_debug_formatter () = !formatter
-
 let () = set_debug_formatter Format.err_formatter
 
 let real_dprintf ?nobox ?ct s =
@@ -254,7 +244,6 @@ module Args = struct
     (desc, list)
 
   let opt_list_flags = ref []
-
   let add_flag s = opt_list_flags := s :: !opt_list_flags
 
   let add_all_flags () =
@@ -334,9 +323,7 @@ let register_stats ~pp ~name ~init =
   s
 
 let modstats0 r f = if test_flag stats then r := f !r
-
 let modstats1 r f x = if test_flag stats then r := f !r x
-
 let modstats2 r f x y = if test_flag stats then r := f !r x y
 
 let register_stats_int name =
@@ -346,7 +333,6 @@ let register_stats_time name =
   register_stats ~pp:(fun fmt f -> Format.fprintf fmt "%.2fs" f) ~name ~init:0.
 
 let incr r = if test_flag stats then incr r
-
 let decr r = if test_flag stats then decr r
 
 let add_time_during r f =
diff --git a/src_colibri2/stdlib/debug.mli b/src_colibri2/stdlib/debug.mli
index 8c82999f6674d92f1477b14bd83c3f8533c2189a..cbbb37ee87568773ddb2d54e6f54fe5babaeed2c 100644
--- a/src_colibri2/stdlib/debug.mli
+++ b/src_colibri2/stdlib/debug.mli
@@ -47,7 +47,6 @@ val set_flag : flag -> unit
 (** Modify the state of a flag *)
 
 val unset_flag : flag -> unit
-
 val toggle_flag : flag -> unit
 
 val test_flag : flag -> bool
@@ -462,21 +461,12 @@ val stats : flag
 type 'a stat
 
 val register_stats : pp:'a Fmt.t -> name:string -> init:'a -> 'a stat
-
 val modstats0 : 'a stat -> ('a -> 'a) -> unit
-
 val modstats1 : 'a stat -> ('a -> 'b -> 'a) -> 'b -> unit
-
 val modstats2 : 'a stat -> ('a -> 'b -> 'c -> 'a) -> 'b -> 'c -> unit
-
 val register_stats_int : string -> int stat
-
 val register_stats_time : string -> float stat
-
 val incr : int stat -> unit
-
 val decr : int stat -> unit
-
 val add_time_during : float stat -> (unit -> 'a) -> 'a
-
 val print_stats : unit -> unit
diff --git a/src_colibri2/stdlib/dune b/src_colibri2/stdlib/dune
index a0be24658642b3a949f7f0705ce4615163bd3978..e15028a7a7b92017cf074c8b9d977cfa2f320b53 100644
--- a/src_colibri2/stdlib/dune
+++ b/src_colibri2/stdlib/dune
@@ -5,7 +5,18 @@
  (libraries zarith containers colibri2_popop_lib fmt qcheck-core calcium)
  (preprocess
   (pps ppx_optcomp ppx_deriving.std ppx_hash))
- (flags :standard -w +a-4-42-44-48-50-58-60-40-9@8 -color always -open
-   Containers)
- (ocamlopt_flags :standard -O3 -bin-annot -unbox-closures
-   -unbox-closures-factor 20))
+ (flags
+  :standard
+  -w
+  +a-4-42-44-48-50-58-60-40-9@8
+  -color
+  always
+  -open
+  Containers)
+ (ocamlopt_flags
+  :standard
+  -O3
+  -bin-annot
+  -unbox-closures
+  -unbox-closures-factor
+  20))
diff --git a/src_colibri2/stdlib/hashtbl_hetero.ml b/src_colibri2/stdlib/hashtbl_hetero.ml
index c2b48c0a47df4feced3b4e451a499288a41e6fd1..aa23026a5a34f2a7975ab080b921cf8b187c934f 100644
--- a/src_colibri2/stdlib/hashtbl_hetero.ml
+++ b/src_colibri2/stdlib/hashtbl_hetero.ml
@@ -22,200 +22,225 @@
 (*************************************************************************)
 
 open Std
-    
 include Hashtbl_hetero_sig
 
-module MakeS1(K:Keys1)(D:sig type ('a,'b) t end)
-= struct
-  module H = Hashtbl.Make(Int)
+module MakeS1
+    (K : Keys1) (D : sig
+      type ('a, 'b) t
+    end) =
+struct
+  module H = Hashtbl.Make (Int)
 
   type 'a key = 'a K.t
-  type ('a,'b) data = ('a,'b) D.t
-
-  type 'b elt = Pair : 'a key * ('a,'b) D.t -> 'b elt
+  type ('a, 'b) data = ('a, 'b) D.t
+  type 'b elt = Pair : 'a key * ('a, 'b) D.t -> 'b elt
   type 'b t = 'b elt H.t
-
-  type 'b iter_initialized  = { iter : 'a. ('a, 'b) data -> unit; }
+  type 'b iter_initialized = { iter : 'a. ('a, 'b) data -> unit }
   type 'b iter_initializedi = { iteri : 'a. 'a key -> ('a, 'b) data -> unit }
-  type ('b, 'c) fold_initialized  = { fold : 'a. 'c -> ('a, 'b) data -> 'c; }
-  type ('b, 'c) fold_initializedi = { foldi : 'a. 'c -> 'a key -> ('a, 'b) data -> 'c }
+  type ('b, 'c) fold_initialized = { fold : 'a. 'c -> ('a, 'b) data -> 'c }
+
+  type ('b, 'c) fold_initializedi = {
+    foldi : 'a. 'c -> 'a key -> ('a, 'b) data -> 'c;
+  }
+
   type printk = { printk : 'a. 'a key Format.printer }
   type 'b printd = { printd : 'a. 'a key -> ('a, 'b) data Format.printer }
 
   module Includable = struct
-
     let create capacity : 'b t = H.create capacity
 
-    let get (type a) (m: 'b t) (k : a key) : (a, 'b) data =
-      let Pair(k',r) = H.find m (K.tag k) in
-      match K.equal k k' with
-      | Poly.Eq -> r
-      | Poly.Neq -> raise IncoherentTable
+    let get (type a) (m : 'b t) (k : a key) : (a, 'b) data =
+      let (Pair (k', r)) = H.find m (K.tag k) in
+      match K.equal k k' with Poly.Eq -> r | Poly.Neq -> raise IncoherentTable
 
     let get_def : 'b t -> 'a key -> ('a, 'b) data -> ('a, 'b) data =
-      fun m k def ->
-        try get m k
-        with Not_found -> def
-
-    let set (m: 'b t) (k: 'a key) (v : ('a, 'b) data) : unit =
-      H.replace m (K.tag k) (Pair(k,v))
+     fun m k def -> try get m k with Not_found -> def
 
-    let is_uninitialized (m: 'b t) (k : 'a key) : bool = not(H.mem m (K.tag k))
+    let set (m : 'b t) (k : 'a key) (v : ('a, 'b) data) : unit =
+      H.replace m (K.tag k) (Pair (k, v))
 
-    let remove (m: 'b t) (k : 'a key) : unit = H.remove m (K.tag k)
+    let is_uninitialized (m : 'b t) (k : 'a key) : bool =
+      not (H.mem m (K.tag k))
 
+    let remove (m : 'b t) (k : 'a key) : unit = H.remove m (K.tag k)
     let clear : 'b t -> unit = H.clear
 
-    let iter_initialized (f : 'b iter_initialized) (m: 'b t) : unit =
-      H.iter (fun _ (Pair(_,v)) -> f.iter v) m
+    let iter_initialized (f : 'b iter_initialized) (m : 'b t) : unit =
+      H.iter (fun _ (Pair (_, v)) -> f.iter v) m
 
-    let fold_initialized (f : ('b, 'c) fold_initialized) (seed: 'c) (m:'b t) =
-      H.fold (fun _ (Pair(_,v)) sofar -> f.fold sofar v) m seed
+    let fold_initialized (f : ('b, 'c) fold_initialized) (seed : 'c) (m : 'b t)
+        =
+      H.fold (fun _ (Pair (_, v)) sofar -> f.fold sofar v) m seed
 
-    let iter_initializedi (f : 'b iter_initializedi) (m: 'b t) : unit =
-      H.iter (fun _ (Pair(k,v)) -> f.iteri k v) m
+    let iter_initializedi (f : 'b iter_initializedi) (m : 'b t) : unit =
+      H.iter (fun _ (Pair (k, v)) -> f.iteri k v) m
 
-    let fold_initializedi (f: ('b, 'c) fold_initializedi) (seed : 'c) (m : 'b t) : 'c =
-      H.fold (fun _ (Pair(k,v)) sofar -> f.foldi sofar k v) m seed
+    let fold_initializedi (f : ('b, 'c) fold_initializedi) (seed : 'c)
+        (m : 'b t) : 'c =
+      H.fold (fun _ (Pair (k, v)) sofar -> f.foldi sofar k v) m seed
 
     let copy : 'b t -> 'b t = H.copy
+
     let move ~from ~to_ =
       H.reset to_;
       let aux k v = H.replace to_ k v in
       H.iter aux from
 
     let pp (sep1 : unit Format.printer) (sep2 : unit Format.printer)
-        (printkey : printk) (printdata : 'b printd) : 'b t Format.printer
-      =
-      fun fmt t ->
-        let printkeydata fmt (Pair(k,v)) =
-          Format.fprintf fmt "%a%a%a" printkey.printk k sep2 () (printdata.printd k) v
-        in
-        let as_list = H.fold (fun _ v sofar -> v::sofar) t [] in
-        Format.list ~sep:sep1 printkeydata fmt as_list
+        (printkey : printk) (printdata : 'b printd) : 'b t Format.printer =
+     fun fmt t ->
+      let printkeydata fmt (Pair (k, v)) =
+        Format.fprintf fmt "%a%a%a" printkey.printk k sep2 ()
+          (printdata.printd k) v
+      in
+      let as_list = H.fold (fun _ v sofar -> v :: sofar) t [] in
+      Format.list ~sep:sep1 printkeydata fmt as_list
   end
 
   include Includable
 end
 
-module MakeR1(K:Keys1) : R1 with type 'a key = 'a K.t = struct
+module MakeR1 (K : Keys1) : R1 with type 'a key = 'a K.t = struct
+  include
+    MakeS1
+      (K)
+      (struct
+        type (_, 'b) t = 'b
+      end)
+
+  let iter_initialized f m = H.iter (fun _ (Pair (_, v)) -> f v) m
 
-  include MakeS1(K)(struct type (_,'b) t = 'b end)
+  let fold_initialized f seed m =
+    H.fold (fun _ (Pair (_, v)) sofar -> f sofar v) m seed
 
-  let iter_initialized f m = H.iter (fun _ (Pair(_,v)) -> f v) m
-  let fold_initialized f seed m = H.fold (fun _ (Pair(_,v)) sofar -> f sofar v) m seed
   let apply_initialized f m =
-    H.filter_map_inplace (fun _ (Pair(k,v)) -> Some(Pair(k,f v))) m
+    H.filter_map_inplace (fun _ (Pair (k, v)) -> Some (Pair (k, f v))) m
 
   let pp (type b) (sep1 : unit Format.printer) (sep2 : unit Format.printer)
-      (printkey : printk) (printdata : b Format.printer) : b t Format.printer
-    =
-    fun fmt t ->
-      let printkeydata fmt (Pair(k,v)) =
-        Format.fprintf fmt "%a%a%a" printkey.printk k sep2 () printdata v
-      in
-      let as_list = H.fold (fun _ v sofar -> v::sofar) t [] in
-      Format.list ~sep:sep1 printkeydata fmt as_list
-
+      (printkey : printk) (printdata : b Format.printer) : b t Format.printer =
+   fun fmt t ->
+    let printkeydata fmt (Pair (k, v)) =
+      Format.fprintf fmt "%a%a%a" printkey.printk k sep2 () printdata v
+    in
+    let as_list = H.fold (fun _ v sofar -> v :: sofar) t [] in
+    Format.list ~sep:sep1 printkeydata fmt as_list
 end
 
-module MakeT1(K:Keys1) : T1 with type 'a key = 'a K.t = struct
-  module S1 = MakeS1(K)(struct type ('a,_) t = 'a end)
+module MakeT1 (K : Keys1) : T1 with type 'a key = 'a K.t = struct
+  module S1 =
+    MakeS1
+      (K)
+      (struct
+        type ('a, _) t = 'a
+      end)
+
   type t = unit S1.t
   type 'a key = 'a K.t
-  type iter_initialized = { iter : 'a. 'a -> unit; }
-  type iter_initializedi = { iteri : 'a. 'a key -> 'a -> unit; }
-  type 'c fold_initialized  = { fold : 'a. 'c -> 'a -> 'c; }
-  type 'c fold_initializedi = { foldi : 'a. 'c -> 'a key -> 'a -> 'c; }
-  type printk = { printk : 'a. 'a key Containers.Format.printer; }
-  type printd = { printd : 'a. 'a key -> 'a Containers.Format.printer; }
+  type iter_initialized = { iter : 'a. 'a -> unit }
+  type iter_initializedi = { iteri : 'a. 'a key -> 'a -> unit }
+  type 'c fold_initialized = { fold : 'a. 'c -> 'a -> 'c }
+  type 'c fold_initializedi = { foldi : 'a. 'c -> 'a key -> 'a -> 'c }
+  type printk = { printk : 'a. 'a key Containers.Format.printer }
+  type printd = { printd : 'a. 'a key -> 'a Containers.Format.printer }
+
   include S1.Includable
-  let iter_initialized {iter} = S1.iter_initialized {iter}
-  let iter_initializedi {iteri} = S1.iter_initializedi {iteri}
-  let fold_initialized {fold} = S1.fold_initialized {fold}
-  let fold_initializedi {foldi} = S1.fold_initializedi {foldi}
+
+  let iter_initialized { iter } = S1.iter_initialized { iter }
+  let iter_initializedi { iteri } = S1.iter_initializedi { iteri }
+  let fold_initialized { fold } = S1.fold_initialized { fold }
+  let fold_initializedi { foldi } = S1.fold_initializedi { foldi }
+
   let pp (sep1 : unit Format.printer) (sep2 : unit Format.printer)
-      (printkey : printk) (printdata : printd) : t Format.printer
-    =
-    fun fmt t ->
-      let printkeydata fmt (S1.Pair(k,v)) =
-        Format.fprintf fmt "%a%a%a" printkey.printk k sep2 () (printdata.printd k) v
-      in
-      let as_list = S1.H.fold (fun _ v sofar -> v::sofar) t [] in
-      Format.list ~sep:sep1 printkeydata fmt as_list
+      (printkey : printk) (printdata : printd) : t Format.printer =
+   fun fmt t ->
+    let printkeydata fmt (S1.Pair (k, v)) =
+      Format.fprintf fmt "%a%a%a" printkey.printk k sep2 () (printdata.printd k)
+        v
+    in
+    let as_list = S1.H.fold (fun _ v sofar -> v :: sofar) t [] in
+    Format.list ~sep:sep1 printkeydata fmt as_list
 end
 
 module MakeS2
-  (K: Keys2)
-  (D:sig type ('a1,'a2,'b) t end)
-  : S2 with type ('a1,'a2) key = ('a1,'a2) K.t
-        and type ('a1,'a2,'b) data = ('a1,'a2,'b) D.t
-= struct
+    (K : Keys2) (D : sig
+      type ('a1, 'a2, 'b) t
+    end) :
+  S2
+    with type ('a1, 'a2) key = ('a1, 'a2) K.t
+     and type ('a1, 'a2, 'b) data = ('a1, 'a2, 'b) D.t = struct
+  module H = Hashtbl.Make (Int)
+
+  type ('a1, 'a2) key = ('a1, 'a2) K.t
+  type ('a1, 'a2, 'b) data = ('a1, 'a2, 'b) D.t
+  type 'b elt = Pair : ('a1, 'a2) key * ('a1, 'a2, 'b) D.t -> 'b elt
+  type 'b t = 'b elt H.t
 
-  module H = Hashtbl.Make(Int)
+  let create capacity : 'b t = H.create capacity
 
-  type ('a1,'a2) key = ('a1,'a2) K.t
-  type ('a1,'a2,'b) data = ('a1,'a2,'b) D.t
+  let get (type a1 a2) (m : 'b t) (k : (a1, a2) key) : (a1, a2, 'b) data =
+    let (Pair (k', r)) = H.find m (K.tag k) in
+    match K.equal k k' with Poly.Eq -> r | Poly.Neq -> raise IncoherentTable
 
-  type 'b elt = Pair : ('a1,'a2) key * ('a1,'a2,'b) D.t -> 'b elt
-  type 'b t = 'b elt H.t
+  let get_def :
+      'b t -> ('a1, 'a2) key -> ('a1, 'a2, 'b) data -> ('a1, 'a2, 'b) data =
+   fun m k def -> try get m k with Not_found -> def
 
-  let create capacity : 'b t = H.create capacity
+  let set (m : 'b t) (k : ('a1, 'a2) key) (v : ('a1, 'a2, 'b) data) : unit =
+    H.replace m (K.tag k) (Pair (k, v))
 
-  let get (type a1 a2) (m: 'b t) (k : (a1,a2) key) : (a1,a2, 'b) data =
-    let Pair(k',r) = H.find m (K.tag k) in
-    match K.equal k k' with
-    | Poly.Eq -> r
-    | Poly.Neq -> raise IncoherentTable
+  let is_uninitialized (m : 'b t) (k : ('a1, 'a2) key) : bool =
+    not (H.mem m (K.tag k))
 
-  let get_def : 'b t -> ('a1,'a2) key -> ('a1,'a2, 'b) data -> ('a1,'a2, 'b) data =
-    fun m k def ->
-      try get m k
-      with Not_found -> def
+  let remove (m : 'b t) (k : ('a1, 'a2) key) : unit = H.remove m (K.tag k)
+  let clear : 'b t -> unit = H.clear
 
-  let set (m: 'b t) (k: ('a1,'a2) key) (v : ('a1,'a2, 'b) data) : unit =
-    H.replace m (K.tag k) (Pair(k,v))
+  type 'b iter_initialized = { iter : 'a1 'a2. ('a1, 'a2, 'b) data -> unit }
 
-  let is_uninitialized (m: 'b t) (k : ('a1,'a2) key) : bool = not(H.mem m (K.tag k))
+  let iter_initialized (f : 'b iter_initialized) (m : 'b t) : unit =
+    H.iter (fun _ (Pair (_, v)) -> f.iter v) m
 
-  let remove (m: 'b t) (k : ('a1,'a2) key) : unit = H.remove m (K.tag k)
+  type ('b, 'c) fold_initialized = {
+    fold : 'a1 'a2. 'c -> ('a1, 'a2, 'b) data -> 'c;
+  }
 
-  let clear : 'b t -> unit = H.clear
+  let fold_initialized (f : ('b, 'c) fold_initialized) (seed : 'c) (m : 'b t) =
+    H.fold (fun _ (Pair (_, v)) sofar -> f.fold sofar v) m seed
 
-  type 'b iter_initialized = { iter: 'a1 'a2. ('a1, 'a2, 'b) data -> unit }
-  let iter_initialized (f : 'b iter_initialized) (m: 'b t) : unit =
-    H.iter (fun _ (Pair(_,v)) -> f.iter v) m
+  type 'b iter_initializedi = {
+    iteri : 'a1 'a2. ('a1, 'a2) key -> ('a1, 'a2, 'b) data -> unit;
+  }
 
-  type ('b,'c) fold_initialized =
-    { fold: 'a1 'a2. 'c -> ('a1,'a2,'b) data -> 'c }
-  let fold_initialized (f : ('b, 'c) fold_initialized) (seed: 'c) (m:'b t) =
-    H.fold (fun _ (Pair(_,v)) sofar -> f.fold sofar v) m seed
+  let iter_initializedi (f : 'b iter_initializedi) (m : 'b t) : unit =
+    H.iter (fun _ (Pair (k, v)) -> f.iteri k v) m
 
-  type 'b iter_initializedi =
-    { iteri: 'a1 'a2. ('a1,'a2) key -> ('a1,'a2,'b) data -> unit }
-  let iter_initializedi (f : 'b iter_initializedi) (m: 'b t) : unit =
-    H.iter (fun _ (Pair(k,v)) -> f.iteri k v) m
+  type ('b, 'c) fold_initializedi = {
+    foldi : 'a1 'a2. 'c -> ('a1, 'a2) key -> ('a1, 'a2, 'b) data -> 'c;
+  }
 
-  type ('b,'c) fold_initializedi =
-    { foldi: 'a1 'a2. 'c -> ('a1,'a2) key -> ('a1,'a2,'b) data -> 'c }
-  let fold_initializedi (f: ('b, 'c) fold_initializedi) (seed : 'c) (m : 'b t) : 'c =
-    H.fold (fun _ (Pair(k,v)) sofar -> f.foldi sofar k v) m seed
+  let fold_initializedi (f : ('b, 'c) fold_initializedi) (seed : 'c) (m : 'b t)
+      : 'c =
+    H.fold (fun _ (Pair (k, v)) sofar -> f.foldi sofar k v) m seed
 
-  type ('b,'c) map_initializedi =
-    { mapi: 'a1 'a2. ('a1,'a2) key -> ('a1,'a2,'b) data -> ('a1,'a2,'b) data  }
-  let map_initializedi (f: ('b, 'c) map_initializedi) (m : 'b t) : unit =
-    H.filter_map_inplace (fun _ (Pair(k,v)) -> Some (Pair(k,f.mapi k v))) m
+  type ('b, 'c) map_initializedi = {
+    mapi : 'a1 'a2. ('a1, 'a2) key -> ('a1, 'a2, 'b) data -> ('a1, 'a2, 'b) data;
+  }
+
+  let map_initializedi (f : ('b, 'c) map_initializedi) (m : 'b t) : unit =
+    H.filter_map_inplace (fun _ (Pair (k, v)) -> Some (Pair (k, f.mapi k v))) m
 
   let copy : 'b t -> 'b t = H.copy
+
   let move ~from ~to_ =
     H.reset to_;
     let aux k v = H.replace to_ k v in
     H.iter aux from
-
 end
 
-module MakeR2(K:Keys2) : R2 with type ('a,'b) key = ('a,'b) K.t = struct
-
-  include MakeS2(K)(struct type (_,_, 'b) t = 'b end)
-
+module MakeR2 (K : Keys2) : R2 with type ('a, 'b) key = ('a, 'b) K.t = struct
+  include
+    MakeS2
+      (K)
+      (struct
+        type (_, _, 'b) t = 'b
+      end)
 end
diff --git a/src_colibri2/stdlib/hashtbl_hetero.mli b/src_colibri2/stdlib/hashtbl_hetero.mli
index 7facc706322d5df600e38f46656cb835105895ff..abbf5b5666b70f3c3352b3b527e8140b086eb466 100644
--- a/src_colibri2/stdlib/hashtbl_hetero.mli
+++ b/src_colibri2/stdlib/hashtbl_hetero.mli
@@ -23,15 +23,20 @@
 
 include module type of Hashtbl_hetero_sig
 
-module MakeS1(K:Keys1)(D:sig type ('a,'b) t end)
-  : S1 with type 'a key = 'a K.t
-        and type ('a,'b) data = ('a,'b) D.t
+module MakeS1
+    (K : Keys1) (D : sig
+      type ('a, 'b) t
+    end) : S1 with type 'a key = 'a K.t and type ('a, 'b) data = ('a, 'b) D.t
 
-module MakeR1(K:Keys1) : R1 with type 'a key = 'a K.t
-module MakeT1(K:Keys1) : T1 with type 'a key = 'a K.t
+module MakeR1 (K : Keys1) : R1 with type 'a key = 'a K.t
+module MakeT1 (K : Keys1) : T1 with type 'a key = 'a K.t
 
-module MakeS2(K: Keys2)(D:sig type ('a1,'a2,'b) t end)
-  : S2 with type ('a1,'a2) key = ('a1,'a2) K.t
-        and type ('a1,'a2,'b) data = ('a1,'a2,'b) D.t
+module MakeS2
+    (K : Keys2) (D : sig
+      type ('a1, 'a2, 'b) t
+    end) :
+  S2
+    with type ('a1, 'a2) key = ('a1, 'a2) K.t
+     and type ('a1, 'a2, 'b) data = ('a1, 'a2, 'b) D.t
 
-module MakeR2(K:Keys2) : R2 with type ('a,'b) key = ('a,'b) K.t
+module MakeR2 (K : Keys2) : R2 with type ('a, 'b) key = ('a, 'b) K.t
diff --git a/src_colibri2/stdlib/hashtbl_hetero_sig.ml b/src_colibri2/stdlib/hashtbl_hetero_sig.ml
index 819aa7f82076bfb12a7c1a72b580e9d167ad407d..00ff29f2384d0fad36c339514e5aaadee0de70ad 100644
--- a/src_colibri2/stdlib/hashtbl_hetero_sig.ml
+++ b/src_colibri2/stdlib/hashtbl_hetero_sig.ml
@@ -27,65 +27,70 @@ exception IncoherentTable
 
 module type Keys1 = sig
   type 'a t
+
   val tag : 'a t -> int
-  val equal : 'a t -> 'b t -> ('a,'b) Poly.iseq
+  val equal : 'a t -> 'b t -> ('a, 'b) Poly.iseq
 end
 
 (** imperative, extensible and heterogene hash-tables *)
 
 module type S1 = sig
   type 'a key
-  type ('a,'b) data
+  type ('a, 'b) data
   type 'b t
 
-  val create  : int -> 'b t
-  val get     : 'b t -> 'a key -> ('a,'b) data
-  val get_def : 'b t -> 'a key -> ('a,'b) data -> ('a,'b) data
-  val set     : 'b t -> 'a key -> ('a,'b) data -> unit
-  val clear    : 'b t -> unit
+  val create : int -> 'b t
+  val get : 'b t -> 'a key -> ('a, 'b) data
+  val get_def : 'b t -> 'a key -> ('a, 'b) data -> ('a, 'b) data
+  val set : 'b t -> 'a key -> ('a, 'b) data -> unit
+  val clear : 'b t -> unit
   val is_uninitialized : 'b t -> 'a key -> bool
-  val remove   : 'b t -> 'a key -> unit
+  val remove : 'b t -> 'a key -> unit
+
+  type 'b iter_initialized = { iter : 'a. ('a, 'b) data -> unit }
 
-  type 'b iter_initialized = { iter: 'a. ('a,'b) data -> unit }
   val iter_initialized : 'b iter_initialized -> 'b t -> unit
 
-  type ('b,'c) fold_initialized = { fold: 'a. 'c -> ('a,'b) data -> 'c }
-  val fold_initialized :
-    ('b,'c) fold_initialized -> 'c -> 'b t -> 'c
+  type ('b, 'c) fold_initialized = { fold : 'a. 'c -> ('a, 'b) data -> 'c }
+
+  val fold_initialized : ('b, 'c) fold_initialized -> 'c -> 'b t -> 'c
 
-  type 'b iter_initializedi = { iteri: 'a. 'a key -> ('a,'b) data -> unit }
-  val iter_initializedi :
-    'b iter_initializedi -> 'b t -> unit
+  type 'b iter_initializedi = { iteri : 'a. 'a key -> ('a, 'b) data -> unit }
 
-  type ('b,'c) fold_initializedi =
-    { foldi: 'a. 'c -> 'a key -> ('a,'b) data -> 'c }
-  val fold_initializedi :
-    ('b,'c) fold_initializedi -> 'c -> 'b t -> 'c
+  val iter_initializedi : 'b iter_initializedi -> 'b t -> unit
 
+  type ('b, 'c) fold_initializedi = {
+    foldi : 'a. 'c -> 'a key -> ('a, 'b) data -> 'c;
+  }
+
+  val fold_initializedi : ('b, 'c) fold_initializedi -> 'c -> 'b t -> 'c
   val copy : 'b t -> 'b t
+
   (* shallow *)
-  val move: from:'b t -> to_:'b t -> unit
+  val move : from:'b t -> to_:'b t -> unit
 
-  type printk    = { printk: 'a. 'a key Format.printer }
-  type 'b printd = { printd: 'a. 'a key -> ('a,'b) data Format.printer }
-  val pp:
+  type printk = { printk : 'a. 'a key Format.printer }
+  type 'b printd = { printd : 'a. 'a key -> ('a, 'b) data Format.printer }
+
+  val pp :
     unit Format.printer ->
     unit Format.printer ->
     printk ->
     'b printd ->
     'b t Format.printer
-
 end
 
 (** Same as S1 but for ('a,'b) data = 'b *)
 module type R1 = sig
   (* type ('a,'b) data = 'b *)
-  include S1 with type ('a,'b) data = 'b
+  include S1 with type ('a, 'b) data = 'b
+
   (* Some primitives get their types simplified *)
-  val iter_initialized  : ('b -> unit) -> 'b t -> unit
-  val fold_initialized  : ('c -> 'b -> 'c) -> 'c -> 'b t -> 'c
+  val iter_initialized : ('b -> unit) -> 'b t -> unit
+  val fold_initialized : ('c -> 'b -> 'c) -> 'c -> 'b t -> 'c
   val apply_initialized : ('b -> 'b) -> 'b t -> unit
-  val pp:
+
+  val pp :
     unit Format.printer ->
     unit Format.printer ->
     printk ->
@@ -97,82 +102,101 @@ end
 module type T1 = sig
   type t
   type 'a key
+
   val create : int -> t
   val get : t -> 'a key -> 'a
   val get_def : t -> 'a key -> 'a -> 'a
   val set : t -> 'a key -> 'a -> unit
   val clear : t -> unit
   val is_uninitialized : t -> 'a key -> bool
-  val remove   : t -> 'a key -> unit
-  type iter_initialized = { iter : 'a. 'a -> unit; }
+  val remove : t -> 'a key -> unit
+
+  type iter_initialized = { iter : 'a. 'a -> unit }
+
   val iter_initialized : iter_initialized -> t -> unit
-  type 'c fold_initialized = { fold : 'a. 'c -> 'a -> 'c; }
+
+  type 'c fold_initialized = { fold : 'a. 'c -> 'a -> 'c }
+
   val fold_initialized : 'c fold_initialized -> 'c -> t -> 'c
-  type iter_initializedi = { iteri : 'a. 'a key -> 'a -> unit; }
+
+  type iter_initializedi = { iteri : 'a. 'a key -> 'a -> unit }
+
   val iter_initializedi : iter_initializedi -> t -> unit
-  type 'c fold_initializedi = { foldi : 'a. 'c -> 'a key -> 'a -> 'c; }
+
+  type 'c fold_initializedi = { foldi : 'a. 'c -> 'a key -> 'a -> 'c }
+
   val fold_initializedi : 'c fold_initializedi -> 'c -> t -> 'c
   val copy : t -> t
-  val move : from: t -> to_: t -> unit
-  type printk = { printk : 'a. 'a key Containers.Format.printer; }
-  type printd = { printd : 'a. 'a key -> 'a Containers.Format.printer; }
+  val move : from:t -> to_:t -> unit
+
+  type printk = { printk : 'a. 'a key Containers.Format.printer }
+  type printd = { printd : 'a. 'a key -> 'a Containers.Format.printer }
+
   val pp :
     unit Containers.Format.printer ->
     unit Containers.Format.printer ->
-    printk -> printd -> t Containers.Format.printer
+    printk ->
+    printd ->
+    t Containers.Format.printer
 end
 
-
 module type Keys2 = sig
-  type ('a1,'a2) t
-  val tag : ('a1,'a2) t -> int
-  val equal : ('a1,'a2) t -> ('b1,'b2) t -> ('a1*'a2,'b1*'b2) Poly.iseq
+  type ('a1, 'a2) t
+
+  val tag : ('a1, 'a2) t -> int
+  val equal : ('a1, 'a2) t -> ('b1, 'b2) t -> ('a1 * 'a2, 'b1 * 'b2) Poly.iseq
 end
 
 module type S2 = sig
-  type ('a1,'a2) key
-  type ('a1,'a2,'b) data
+  type ('a1, 'a2) key
+  type ('a1, 'a2, 'b) data
   type 'b t
 
   val create : int -> 'b t
+  val get : 'b t -> ('a1, 'a2) key -> ('a1, 'a2, 'b) data
 
-  val get  : 'b t -> ('a1,'a2) key -> ('a1,'a2,'b) data
-  val get_def  : 'b t -> ('a1,'a2) key -> ('a1,'a2,'b) data -> ('a1,'a2,'b) data
-  val set  : 'b t -> ('a1,'a2) key -> ('a1,'a2,'b) data -> unit
-  val clear: 'b t -> unit
+  val get_def :
+    'b t -> ('a1, 'a2) key -> ('a1, 'a2, 'b) data -> ('a1, 'a2, 'b) data
 
-  val is_uninitialized : 'b t -> ('a1,'a2) key -> bool
-  val remove   : 'b t -> ('a1,'a2) key -> unit
+  val set : 'b t -> ('a1, 'a2) key -> ('a1, 'a2, 'b) data -> unit
+  val clear : 'b t -> unit
+  val is_uninitialized : 'b t -> ('a1, 'a2) key -> bool
+  val remove : 'b t -> ('a1, 'a2) key -> unit
+
+  type 'b iter_initialized = { iter : 'a1 'a2. ('a1, 'a2, 'b) data -> unit }
 
-  type 'b iter_initialized = { iter: 'a1 'a2. ('a1, 'a2, 'b) data -> unit }
   val iter_initialized : 'b iter_initialized -> 'b t -> unit
 
-  type ('b,'c) fold_initialized =
-    { fold: 'a1 'a2. 'c -> ('a1,'a2,'b) data -> 'c }
-  val fold_initialized :
-     ('b,'c) fold_initialized -> 'c -> 'b t -> 'c
+  type ('b, 'c) fold_initialized = {
+    fold : 'a1 'a2. 'c -> ('a1, 'a2, 'b) data -> 'c;
+  }
+
+  val fold_initialized : ('b, 'c) fold_initialized -> 'c -> 'b t -> 'c
 
-  type 'b iter_initializedi =
-    { iteri: 'a1 'a2. ('a1,'a2) key -> ('a1,'a2,'b) data -> unit }
-  val iter_initializedi :
-    'b iter_initializedi -> 'b t -> unit
+  type 'b iter_initializedi = {
+    iteri : 'a1 'a2. ('a1, 'a2) key -> ('a1, 'a2, 'b) data -> unit;
+  }
 
-  type ('b,'c) fold_initializedi =
-    { foldi: 'a1 'a2. 'c -> ('a1,'a2) key -> ('a1,'a2,'b) data -> 'c }
-  val fold_initializedi :
-     ('b,'c) fold_initializedi -> 'c -> 'b t -> 'c
+  val iter_initializedi : 'b iter_initializedi -> 'b t -> unit
 
-  type ('b,'c) map_initializedi =
-    { mapi: 'a1 'a2. ('a1,'a2) key -> ('a1,'a2,'b) data -> ('a1,'a2,'b) data}
-  val map_initializedi :
-     ('b,'c) map_initializedi -> 'b t -> unit
+  type ('b, 'c) fold_initializedi = {
+    foldi : 'a1 'a2. 'c -> ('a1, 'a2) key -> ('a1, 'a2, 'b) data -> 'c;
+  }
 
+  val fold_initializedi : ('b, 'c) fold_initializedi -> 'c -> 'b t -> 'c
+
+  type ('b, 'c) map_initializedi = {
+    mapi : 'a1 'a2. ('a1, 'a2) key -> ('a1, 'a2, 'b) data -> ('a1, 'a2, 'b) data;
+  }
+
+  val map_initializedi : ('b, 'c) map_initializedi -> 'b t -> unit
   val copy : 'b t -> 'b t
+
   (* shallow *)
-  val move: from:'b t -> to_:'b t -> unit
+  val move : from:'b t -> to_:'b t -> unit
 end
 
 module type R2 = sig
   (* type ('a,'b) data = 'b *)
-  include S2 with type ('a1,'a2, 'b) data = 'b
+  include S2 with type ('a1, 'a2, 'b) data = 'b
 end
diff --git a/src_colibri2/stdlib/keys.ml b/src_colibri2/stdlib/keys.ml
index 873e56c320f165db891c63273b8d1e77ebcc271e..c0afa2ca2f935083121545adb0cd4a5abcd74268 100644
--- a/src_colibri2/stdlib/keys.ml
+++ b/src_colibri2/stdlib/keys.ml
@@ -19,125 +19,152 @@
 (*************************************************************************)
 
 [%%import "config.ml"]
-
 [%%if keys = "well-typed"]
 
 open Std
-
 module Strings = Colibri2_popop_lib.Strings
 module StringH = Colibri2_popop_lib.Popop_stdlib.DStr.H
 module Exn_printer = Colibri2_popop_lib.Exn_printer
-
 include Keys_sig
 
-module Make_key(X:sig end) = struct
-
+module Make_key (X : sig end) = struct
   type _ gadt = ..
-  type 'a t = { gadt : 'a gadt;
-                name : string;
-                id   : int;
-                iseq : 'b. 'b gadt -> ('a,'b) Poly.iseq }
+
+  type 'a t = {
+    gadt : 'a gadt;
+    name : string;
+    id : int;
+    iseq : 'b. 'b gadt -> ('a, 'b) Poly.iseq;
+  }
 
   let pp fmt x = Format.pp_print_string fmt x.name
   let equal a b = a.id = b.id
   let compare x y = compare x.id y.id
   let hash x = x.id
-  let tag  x = x.id
+  let tag x = x.id
   let name x = x.name
-                 
+
   module Eq = struct
     let eq_type a b = a.iseq b.gadt
     let coerce_type a b = eq_type a b |> Poly.eq
-    let coerce (type a) (type b) (a:a t) (b:b t) (x:a) : b =
-      let Poly.Eq = coerce_type a b in x
+
+    let coerce (type a b) (a : a t) (b : b t) (x : a) : b =
+      let Poly.Eq = coerce_type a b in
+      x
   end
 
   type key = K : _ t -> key [@@unboxed]
 
-  module AllKeys = Hashtbl.Make(struct
-      type t = key
-      let equal (K a) (K b) = equal a b
-      let hash (K a) = a.id
-    end)
+  module AllKeys = Hashtbl.Make (struct
+    type t = key
+
+    let equal (K a) (K b) = equal a b
+    let hash (K a) = a.id
+  end)
 
   let all_keys = AllKeys.create 17
   let used_names : (* next id to use *) int StringH.t = StringH.create 17
-  
+
   let create (type a) (module NT : NamedType with type t = a) : a t =
     let module TMP = struct
       type _ gadt += K : NT.t gadt
     end in
-    let iseq : type b. b gadt -> (NT.t,b) Poly.iseq = function
+    let iseq : type b. b gadt -> (NT.t, b) Poly.iseq = function
       | TMP.K -> Poly.Eq
       | _ -> Poly.Neq
     in
-    let key = { gadt = TMP.K;
-                name = Strings.find_new_name used_names NT.name;
-                id   = AllKeys.length all_keys;
-                iseq }
+    let key =
+      {
+        gadt = TMP.K;
+        name = Strings.find_new_name used_names NT.name;
+        id = AllKeys.length all_keys;
+        iseq;
+      }
     in
     AllKeys.replace all_keys (K key) ();
     key
 
+  type iter = { iter : 'a. 'a t -> unit } [@@unboxed]
 
-  type iter = {iter : 'a. 'a t -> unit} [@@unboxed]
   let iter f = AllKeys.iter (fun (K x) () -> f.iter x) all_keys
-  type 'b fold = {fold : 'a. 'a t -> 'b -> 'b} [@@unboxed]
+
+  type 'b fold = { fold : 'a. 'a t -> 'b -> 'b } [@@unboxed]
+
   let fold f = AllKeys.fold (fun (K x) () -> f.fold x) all_keys
 
   module K1 = struct
     type nonrec 'a t = 'a t
+
     let equal = Eq.eq_type
     let tag = tag
   end
 
-  module MkVector(D:sig type ('a,'b) t end) = Hashtbl_hetero.MakeS1(K1)(D)
-  module Vector  = Hashtbl_hetero.MakeR1(K1)
-  module VectorH = Hashtbl_hetero.MakeT1(K1)
-  module MkMap(D:sig type ('a,'b) t end) = Map_hetero.MakeS(K1)(D)
-  module M = Map_hetero.MakeR(K1)
+  module MkVector (D : sig
+    type ('a, 'b) t
+  end) =
+    Hashtbl_hetero.MakeS1 (K1) (D)
+
+  module Vector = Hashtbl_hetero.MakeR1 (K1)
+  module VectorH = Hashtbl_hetero.MakeT1 (K1)
 
-  module Make_Registry(S:sig
-      type 'a data
-      val pp: 'a data -> 'a Format.printer
-      val key: 'a data -> 'a t
-    end) = struct
+  module MkMap (D : sig
+    type ('a, 'b) t
+  end) =
+    Map_hetero.MakeS (K1) (D)
 
+  module M = Map_hetero.MakeR (K1)
+
+  module Make_Registry (S : sig
+    type 'a data
+
+    val pp : 'a data -> 'a Format.printer
+    val key : 'a data -> 'a t
+  end) =
+  struct
     type 'a data = 'a S.data
 
-    module V = MkVector(struct type ('a,'unedeed) t = 'a S.data end)
+    module V = MkVector (struct
+      type ('a, 'unedeed) t = 'a S.data
+    end)
 
     exception UnregisteredKey : 'a t -> exn
     exception AlreadyRegisteredKey : 'a t -> exn
 
-    let () = Exn_printer.register (fun fmt exn ->
-        match exn with
-        | UnregisteredKey(key) ->
-          Format.fprintf fmt "The key %a have not been registered" pp key
-        | AlreadyRegisteredKey(key) ->
-          Format.fprintf fmt "The key %a have already been registered" pp key
-        | exn -> raise exn
-      )
+    let () =
+      Exn_printer.register (fun fmt exn ->
+          match exn with
+          | UnregisteredKey key ->
+              Format.fprintf fmt "The key %a have not been registered" pp key
+          | AlreadyRegisteredKey key ->
+              Format.fprintf fmt "The key %a have already been registered" pp
+                key
+          | exn -> raise exn)
 
     let registry : unit V.t = V.create 8
 
     let register data =
       let key = S.key data in
-      assert (if not (V.is_uninitialized registry key)
-              then raise (AlreadyRegisteredKey key) else true);
+      assert (
+        if not (V.is_uninitialized registry key) then
+          raise (AlreadyRegisteredKey key)
+        else true);
       V.set registry key data
 
     let check_is_registered key =
-      assert (if V.is_uninitialized registry key
-              then raise (UnregisteredKey key) else true)
+      assert (
+        if V.is_uninitialized registry key then raise (UnregisteredKey key)
+        else true)
 
     let is_well_initialized () =
       let well_initialized = ref true in
-      iter {iter = fun data ->
-          if V.is_uninitialized registry data then begin
-            Format.eprintf "[Warning] %a is not registered" pp data;
-            well_initialized := false;
-          end};
+      iter
+        {
+          iter =
+            (fun data ->
+              if V.is_uninitialized registry data then (
+                Format.eprintf "[Warning] %a is not registered" pp data;
+                well_initialized := false));
+        };
       !well_initialized
 
     let get k =
@@ -148,32 +175,36 @@ module Make_key(X:sig end) = struct
       let data = get k in
       S.pp data fmt s
 
-    type ('b,'c) fold_initialized = ('b,'c) V.fold_initialized = { fold: 'a. 'c -> 'a data -> 'c }
+    type ('b, 'c) fold_initialized = ('b, 'c) V.fold_initialized = {
+      fold : 'a. 'c -> 'a data -> 'c;
+    }
+
     let fold_initialized f acc = V.fold_initialized f acc registry
-    type 'b iter_initialized = 'b V.iter_initialized = { iter: 'a. 'a data -> unit }
+
+    type 'b iter_initialized = 'b V.iter_initialized = {
+      iter : 'a. 'a data -> unit;
+    }
+
     let iter_initialized f = V.iter_initialized f registry
   end
-
 end
 
+module Make_key2 (X : sig end) : Key2 = struct
+  type (_, _) gadt = ..
 
-
-
-
-module Make_key2(X:sig end) : Key2 = struct
-
-  type (_,_) gadt = ..
-  type ('k,'d) t = { gadt : ('k,'d) gadt;
-                     name : string;
-                     id   : int;
-                     iseq : 'b1 'b2. ('b1,'b2) gadt -> ('k*'d,'b1*'b2) Poly.iseq }
+  type ('k, 'd) t = {
+    gadt : ('k, 'd) gadt;
+    name : string;
+    id : int;
+    iseq : 'b1 'b2. ('b1, 'b2) gadt -> ('k * 'd, 'b1 * 'b2) Poly.iseq;
+  }
 
   let pp fmt x = Format.pp_print_string fmt x.name
   let equal a b = a.id = b.id
   let hash x = x.id
-  let tag    = hash
+  let tag = hash
   let name x = x.name
-  
+
   module Eq = struct
     let eq_type a b = a.iseq b.gadt
     let coerce_type a b = eq_type a b |> Poly.eq
@@ -181,90 +212,112 @@ module Make_key2(X:sig end) : Key2 = struct
 
   type key = K : _ t -> key [@@unboxed]
 
-  module AllKeys = Hashtbl.Make(struct
-      type t = key
-      let equal (K a) (K b) = equal a b
-      let hash (K a) = a.id
-    end)
+  module AllKeys = Hashtbl.Make (struct
+    type t = key
+
+    let equal (K a) (K b) = equal a b
+    let hash (K a) = a.id
+  end)
 
   let all_keys = AllKeys.create 17
   let used_names : (* next id to use *) int StringH.t = StringH.create 17
 
-  let create (type a1) (type a2) (module NT : NamedType2 with type t = a1
-                                                              and type d = a2)
-    : (a1,a2) t =
+  let create (type a1 a2)
+      (module NT : NamedType2 with type t = a1 and type d = a2) : (a1, a2) t =
     let module TMP = struct
-      type (_,_) gadt += K : (NT.t,NT.d) gadt
+      type (_, _) gadt += K : (NT.t, NT.d) gadt
     end in
-    let iseq : type b1 b2. (b1,b2) gadt -> (NT.t*NT.d,b1*b2) Poly.iseq = function
+    let iseq : type b1 b2. (b1, b2) gadt -> (NT.t * NT.d, b1 * b2) Poly.iseq =
+      function
       | TMP.K -> Poly.Eq
       | _ -> Poly.Neq
     in
-    let key = { gadt = TMP.K;
-                name = Strings.find_new_name used_names NT.name;
-                id   = AllKeys.length all_keys;
-                iseq }
+    let key =
+      {
+        gadt = TMP.K;
+        name = Strings.find_new_name used_names NT.name;
+        id = AllKeys.length all_keys;
+        iseq;
+      }
     in
     AllKeys.add all_keys (K key) ();
     key
 
-  type iter = {iter : 'k 'd. ('k,'d) t -> unit} [@@unboxed]
+  type iter = { iter : 'k 'd. ('k, 'd) t -> unit } [@@unboxed]
+
   let iter f = AllKeys.iter (fun (K x) () -> f.iter x) all_keys
-  type 'b fold = {fold : 'a1 'a2. ('a1,'a2) t -> 'b -> 'b} [@@unboxed]
+
+  type 'b fold = { fold : 'a1 'a2. ('a1, 'a2) t -> 'b -> 'b } [@@unboxed]
+
   let fold f = AllKeys.fold (fun (K x) () -> f.fold x) all_keys
 
   module K2 = struct
-    type nonrec ('a1,'a2) t = ('a1,'a2) t
+    type nonrec ('a1, 'a2) t = ('a1, 'a2) t
+
     let equal = Eq.eq_type
     let tag = tag
   end
 
-  module MkVector(D:sig type ('k,'d,'b) t end) = Hashtbl_hetero.MakeS2(K2)(D)
-  module Vector  = Hashtbl_hetero.MakeR2(K2)
+  module MkVector (D : sig
+    type ('k, 'd, 'b) t
+  end) =
+    Hashtbl_hetero.MakeS2 (K2) (D)
+
+  module Vector = Hashtbl_hetero.MakeR2 (K2)
 
-  module Make_Registry(S:sig
-      type ('k,'d) data
-      val ppk: ('k,'d) data -> 'k Format.printer
-      val ppd: ('k,'d) data -> 'd Format.printer
-      val key: ('k,'d) data -> ('k,'d) t
-    end) = struct
+  module Make_Registry (S : sig
+    type ('k, 'd) data
 
-    type ('k,'d) data = ('k,'d) S.data
+    val ppk : ('k, 'd) data -> 'k Format.printer
+    val ppd : ('k, 'd) data -> 'd Format.printer
+    val key : ('k, 'd) data -> ('k, 'd) t
+  end) =
+  struct
+    type ('k, 'd) data = ('k, 'd) S.data
 
-    module V = MkVector(struct type ('k,'d,'unedeed) t = ('k,'d) S.data end)
+    module V = MkVector (struct
+      type ('k, 'd, 'unedeed) t = ('k, 'd) S.data
+    end)
 
     let registry : unit V.t = V.create 8
 
-    exception UnregisteredKey : ('a,'b) t -> exn
-    exception AlreadyRegisteredKey : ('a,'b) t -> exn
+    exception UnregisteredKey : ('a, 'b) t -> exn
+    exception AlreadyRegisteredKey : ('a, 'b) t -> exn
 
     let register data =
       let key = S.key data in
-      assert (if not (V.is_uninitialized registry key)
-              then raise (AlreadyRegisteredKey key) else true);
+      assert (
+        if not (V.is_uninitialized registry key) then
+          raise (AlreadyRegisteredKey key)
+        else true);
       V.set registry key data
 
     let check_is_registered key =
-      assert (if V.is_uninitialized registry key
-              then raise (UnregisteredKey key) else true)
+      assert (
+        if V.is_uninitialized registry key then raise (UnregisteredKey key)
+        else true)
 
     let is_well_initialized () =
       let well_initialized = ref true in
-      iter {iter = fun data ->
-          if V.is_uninitialized registry data then begin
-            Format.eprintf "[Warning] %a is not registered" pp data;
-            well_initialized := false;
-          end};
+      iter
+        {
+          iter =
+            (fun data ->
+              if V.is_uninitialized registry data then (
+                Format.eprintf "[Warning] %a is not registered" pp data;
+                well_initialized := false));
+        };
       !well_initialized
 
     let get k =
       check_is_registered k;
       V.get registry k
 
-    let printk (type k) (type d) (k : (k,d) t) fmt s =
+    let printk (type k d) (k : (k, d) t) fmt s =
       let data = get k in
       (S.ppk data) fmt s
-    let printd (type k) (type d) (k : (k,d) t) fmt s =
+
+    let printd (type k d) (k : (k, d) t) fmt s =
       let data = get k in
       (S.ppd data) fmt s
   end
diff --git a/src_colibri2/stdlib/keys.mli b/src_colibri2/stdlib/keys.mli
index 084a1ee91e266906fa74d0578d08dee51dbca68f..170f71c5323f298d0d4f5d4d9f03cd8af573036d 100644
--- a/src_colibri2/stdlib/keys.mli
+++ b/src_colibri2/stdlib/keys.mli
@@ -22,13 +22,11 @@
 (*************************************************************************)
 
 [%%import "config.ml"]
-
 [%%if keys = "well-typed"]
 
 include module type of Keys_sig
-
-module Make_key(_:sig end) : Key
-module Make_key2(_:sig end): Key2
+module Make_key (_ : sig end) : Key
+module Make_key2 (_ : sig end) : Key2
 
 [%%else]
 
diff --git a/src_colibri2/stdlib/keys_sig.ml b/src_colibri2/stdlib/keys_sig.ml
index 1cff4149009e34088856c3ba758782fc8246952d..9367b04e66f3d18558d22e1bd8dbb93d82389347 100644
--- a/src_colibri2/stdlib/keys_sig.ml
+++ b/src_colibri2/stdlib/keys_sig.ml
@@ -36,25 +36,30 @@ module type Registry = sig
   type 'a key
   type 'a data
 
-  val register: 'a data -> unit
+  val register : 'a data -> unit
   val check_is_registered : 'a key -> unit
   val is_well_initialized : unit -> bool
   val get : 'a key -> 'a data
   val print : 'a key -> 'a Format.printer
-  type 'b iter_initialized = { iter: 'a. 'a data -> unit }
+
+  type 'b iter_initialized = { iter : 'a. 'a data -> unit }
+
   val iter_initialized : unit iter_initialized -> unit
-  type ('b,'c) fold_initialized = { fold: 'a. 'c -> 'a data -> 'c }
-  val fold_initialized : (unit,'c) fold_initialized -> 'c -> 'c
 
+  type ('b, 'c) fold_initialized = { fold : 'a. 'c -> 'a data -> 'c }
+
+  val fold_initialized : (unit, 'c) fold_initialized -> 'c -> 'c
+
+  exception UnregisteredKey : 'a key -> exn
   (** the key shouldn't be used before its registration and shouldn't be
       registered again *)
-  exception UnregisteredKey : 'a key -> exn
-  exception AlreadyRegisteredKey : 'a key -> exn
 
+  exception AlreadyRegisteredKey : 'a key -> exn
 end
 
 module type NamedType = sig
   type t
+
   val name : string
 end
 
@@ -64,24 +69,27 @@ module type Key = sig
   (* module K: Datatype *)
   type 'a t
 
-  val pp: 'a t Format.printer
-  val compare: 'a t -> 'b t -> int
-  val equal: 'a t -> 'b t -> bool
+  val pp : 'a t Format.printer
+  val compare : 'a t -> 'b t -> int
+  val equal : 'a t -> 'b t -> bool
   val hash : 'a t -> int
-  val tag  : 'a t -> int
+  val tag : 'a t -> int
   val name : 'a t -> string
 
-  type iter = {iter : 'a. 'a t -> unit} [@@unboxed]
+  type iter = { iter : 'a. 'a t -> unit } [@@unboxed]
+
   val iter : iter -> unit
-  type 'b fold = {fold : 'a. 'a t -> 'b -> 'b} [@@unboxed]
+
+  type 'b fold = { fold : 'a. 'a t -> 'b -> 'b } [@@unboxed]
+
   val fold : 'b fold -> 'b -> 'b
 
-  module Eq: sig
-    val eq_type : 'a t -> 'b t -> ('a,'b) Poly.iseq
+  module Eq : sig
+    val eq_type : 'a t -> 'b t -> ('a, 'b) Poly.iseq
     (** If the two arguments are identical then an equality witness
         between the types is returned *)
 
-    val coerce_type : 'a t -> 'b t -> ('a,'b) Poly.eq
+    val coerce_type : 'a t -> 'b t -> ('a, 'b) Poly.eq
     (** If the two arguments are identical then an equality witness
         between the types is returned otherwise
         the exception BadCoercion is raised  *)
@@ -89,91 +97,110 @@ module type Key = sig
     val coerce : 'a t -> 'b t -> 'a -> 'b
     (** If the two arguments are identical then covnert the
         argument otherwise taise BadCoercion *)
-
   end
-  val create: (module NamedType with type t = 'a) -> 'a t
 
-  module MkVector(D:sig type ('a,'b) t end)
-    : Hashtbl_hetero.S1 with type 'a key = 'a t
-                        and type ('a,'b) data = ('a,'b) D.t
-  module Vector  : Hashtbl_hetero.R1 with type 'a key = 'a t
+  val create : (module NamedType with type t = 'a) -> 'a t
+
+  module MkVector (D : sig
+    type ('a, 'b) t
+  end) :
+    Hashtbl_hetero.S1
+      with type 'a key = 'a t
+       and type ('a, 'b) data = ('a, 'b) D.t
+
+  module Vector : Hashtbl_hetero.R1 with type 'a key = 'a t
   module VectorH : Hashtbl_hetero.T1 with type 'a key = 'a t
 
-  module MkMap(D:sig type ('a,'b) t end)
-    : Map_hetero.S with type 'a key = 'a t
-                    and type ('a,'b) data = ('a,'b) D.t
+  module MkMap (D : sig
+    type ('a, 'b) t
+  end) :
+    Map_hetero.S with type 'a key = 'a t and type ('a, 'b) data = ('a, 'b) D.t
+
   module M : Map_hetero.R with type 'a key = 'a t
-  module Make_Registry(S:sig
-      type 'a data
-      val pp : 'a data -> 'a Format.printer
-      val key: 'a data -> 'a t
-    end) : Registry with type 'a key := 'a t and type 'a data = 'a S.data
-end
 
+  module Make_Registry (S : sig
+    type 'a data
+
+    val pp : 'a data -> 'a Format.printer
+    val key : 'a data -> 'a t
+  end) : Registry with type 'a key := 'a t and type 'a data = 'a S.data
+end
 
 (* Arity 2 *)
 
 module type NamedType2 = sig
   type t
   type d
+
   val name : string
 end
 
 module type Registry2 = sig
-  type ('k,'d) key
-  type ('k,'d) data
+  type ('k, 'd) key
+  type ('k, 'd) data
 
-  val register: ('k,'d) data -> unit
-  val check_is_registered : ('k,'d) key -> unit
+  val register : ('k, 'd) data -> unit
+  val check_is_registered : ('k, 'd) key -> unit
   val is_well_initialized : unit -> bool
-  val get : ('k,'d) key -> ('k,'d) data
-  val printk : ('k,'d) key -> 'k Format.printer
-  val printd : ('k,'d) key -> 'd Format.printer
+  val get : ('k, 'd) key -> ('k, 'd) data
+  val printk : ('k, 'd) key -> 'k Format.printer
+  val printd : ('k, 'd) key -> 'd Format.printer
 
-
-  exception UnregisteredKey : ('a,'b) key -> exn
-  exception AlreadyRegisteredKey : ('a,'b) key -> exn
+  exception UnregisteredKey : ('a, 'b) key -> exn
+  exception AlreadyRegisteredKey : ('a, 'b) key -> exn
 end
 
 module type Key2 = sig
   (** Key with arity 2 *)
 
-  type ('k,'d) t
+  type ('k, 'd) t
+
+  val pp : ('k, 'd) t Format.printer
+  val equal : ('k1, 'd1) t -> ('k2, 'd2) t -> bool
+  val hash : ('k, 'd) t -> int
+  val name : ('k, 'd) t -> string
 
-  val pp: ('k,'d) t Format.printer
-  val equal: ('k1,'d1) t -> ('k2,'d2) t -> bool
-  val hash : ('k,'d) t -> int
-  val name : ('k,'d) t -> string
+  type iter = { iter : 'k 'd. ('k, 'd) t -> unit } [@@unboxed]
 
-  type iter = {iter : 'k 'd. ('k,'d) t -> unit} [@@unboxed]
   val iter : iter -> unit
 
-  type 'b fold = {fold : 'a1 'a2. ('a1,'a2) t -> 'b -> 'b} [@@unboxed]
+  type 'b fold = { fold : 'a1 'a2. ('a1, 'a2) t -> 'b -> 'b } [@@unboxed]
+
   val fold : 'b fold -> 'b -> 'b
 
-  val create: (module NamedType2 with type t = 'a1
-                                      and type d = 'a2)
-                  -> ('a1,'a2) t
+  val create :
+    (module NamedType2 with type t = 'a1 and type d = 'a2) -> ('a1, 'a2) t
 
-  module Eq: sig
-    val eq_type : ('a1,'a2) t -> ('b1,'b2) t -> ('a1*'a2,'b1*'b2) Poly.iseq
+  module Eq : sig
+    val eq_type :
+      ('a1, 'a2) t -> ('b1, 'b2) t -> ('a1 * 'a2, 'b1 * 'b2) Poly.iseq
     (** If the two arguments are identical then an equality witness
         between the types is returned *)
 
-    val coerce_type : ('a1,'a2) t -> ('b1,'b2) t -> ('a1*'a2,'b1*'b2) Poly.eq
-      (** If the two arguments are identical then an equality witness
+    val coerce_type :
+      ('a1, 'a2) t -> ('b1, 'b2) t -> ('a1 * 'a2, 'b1 * 'b2) Poly.eq
+    (** If the two arguments are identical then an equality witness
           between the types is returned otherwise
           the exception BadCoercion is raised  *)
   end
-  module MkVector(D:sig type ('k,'d,'b) t end)
-    : Hashtbl_hetero.S2 with type ('k,'d) key = ('k,'d) t
-                         and type ('k,'d,'b) data = ('k,'d,'b) D.t
-  module Vector  : Hashtbl_hetero.R2 with type ('a,'b) key = ('a,'b) t
-  module Make_Registry(S:sig
-      type ('k,'d) data
-      val ppk: ('k,'d) data -> 'k Format.printer
-      val ppd: ('k,'d) data -> 'd Format.printer
-      val key: ('k,'d) data -> ('k,'d) t
-    end) : Registry2 with type ('k,'d) key := ('k,'d) t and type ('k,'d) data = ('k,'d) S.data
-end
 
+  module MkVector (D : sig
+    type ('k, 'd, 'b) t
+  end) :
+    Hashtbl_hetero.S2
+      with type ('k, 'd) key = ('k, 'd) t
+       and type ('k, 'd, 'b) data = ('k, 'd, 'b) D.t
+
+  module Vector : Hashtbl_hetero.R2 with type ('a, 'b) key = ('a, 'b) t
+
+  module Make_Registry (S : sig
+    type ('k, 'd) data
+
+    val ppk : ('k, 'd) data -> 'k Format.printer
+    val ppd : ('k, 'd) data -> 'd Format.printer
+    val key : ('k, 'd) data -> ('k, 'd) t
+  end) :
+    Registry2
+      with type ('k, 'd) key := ('k, 'd) t
+       and type ('k, 'd) data = ('k, 'd) S.data
+end
diff --git a/src_colibri2/stdlib/map_hetero.ml b/src_colibri2/stdlib/map_hetero.ml
index 306ff33ff935ffe8da9f2dc94aa1e1f7102b0a2c..193d3a2af6a55e977b68beea582204679e4e2b29 100644
--- a/src_colibri2/stdlib/map_hetero.ml
+++ b/src_colibri2/stdlib/map_hetero.ml
@@ -23,54 +23,63 @@
 
 open Std
 open Colibri2_popop_lib
-    
 include Map_hetero_sig
-    
+
 module MakeS
-  (K: Keys)
-  (D:sig type ('a,'b) t end)
-  = struct
-    
-  type 'a key       = 'a K.t
-  type ('a,'b) data = ('a,'b) D.t
-  type 'b pair      = Pair : 'a K.t * ('a,'b) D.t -> 'b pair
-
-  module GIM = Intmap.Make(struct include Int let tag x = x end)
-  module IM  = GIM.NT
-  type 'b t  = 'b pair IM.t
-
-  let eq (type a a') (k : a key) (k' : a' key) : (a,a') Poly.eq =
+    (K : Keys) (D : sig
+      type ('a, 'b) t
+    end) =
+struct
+  type 'a key = 'a K.t
+  type ('a, 'b) data = ('a, 'b) D.t
+  type 'b pair = Pair : 'a K.t * ('a, 'b) D.t -> 'b pair
+
+  module GIM = Intmap.Make (struct
+    include Int
+
+    let tag x = x
+  end)
+
+  module IM = GIM.NT
+
+  type 'b t = 'b pair IM.t
+
+  let eq (type a a') (k : a key) (k' : a' key) : (a, a') Poly.eq =
     match K.equal k k' with
-    | Poly.Eq  -> Poly.Eq
+    | Poly.Eq -> Poly.Eq
     | Poly.Neq -> raise IncoherentMap
 
-    
-  let empty      = IM.empty
-  let is_empty   = IM.is_empty
+  let empty = IM.empty
+  let is_empty = IM.is_empty
   let set_submap = IM.set_submap
-  
-  let singleton (type a) (type b) (k: a K.t) (d : (a,b) data) : b t =
-    IM.singleton (K.tag k) (Pair(k,d))
 
-  let add (type a) (type b) (k : a K.t) d (t : b t) =
-    IM.add (K.tag k) (Pair(k,d)) t
+  let singleton (type a b) (k : a K.t) (d : (a, b) data) : b t =
+    IM.singleton (K.tag k) (Pair (k, d))
 
-  let change (type a) (type b) f (k : a K.t) (t : b t) =
+  let add (type a b) (k : a K.t) d (t : b t) = IM.add (K.tag k) (Pair (k, d)) t
+
+  let change (type a b) f (k : a K.t) (t : b t) =
     let f = function
       | None -> f None
-      | Some(Pair(k',v)) -> let Poly.Eq = eq k k' in f(Some (v : (a,b) data))
+      | Some (Pair (k', v)) ->
+          let Poly.Eq = eq k k' in
+          f (Some (v : (a, b) data))
     in
-    IM.change (fun x -> f x |> Option.map (fun v -> Pair(k,v))) (K.tag k) t
+    IM.change (fun x -> f x |> Option.map (fun v -> Pair (k, v))) (K.tag k) t
 
-  let add_change (type a) (type b) empty add (k : a K.t) v (t : b t) =
-    let empty x = Pair(k,empty x) in
-    let add x (Pair(k',v')) = let Poly.Eq = eq k k' in Pair(k, add x (v':(a,b)data)) in
+  let add_change (type a b) empty add (k : a K.t) v (t : b t) =
+    let empty x = Pair (k, empty x) in
+    let add x (Pair (k', v')) =
+      let Poly.Eq = eq k k' in
+      Pair (k, add x (v' : (a, b) data))
+    in
     IM.add_change empty add (K.tag k) v t
 
-  let find_common (type a) (k : a K.t) (Pair(k',v) : 'b pair) : (a,'b) data =
-    let Poly.Eq = eq k k' in v
+  let find_common (type a) (k : a K.t) (Pair (k', v) : 'b pair) : (a, 'b) data =
+    let Poly.Eq = eq k k' in
+    v
 
-  let find (type a) (k : a K.t) (t : 'b t) : (a,'b) data =
+  let find (type a) (k : a K.t) (t : 'b t) : (a, 'b) data =
     IM.find (K.tag k) t |> find_common k
 
   let find_opt (type a) (k : a K.t) t =
@@ -82,63 +91,69 @@ module MakeS
   let find_exn (type a) exn (k : a K.t) t =
     IM.find_exn exn (K.tag k) t |> find_common k
 
-
-  type 'b union =
-    { union: 'a. 'a key -> ('a,'b) data -> ('a,'b) data -> ('a,'b) data option }
+  type 'b union = {
+    union : 'a. 'a key -> ('a, 'b) data -> ('a, 'b) data -> ('a, 'b) data option;
+  }
 
   let union f t1 t2 =
     IM.union
-      (fun _ (Pair(k1,d1)) (Pair(k2,d2)) ->
-         let Poly.Eq = eq k1 k2 in Option.map (fun d -> Pair(k1,d)) (f.union k1 d1 d2))
+      (fun _ (Pair (k1, d1)) (Pair (k2, d2)) ->
+        let Poly.Eq = eq k1 k2 in
+        Option.map (fun d -> Pair (k1, d)) (f.union k1 d1 d2))
       t1 t2
 
-  type ('b,'c) fold2_inter =
-    { fold2_inter: 'a. 'a key -> ('a,'b) data -> ('a,'b) data -> 'c -> 'c }
+  type ('b, 'c) fold2_inter = {
+    fold2_inter : 'a. 'a key -> ('a, 'b) data -> ('a, 'b) data -> 'c -> 'c;
+  }
 
   let fold2_inter f t1 t2 acc =
     IM.fold2_inter
-      (fun _ (Pair(k1,d1)) (Pair(k2,d2)) acc ->
-         let Poly.Eq = eq k1 k2 in f.fold2_inter k1 d1 d2 acc)
+      (fun _ (Pair (k1, d1)) (Pair (k2, d2)) acc ->
+        let Poly.Eq = eq k1 k2 in
+        f.fold2_inter k1 d1 d2 acc)
       t1 t2 acc
 
-  type 'b iter = { iter: 'a. 'a key -> ('a,'b) data -> unit }
+  type 'b iter = { iter : 'a. 'a key -> ('a, 'b) data -> unit }
+
+  let iter f t = IM.iter (fun _ (Pair (k, d)) -> f.iter k d) t
 
-  let iter f t = IM.iter (fun _ (Pair(k,d)) -> f.iter k d) t
+  type ('b, 'c) fold = { fold : 'a. 'c -> 'a key -> ('a, 'b) data -> 'c }
 
-  type ('b,'c) fold = { fold: 'a. 'c -> 'a key -> ('a,'b) data -> 'c }
+  let fold f acc t =
+    IM.fold_left (fun acc _ (Pair (k, d)) -> f.fold acc k d) acc t
 
-  let fold f acc t = IM.fold_left (fun acc _ (Pair(k,d)) -> f.fold acc k d) acc t
+  type 'b mapi = { mapi : 'a. 'a key -> ('a, 'b) data -> ('a, 'b) data }
 
-  type 'b mapi = { mapi: 'a. 'a key -> ('a,'b) data -> ('a,'b) data }
-  let mapi f t = IM.mapi (fun _ (Pair(k,d)) -> Pair(k,f.mapi k d)) t
+  let mapi f t = IM.mapi (fun _ (Pair (k, d)) -> Pair (k, f.mapi k d)) t
 
   type printk = { printk : 'a. 'a key Format.printer }
   type 'b printd = { printd : 'a. 'a key -> ('a, 'b) data Format.printer }
 
   let pp (sep1 : unit Format.printer) (sep2 : unit Format.printer)
-      (printkey : printk) (printdata : 'b printd) : 'b t Format.printer
-    =
-    fun fmt t ->
-      let printkeydata fmt (Pair(k,v)) =
-        Format.fprintf fmt "%a%a%a" printkey.printk k sep2 () (printdata.printd k) v
-      in
-      let as_list = IM.fold (fun _ v sofar -> v::sofar) t [] in
-      Format.list ~sep:sep1 printkeydata fmt as_list
-
+      (printkey : printk) (printdata : 'b printd) : 'b t Format.printer =
+   fun fmt t ->
+    let printkeydata fmt (Pair (k, v)) =
+      Format.fprintf fmt "%a%a%a" printkey.printk k sep2 () (printdata.printd k)
+        v
+    in
+    let as_list = IM.fold (fun _ v sofar -> v :: sofar) t [] in
+    Format.list ~sep:sep1 printkeydata fmt as_list
 end
 
-
-module MakeR (K:Keys) = struct
-  include MakeS(K)(struct type ('a,'b) t = 'b end)
+module MakeR (K : Keys) = struct
+  include
+    MakeS
+      (K)
+      (struct
+        type ('a, 'b) t = 'b
+      end)
 
   let pp (type b) (sep1 : unit Format.printer) (sep2 : unit Format.printer)
-      (printkey : printk) (printdata : b Format.printer) : b t Format.printer
-    =
-    fun fmt t ->
-      let printkeydata fmt (Pair(k,v)) =
-        Format.fprintf fmt "%a%a%a" printkey.printk k sep2 () printdata v
-      in
-      let as_list = IM.fold (fun _ v sofar -> v::sofar) t [] in
-      Format.list ~sep:sep1 printkeydata fmt as_list
-
+      (printkey : printk) (printdata : b Format.printer) : b t Format.printer =
+   fun fmt t ->
+    let printkeydata fmt (Pair (k, v)) =
+      Format.fprintf fmt "%a%a%a" printkey.printk k sep2 () printdata v
+    in
+    let as_list = IM.fold (fun _ v sofar -> v :: sofar) t [] in
+    Format.list ~sep:sep1 printkeydata fmt as_list
 end
diff --git a/src_colibri2/stdlib/map_hetero.mli b/src_colibri2/stdlib/map_hetero.mli
index dc1fceb0f757d38c6684da92c9d180f77fdcce3d..3accb2a0b4fc4bf1088714dc1ab1eaaa342108ea 100644
--- a/src_colibri2/stdlib/map_hetero.mli
+++ b/src_colibri2/stdlib/map_hetero.mli
@@ -23,8 +23,9 @@
 
 include module type of Map_hetero_sig
 
-module MakeS(K:Keys)(D:sig type ('a,'b) t end)
-  : S with type 'a key = 'a K.t
-       and type ('a,'b) data = ('a,'b) D.t
+module MakeS
+    (K : Keys) (D : sig
+      type ('a, 'b) t
+    end) : S with type 'a key = 'a K.t and type ('a, 'b) data = ('a, 'b) D.t
 
-module MakeR(K:Keys) : R with type 'a key = 'a K.t
+module MakeR (K : Keys) : R with type 'a key = 'a K.t
diff --git a/src_colibri2/stdlib/map_hetero_sig.ml b/src_colibri2/stdlib/map_hetero_sig.ml
index ada023913d3155e65b002d8c59bcf999eeedcb26..f643634f3e1739daa341d0b338b6353276fe7010 100644
--- a/src_colibri2/stdlib/map_hetero_sig.ml
+++ b/src_colibri2/stdlib/map_hetero_sig.ml
@@ -27,70 +27,80 @@ exception IncoherentMap
 
 module type Keys = sig
   type 'a t
+
   val tag : 'a t -> int
-  val equal : 'a t -> 'b t -> ('a,'b) Poly.iseq
+  val equal : 'a t -> 'b t -> ('a, 'b) Poly.iseq
 end
 
 module type S = sig
   type 'a key
-  type ('a,'b) data
+  type ('a, 'b) data
   type 'b t
 
-  val empty: 'b t
-  val is_empty: 'b t -> bool
+  val empty : 'b t
+  val is_empty : 'b t -> bool
   val set_submap : 'a t -> 'b t -> bool
+  val singleton : 'a key -> ('a, 'b) data -> 'b t
 
-  val singleton: 'a key -> ('a,'b) data -> 'b t
-
-  val find: 'a key -> 'b t -> ('a,'b) data
+  val find : 'a key -> 'b t -> ('a, 'b) data
   (** [find x m] returns the current binding of [x] in [m],
       or raises [Not_found] if no such binding exists. *)
 
-  val find_def : ('a,'b) data -> 'a key -> 'b t -> ('a,'b) data
-  val find_opt : 'a key -> 'b t -> ('a,'b) data option
-  val find_exn : exn -> 'a key -> 'b t -> ('a,'b) data
+  val find_def : ('a, 'b) data -> 'a key -> 'b t -> ('a, 'b) data
+  val find_opt : 'a key -> 'b t -> ('a, 'b) data option
+  val find_exn : exn -> 'a key -> 'b t -> ('a, 'b) data
 
-  val add: 'a key -> ('a,'b) data -> 'b t -> 'b t
+  val add : 'a key -> ('a, 'b) data -> 'b t -> 'b t
   (** [add x y m] returns a map containing the same bindings as
       [m], plus a binding of [x] to [y]. If [x] was already bound
       in [m], its previous binding disappears. *)
 
   val change :
-    (('a,'b) data option -> ('a,'b) data option) -> 'a key -> 'b t -> 'b t
+    (('a, 'b) data option -> ('a, 'b) data option) -> 'a key -> 'b t -> 'b t
+
   val add_change :
-    ('c -> ('a,'b) data) ->
-    ('c -> ('a,'b) data -> ('a,'b) data) ->
-    'a key -> 'c -> 'b t -> 'b t
+    ('c -> ('a, 'b) data) ->
+    ('c -> ('a, 'b) data -> ('a, 'b) data) ->
+    'a key ->
+    'c ->
+    'b t ->
+    'b t
+
+  type 'b union = {
+    union : 'a. 'a key -> ('a, 'b) data -> ('a, 'b) data -> ('a, 'b) data option;
+  }
 
-  type 'b union =
-    { union: 'a. 'a key -> ('a,'b) data -> ('a,'b) data -> ('a,'b) data option }
   val union : 'b union -> 'b t -> 'b t -> 'b t
 
-  type ('b,'c) fold2_inter =
-    { fold2_inter: 'a. 'a key -> ('a,'b) data -> ('a,'b) data -> 'c -> 'c }
-  val fold2_inter: ('b,'c) fold2_inter -> 'b t -> 'b t -> 'c -> 'c
+  type ('b, 'c) fold2_inter = {
+    fold2_inter : 'a. 'a key -> ('a, 'b) data -> ('a, 'b) data -> 'c -> 'c;
+  }
+
+  val fold2_inter : ('b, 'c) fold2_inter -> 'b t -> 'b t -> 'c -> 'c
+
+  type 'b iter = { iter : 'a. 'a key -> ('a, 'b) data -> unit }
 
-  type 'b iter = { iter: 'a. 'a key -> ('a,'b) data -> unit }
   val iter : 'b iter -> 'b t -> unit
 
-  type ('b,'c) fold = { fold: 'a. 'c -> 'a key -> ('a,'b) data -> 'c }
-  val fold : ('b,'c) fold -> 'c -> 'b t -> 'c
+  type ('b, 'c) fold = { fold : 'a. 'c -> 'a key -> ('a, 'b) data -> 'c }
+
+  val fold : ('b, 'c) fold -> 'c -> 'b t -> 'c
+
+  type 'b mapi = { mapi : 'a. 'a key -> ('a, 'b) data -> ('a, 'b) data }
 
-  type 'b mapi = { mapi: 'a. 'a key -> ('a,'b) data -> ('a,'b) data }
   val mapi : 'b mapi -> 'b t -> 'b t
 
-  type printk = { printk: 'a. 'a key Format.printer }
-  type 'b printd = { printd: 'a. 'a key -> ('a,'b) data Format.printer }
-  val pp:
+  type printk = { printk : 'a. 'a key Format.printer }
+  type 'b printd = { printd : 'a. 'a key -> ('a, 'b) data Format.printer }
+
+  val pp :
     unit Format.printer ->
     unit Format.printer ->
     printk ->
     'b printd ->
     'b t Format.printer
-
 end
 
-
 (** The following are needed in order to avoid ('a,'b) t = 'b in an
     instanciation of the previous functors
     (cf. ocaml mantis #5083:
@@ -104,13 +114,12 @@ module type R = sig
   type 'a key
   type 'b t
 
-  val empty: 'b t
-  val is_empty: 'b t -> bool
+  val empty : 'b t
+  val is_empty : 'b t -> bool
   val set_submap : 'a t -> 'b t -> bool
+  val singleton : 'a key -> 'b -> 'b t
 
-  val singleton: 'a key -> 'b -> 'b t
-
-  val find: 'a key -> 'b t -> 'b
+  val find : 'a key -> 'b t -> 'b
   (** [find x m] returns the current binding of [x] in [m],
       or raises [Not_found] if no such binding exists. *)
 
@@ -118,36 +127,38 @@ module type R = sig
   val find_opt : 'a key -> 'b t -> 'b option
   val find_exn : exn -> 'a key -> 'b t -> 'b
 
-  val add: 'a key -> 'b -> 'b t -> 'b t
+  val add : 'a key -> 'b -> 'b t -> 'b t
   (** [add x y m] returns a map containing the same bindings as
       [m], plus a binding of [x] to [y]. If [x] was already bound
       in [m], its previous binding disappears. *)
 
-  val change :
-    ('b option -> 'b option) -> 'a key -> 'b t -> 'b t
+  val change : ('b option -> 'b option) -> 'a key -> 'b t -> 'b t
+
   val add_change :
-    ('c -> 'b) ->
-    ('c -> 'b -> 'b) ->
-    'a key -> 'c -> 'b t -> 'b t
+    ('c -> 'b) -> ('c -> 'b -> 'b) -> 'a key -> 'c -> 'b t -> 'b t
+
+  type 'b union = { union : 'a. 'a key -> 'b -> 'b -> 'b option }
 
-  type 'b union = { union: 'a. 'a key -> 'b -> 'b -> 'b option }
   val union : 'b union -> 'b t -> 'b t -> 'b t
 
-  type 'b iter = { iter: 'a. 'a key -> 'b -> unit }
+  type 'b iter = { iter : 'a. 'a key -> 'b -> unit }
+
   val iter : 'b iter -> 'b t -> unit
 
-  type ('b,'c) fold = { fold: 'a. 'c -> 'a key -> 'b -> 'c }
-  val fold : ('b,'c) fold -> 'c -> 'b t -> 'c
+  type ('b, 'c) fold = { fold : 'a. 'c -> 'a key -> 'b -> 'c }
+
+  val fold : ('b, 'c) fold -> 'c -> 'b t -> 'c
+
+  type 'b mapi = { mapi : 'a. 'a key -> 'b -> 'b }
 
-  type 'b mapi = { mapi: 'a. 'a key -> 'b -> 'b }
   val mapi : 'b mapi -> 'b t -> 'b t
 
-  type printk = { printk : 'a. 'a key Containers.Format.printer; }
-  val pp:
+  type printk = { printk : 'a. 'a key Containers.Format.printer }
+
+  val pp :
     unit Format.printer ->
     unit Format.printer ->
     printk ->
     'b Format.printer ->
     'b t Format.printer
-
 end
diff --git a/src_colibri2/stdlib/shuffle.ml b/src_colibri2/stdlib/shuffle.ml
index 4001bd632a1af086ccfc7fb882141684e73127ef..ad78d889d55e72da7ea4476b5e32f6b347fa5977 100644
--- a/src_colibri2/stdlib/shuffle.ml
+++ b/src_colibri2/stdlib/shuffle.ml
@@ -24,121 +24,132 @@ let opt_shuffle = ref None
 let make_random =
   let h = Hashtbl.create 10 in
   fun i ->
-    try
-      Random.State.copy (Hashtbl.find h i)
+    try Random.State.copy (Hashtbl.find h i)
     with Not_found ->
       let s = Random.State.make i in
       Hashtbl.add h i s;
       Random.State.copy s
 
-let int m = 
+let int m =
   match !opt_shuffle with
   | Some rnd -> Random.State.int rnd m
-  | None -> max 0 (m-1)
+  | None -> max 0 (m - 1)
 
 let set_shuffle = function
   | None -> opt_shuffle := None
   | Some i -> opt_shuffle := Some (make_random i)
 
-let is_shuffle () = match !opt_shuffle with | None -> false | Some _ -> true
+let is_shuffle () = match !opt_shuffle with None -> false | Some _ -> true
 
-let shuffle2 ((t1,t2) as p) =
+let shuffle2 ((t1, t2) as p) =
   match !opt_shuffle with
   | None -> p
   | Some rnd when Random.State.bool rnd -> p
-  | _ -> (t2,t1)
+  | _ -> (t2, t1)
 
-let seq2 f (t1,t2) =
+let seq2 f (t1, t2) =
   match !opt_shuffle with
   | Some rnd when Random.State.bool rnd ->
-    let t2 = f t2 in
-    let t1 = f t1 in
-    (t1,t2)
+      let t2 = f t2 in
+      let t1 = f t1 in
+      (t1, t2)
   | Some _ | None ->
-    let t1 = f t1 in
-    let t2 = f t2 in
-    (t1,t2)
+      let t1 = f t1 in
+      let t2 = f t2 in
+      (t1, t2)
 
-
-let shuffle3 ((t1,t2,t3) as p) =
+let shuffle3 ((t1, t2, t3) as p) =
   match !opt_shuffle with
   | None -> p
-  | Some rnd ->
-    match Random.State.int rnd 6 with
-    | 0 -> p
-    | 1 -> (t1,t3,t2)
-    | 2 -> (t2,t1,t3)
-    | 3 -> (t2,t3,t2)
-    | 4 -> (t3,t1,t2)
-    | 5 -> (t3,t2,t1)
-    | _ -> assert false
-
-let seq3 f (t1,t2,t3) =
+  | Some rnd -> (
+      match Random.State.int rnd 6 with
+      | 0 -> p
+      | 1 -> (t1, t3, t2)
+      | 2 -> (t2, t1, t3)
+      | 3 -> (t2, t3, t2)
+      | 4 -> (t3, t1, t2)
+      | 5 -> (t3, t2, t1)
+      | _ -> assert false)
+
+let seq3 f (t1, t2, t3) =
   match !opt_shuffle with
-  | None -> let t1 = f t1 in
-            let t2 = f t2 in
-            let t3 = f t3 in
-            (t1,t2,t3)
-  | Some rnd ->
-    match Random.State.int rnd 6 with
-    | 0 -> let t1 = f t1 in
-           let t2 = f t2 in
-           let t3 = f t3 in
-           (t1,t2,t3)
-    | 1 -> let t1 = f t1 in
-           let t3 = f t3 in
-           let t2 = f t2 in
-           (t1,t2,t3)
-    | 2 -> let t2 = f t2 in
-           let t1 = f t1 in
-           let t3 = f t3 in
-           (t1,t2,t3)
-    | 3 -> let t2 = f t2 in
-           let t3 = f t3 in
-           let t1 = f t1 in
-           (t1,t2,t3)
-    | 4 -> let t3 = f t3 in
-           let t1 = f t1 in
-           let t2 = f t2 in
-           (t1,t2,t3)
-    | 5 -> let t3 = f t3 in
-           let t2 = f t2 in
-           let t1 = f t1 in
-           (t1,t2,t3)
-    | _ -> assert false
-
+  | None ->
+      let t1 = f t1 in
+      let t2 = f t2 in
+      let t3 = f t3 in
+      (t1, t2, t3)
+  | Some rnd -> (
+      match Random.State.int rnd 6 with
+      | 0 ->
+          let t1 = f t1 in
+          let t2 = f t2 in
+          let t3 = f t3 in
+          (t1, t2, t3)
+      | 1 ->
+          let t1 = f t1 in
+          let t3 = f t3 in
+          let t2 = f t2 in
+          (t1, t2, t3)
+      | 2 ->
+          let t2 = f t2 in
+          let t1 = f t1 in
+          let t3 = f t3 in
+          (t1, t2, t3)
+      | 3 ->
+          let t2 = f t2 in
+          let t3 = f t3 in
+          let t1 = f t1 in
+          (t1, t2, t3)
+      | 4 ->
+          let t3 = f t3 in
+          let t1 = f t1 in
+          let t2 = f t2 in
+          (t1, t2, t3)
+      | 5 ->
+          let t3 = f t3 in
+          let t2 = f t2 in
+          let t1 = f t1 in
+          (t1, t2, t3)
+      | _ -> assert false)
 
 let shufflel l =
   match !opt_shuffle with
   | None -> l
   | Some rnd ->
-    let rec aux head tail = function
-      | [] -> List.rev_append head tail
-      | a::l when Random.State.bool rnd -> aux (a::head) tail l
-      | a::l                            -> aux head (a::tail) l in
-    aux [] [] l
+      let rec aux head tail = function
+        | [] -> List.rev_append head tail
+        | a :: l when Random.State.bool rnd -> aux (a :: head) tail l
+        | a :: l -> aux head (a :: tail) l
+      in
+      aux [] [] l
 
 let seql' f l =
   match !opt_shuffle with
   | None -> List.iter f l
   | Some rnd ->
-    let rec aux head tail = function
-      | [] -> List.iter f head; List.iter f tail
-      | a::l when Random.State.bool rnd -> aux (a::head) tail l
-      | a::l                            -> aux head (a::tail) l in
-    aux [] [] l
+      let rec aux head tail = function
+        | [] ->
+            List.iter f head;
+            List.iter f tail
+        | a :: l when Random.State.bool rnd -> aux (a :: head) tail l
+        | a :: l -> aux head (a :: tail) l
+      in
+      aux [] [] l
+
+let app f = f ()
 
-let app = (fun f -> f ())
 let seql l =
   match !opt_shuffle with
   | None -> List.iter app l
   | Some rnd ->
-    let rec aux head tail = function
-      | [] -> List.iter app head; List.iter app tail
-      | a::l when Random.State.bool rnd -> aux (a::head) tail l
-      | a::l                            -> aux head (a::tail) l in
-    aux [] [] l
-
+      let rec aux head tail = function
+        | [] ->
+            List.iter app head;
+            List.iter app tail
+        | a :: l when Random.State.bool rnd -> aux (a :: head) tail l
+        | a :: l -> aux head (a :: tail) l
+      in
+      aux [] [] l
 
 let chooseb f g t =
   match !opt_shuffle with
@@ -151,6 +162,4 @@ let choosef f g t =
   | Some rnd -> g (Random.State.float rnd) t
 
 let choosei f g t =
-  match !opt_shuffle with
-  | None -> f t
-  | Some rnd -> g (Random.State.int rnd) t
+  match !opt_shuffle with None -> f t | Some rnd -> g (Random.State.int rnd) t
diff --git a/src_colibri2/stdlib/shuffle.mli b/src_colibri2/stdlib/shuffle.mli
index 15f48f2b142fe3ff0251daf4d85c8f799d38099b..7a91bfde42858d8d21a0d346fbb790e26465dce0 100644
--- a/src_colibri2/stdlib/shuffle.mli
+++ b/src_colibri2/stdlib/shuffle.mli
@@ -22,39 +22,38 @@
 
 (** {1 Initialization } *)
 
-val set_shuffle: int array option -> unit
+val set_shuffle : int array option -> unit
 (** if None is given shuffling is disable (default). The functions are
     the identity *)
 
-val is_shuffle: unit -> bool
+val is_shuffle : unit -> bool
 
 (** {1 Shuffling on common types } *)
 
-val shuffle2: ('a * 'a) -> ('a * 'a)
+val shuffle2 : 'a * 'a -> 'a * 'a
 (** [shuffle p] invert or keep identical the elements of the pair.
     Uniform *)
 
-val shuffle3: ('a * 'a * 'a) -> ('a * 'a * 'a)
+val shuffle3 : 'a * 'a * 'a -> 'a * 'a * 'a
 (** uniform *)
 
-val shufflel: 'a list -> 'a list
+val shufflel : 'a list -> 'a list
 (** not uniform *)
 
-val seq2: ('a -> 'b) -> ('a * 'a) -> ('b * 'b)
+val seq2 : ('a -> 'b) -> 'a * 'a -> 'b * 'b
 (** uniform *)
 
-val seq3: ('a -> 'b) -> ('a * 'a * 'a) -> ('b * 'b * 'b)
+val seq3 : ('a -> 'b) -> 'a * 'a * 'a -> 'b * 'b * 'b
 (** uniform *)
 
-val seql': ('a -> unit) -> 'a list -> unit
+val seql' : ('a -> unit) -> 'a list -> unit
 val seql : (unit -> unit) list -> unit
 
-val chooseb: ('a -> 'b) -> ((unit -> bool) ->'a -> 'b) -> 'a -> 'b
+val chooseb : ('a -> 'b) -> ((unit -> bool) -> 'a -> 'b) -> 'a -> 'b
 (** [chooseb f g] call f if there is no shuffling or g otherwise.
     The first argument given to g is a random boolean generator.
 *)
 
-val choosef: ('a -> 'b) -> ((float -> float) ->'a -> 'b) -> 'a -> 'b
-val choosei: ('a -> 'b) -> ((int -> int) ->'a -> 'b) -> 'a -> 'b
-
-val int: int -> int
+val choosef : ('a -> 'b) -> ((float -> float) -> 'a -> 'b) -> 'a -> 'b
+val choosei : ('a -> 'b) -> ((int -> int) -> 'a -> 'b) -> 'a -> 'b
+val int : int -> int
diff --git a/src_colibri2/stdlib/std_sig.ml b/src_colibri2/stdlib/std_sig.ml
index 5c73e0f567e9cf9d7ce20c6537d9d59a99f7c343..c766b99c0b8548d25ea8a74064c4d39e99ff494a 100644
--- a/src_colibri2/stdlib/std_sig.ml
+++ b/src_colibri2/stdlib/std_sig.ml
@@ -21,20 +21,20 @@
 exception Impossible (* Absurd *)
 exception TODO of string
 
-module type TaggedType =
-sig
+module type TaggedType = sig
   type t
+
   val tag : t -> int
-  val pp:  t Format.printer
+  val pp : t Format.printer
 end
 
-module type OrderedHashedType =
-sig
+module type OrderedHashedType = sig
   type t
+
   val hash : t -> int
   val equal : t -> t -> bool
   val compare : t -> t -> int
-  val pp: t Format.printer
+  val pp : t Format.printer
 end
 
 (* module type Datatype = sig
@@ -45,4 +45,3 @@ end
  *                            and type M.key = M.key
  *   module H : Exthtbl.Hashtbl.S with type key = t
  * end *)
-
diff --git a/src_colibri2/stdlib/wto.ml b/src_colibri2/stdlib/wto.ml
index 5f31263e4f73b5b3d51e0f454a86338b2f2c6a9a..bca6698c40f082c8ac9c94da7212cd9dfa55e5dd 100644
--- a/src_colibri2/stdlib/wto.ml
+++ b/src_colibri2/stdlib/wto.ml
@@ -24,39 +24,35 @@
     by a list of components topologically ordered. *)
 type 'n component =
   | Component of 'n * 'n partition
-    (** A strongly connected component, described by its head node and the
+      (** A strongly connected component, described by its head node and the
         remaining sub-components topologically ordered *)
-  | Node of 'n
-    (** A single node without self loop *)
+  | Node of 'n  (** A single node without self loop *)
 
-(** A list of strongly connected components, sorted topologically *)
 and 'n partition = 'n component list
-
+(** A list of strongly connected components, sorted topologically *)
 
 let rec pp_partition pp_node fmt part =
   List.iter (fun x -> Format.fprintf fmt "@ %a" (pp_component pp_node) x) part
+
 and pp_component pp_node fmt : 'a component -> unit = function
   | Node n -> pp_node fmt n
-  | Component(head,part) ->
-    Format.fprintf fmt "@[<hov 1>(%a%a)@]"
-      pp_node head (pp_partition pp_node) part
+  | Component (head, part) ->
+      Format.fprintf fmt "@[<hov 1>(%a%a)@]" pp_node head (pp_partition pp_node)
+        part
 
 let fold_heads f acc l =
-  let rec partition acc l =
-    List.fold_left component acc l
+  let rec partition acc l = List.fold_left component acc l
   and component acc = function
     | Node _ -> acc
-    | Component (h,l) ->
-      partition (f acc h) l
+    | Component (h, l) -> partition (f acc h) l
   in
   partition acc l
 
-
 let flatten wto =
   let rec f acc = function
     | [] -> acc
     | Node v :: l -> f (v :: acc) l
-    | Component (v,w) :: l -> f (f (v :: acc) w) l
+    | Component (v, w) :: l -> f (f (v :: acc) w) l
   in
   List.rev (f [] wto)
 
@@ -81,64 +77,68 @@ let flatten wto =
    - Each time we visit a node n, we push it on a stack. After the
      visit, n is popped, unless a path exists from n to an element
      earlier on the stack. So the stack contains elements currently
-     visited or that belongs to a non-trivial scc. Moreover, they 
+     visited or that belongs to a non-trivial scc. Moreover, they
      are in topological order.
 
    About the proof of Tarjan:
    http://ls2-www.cs.uni-dortmund.de/~wegener/papers/connected.pdf
 *)
 
-module Make(N:sig
-    type t (* = int *)
-    val equal: t -> t -> bool
-    val hash: t -> int
-    (* val succ: t -> t list *)
-  end) = struct
+module Make (N : sig
+  type t (* = int *)
 
-  let rec equal_component (x:N.t component) (y:N.t component) =
-    match x,y with
+  val equal : t -> t -> bool
+  val hash : t -> int
+  (* val succ: t -> t list *)
+end) =
+struct
+  let rec equal_component (x : N.t component) (y : N.t component) =
+    match (x, y) with
     | Node x, Node y -> N.equal x y
-    | Component (x,cx), Component (y,cy) -> N.equal x y && equal_partition cx cy
+    | Component (x, cx), Component (y, cy) ->
+        N.equal x y && equal_partition cx cy
     | _ -> false
 
   and equal_partition x y =
-    (try List.for_all2 equal_component x y with Invalid_argument _ -> false)
+    try List.for_all2 equal_component x y with Invalid_argument _ -> false
 
-  module DFN = Hashtbl.Make(N);;
+  module DFN = Hashtbl.Make (N)
 
   type level = int
 
   (** Status of a visited vertex during the algorithm. *)
   type status =
-    | Invisible (** The vertex have already been added into the partition and
+    | Invisible
+        (** The vertex have already been added into the partition and
                     is hidden until the end of the search. *)
-    | Parent of level (** The vertex have been visited and given a [level]. For
+    | Parent of level
+        (** The vertex have been visited and given a [level]. For
                           the algorithm, this implies that there is a path
                           between this vertex and the current vertex. *)
 
   (** Result of one [visit]  *)
   type loop =
-    | NoLoop (** The vertex is not in a loop *)
-    | Loop of N.t * level (** The vertex is inside at least one loop, and
+    | NoLoop  (** The vertex is not in a loop *)
+    | Loop of N.t * level
+        (** The vertex is inside at least one loop, and
                               level is the smallest level of all these loops *)
 
   let min_loop x y =
-    match x, y with
+    match (x, y) with
     | NoLoop, z | z, NoLoop -> z
-    | Loop(_,xi), Loop(_,yi) ->
-      if xi <= yi then x else y
+    | Loop (_, xi), Loop (_, yi) -> if xi <= yi then x else y
 
-  let is_no_loop = function
-    | NoLoop -> true | Loop _ -> false
+  let is_no_loop = function NoLoop -> true | Loop _ -> false
 
-  type state =
-    { dfn: status DFN.t; (* Mapping from nodes to its dfn, depth-first
-                            numbering.  Note that we replaced the DFN=0
-                            test by presence in the Hashtable. *)
-      mutable num: level;          (* Number of visited nodes. *)
-      succs: N.t -> (N.t Base.Sequence.t);    (* Successors transition. *)
-      stack: N.t Stack.t
-    }
+  type state = {
+    dfn : status DFN.t;
+        (* Mapping from nodes to its dfn, depth-first
+           numbering.  Note that we replaced the DFN=0
+           test by presence in the Hashtable. *)
+    mutable num : level; (* Number of visited nodes. *)
+    succs : N.t -> N.t Base.Sequence.t; (* Successors transition. *)
+    stack : N.t Stack.t;
+  }
 
   (** Visit [vertex], and all the vertices reachable from [vertex]
       which have not been explored yet (this is a depth-first search).
@@ -153,85 +153,88 @@ module Make(N:sig
   let rec visit ~pref state vertex partition =
     match DFN.find state.dfn vertex with
     (* The vertex is already in the partition *)
-    | Invisible -> NoLoop, partition (* skip it *)
+    | Invisible -> (NoLoop, partition (* skip it *))
     (* The vertex have been visited but is not yet in the partition *)
-    | Parent i -> Loop (vertex,i), partition (* we are in a loop *)
+    | Parent i -> (Loop (vertex, i), partition (* we are in a loop *))
     (* The vertex have not been visited yet *)
-    | exception Not_found ->
-      (* Put the current vertex into the stack *)
-      Stack.push vertex state.stack;
-      (* Number it and mark it as visited *)
-      let n = state.num + 1 in
-      state.num <- n;
-      DFN.replace state.dfn vertex (Parent n);
-      (* Visit all its successors *)
-      let succs = state.succs vertex in
-      let (loop,partition) = Base.Sequence.fold ~f:(fun (loop,partition) succ ->
-          let (loop',partition) = visit ~pref state succ partition in
-          let loop = min_loop loop loop' in
-          (loop,partition)
-        ) ~init:(NoLoop,partition) succs
-      in
-      match loop with
-      (* We are not in a loop. Add the vertex to the partition *)
-      | NoLoop ->
-        let _ = Stack.pop state.stack in
-        DFN.replace state.dfn vertex Invisible;
-        (NoLoop,Node(vertex)::partition)
-      (* We are in a loop and the current vertex is the head of this loop *)
-      | Loop(head,_) when N.equal head vertex ->
-        (* Unmark all vertices in the loop, and, if pref is given, try to
-           return a better head *)
-        let rec reset_SCC best_head =
-          (** pop until vertex *)
-          let element = Stack.pop state.stack in
-          DFN.remove state.dfn element;
-          if not (N.equal element vertex) then begin
-            let best_head = match pref with
-              (** the strict is important because we are conservative *)
-              | Some cmp when cmp best_head element < 0 -> element
-              | _ -> best_head
-            in
-            reset_SCC best_head
-          end
-          else
-            best_head
-        in
-        let best_head = reset_SCC vertex in
-        let vertex, succs =
-          if N.equal best_head vertex
-          then vertex,succs
-          else best_head, state.succs best_head
+    | exception Not_found -> (
+        (* Put the current vertex into the stack *)
+        Stack.push vertex state.stack;
+        (* Number it and mark it as visited *)
+        let n = state.num + 1 in
+        state.num <- n;
+        DFN.replace state.dfn vertex (Parent n);
+        (* Visit all its successors *)
+        let succs = state.succs vertex in
+        let loop, partition =
+          Base.Sequence.fold
+            ~f:(fun (loop, partition) succ ->
+              let loop', partition = visit ~pref state succ partition in
+              let loop = min_loop loop loop' in
+              (loop, partition))
+            ~init:(NoLoop, partition) succs
         in
-        (* Makes [vertex] invisible in the subsequents visits. *)
-        DFN.replace state.dfn vertex Invisible;
-        (* Restart the component analysis *)
-        let component = Base.Sequence.fold
-            ~f:(fun component succ ->
-               let (loop,component) = visit ~pref state succ component in
-               (* Since we reset the component we should have no loop *)
-               assert (is_no_loop loop);
-               component
-            ) ~init:[] succs
-        in
-        (NoLoop,Component(vertex,component)::partition)
-      | _ ->
-        (* [vertex] is part of a strongly connected component but is not the
-           head. Do not update partition; the vertex will
-           be added during the second visit of the SCC. *)
-        (loop,partition)
+        match loop with
+        (* We are not in a loop. Add the vertex to the partition *)
+        | NoLoop ->
+            let _ = Stack.pop state.stack in
+            DFN.replace state.dfn vertex Invisible;
+            (NoLoop, Node vertex :: partition)
+        (* We are in a loop and the current vertex is the head of this loop *)
+        | Loop (head, _) when N.equal head vertex ->
+            (* Unmark all vertices in the loop, and, if pref is given, try to
+               return a better head *)
+            let rec reset_SCC best_head =
+              (* pop until vertex *)
+              let element = Stack.pop state.stack in
+              DFN.remove state.dfn element;
+              if not (N.equal element vertex) then
+                let best_head =
+                  match pref with
+                  (* the strict is important because we are conservative *)
+                  | Some cmp when cmp best_head element < 0 -> element
+                  | _ -> best_head
+                in
+                reset_SCC best_head
+              else best_head
+            in
+            let best_head = reset_SCC vertex in
+            let vertex, succs =
+              if N.equal best_head vertex then (vertex, succs)
+              else (best_head, state.succs best_head)
+            in
+            (* Makes [vertex] invisible in the subsequents visits. *)
+            DFN.replace state.dfn vertex Invisible;
+            (* Restart the component analysis *)
+            let component =
+              Base.Sequence.fold
+                ~f:(fun component succ ->
+                  let loop, component = visit ~pref state succ component in
+                  (* Since we reset the component we should have no loop *)
+                  assert (is_no_loop loop);
+                  component)
+                ~init:[] succs
+            in
+            (NoLoop, Component (vertex, component) :: partition)
+        | _ ->
+            (* [vertex] is part of a strongly connected component but is not the
+               head. Do not update partition; the vertex will
+               be added during the second visit of the SCC. *)
+            (loop, partition))
 
   type pref = N.t -> N.t -> int
 
   let partition ?pref ~inits succs =
-    let state = {dfn = DFN.create 17; num = 0; succs;
-                 stack = Stack.create () } in
-    let partition = List.fold_left (fun partition succ ->
-        let (loop',partition) = visit ~pref state succ partition in
-        assert (is_no_loop loop');
-        partition
-      ) [] inits
+    let state =
+      { dfn = DFN.create 17; num = 0; succs; stack = Stack.create () }
+    in
+    let partition =
+      List.fold_left
+        (fun partition succ ->
+          let loop', partition = visit ~pref state succ partition in
+          assert (is_no_loop loop');
+          partition)
+        [] inits
     in
     partition
-
 end
diff --git a/src_colibri2/stdlib/wto.mli b/src_colibri2/stdlib/wto.mli
index d7a33d2faed3067732afcb9cdb17c4ada1cb27b2..27201609d691c5889cc2926f4a7b2c3952a7b4d1 100644
--- a/src_colibri2/stdlib/wto.mli
+++ b/src_colibri2/stdlib/wto.mli
@@ -30,37 +30,36 @@
     by a list of components topologically ordered. *)
 type 'n component =
   | Component of 'n * 'n partition
-    (** A strongly connected component, described by its head node and the
+      (** A strongly connected component, described by its head node and the
         remaining sub-components topologically ordered *)
-  | Node of 'n
-    (** A single node without self loop *)
+  | Node of 'n  (** A single node without self loop *)
 
-(** A list of strongly connected components, sorted topologically *)
 and 'n partition = 'n component list
+(** A list of strongly connected components, sorted topologically *)
 
-val pp_partition: 'n Fmt.t -> 'n partition Fmt.t
-val pp_component: 'n Fmt.t -> 'n component Fmt.t
-
-val flatten: 'n partition -> 'n list
-
-val fold_heads: ('a -> 'n -> 'a) -> 'a -> 'n partition -> 'a
+val pp_partition : 'n Fmt.t -> 'n partition Fmt.t
+val pp_component : 'n Fmt.t -> 'n component Fmt.t
+val flatten : 'n partition -> 'n list
+val fold_heads : ('a -> 'n -> 'a) -> 'a -> 'n partition -> 'a
 
 (** This functor provides the partitioning algorithm constructing a WTO. *)
-module Make(Node:sig
-    type t
-    val equal: t -> t -> bool
-    val hash: t -> int
-  end):sig
+module Make (Node : sig
+  type t
 
+  val equal : t -> t -> bool
+  val hash : t -> int
+end) : sig
   type pref = Node.t -> Node.t -> int
   (** partial order of preference for the choice of the head of a loop *)
 
-  (** Implements Bourdoncle "Efficient chaotic iteration strategies with
-  widenings" algorithm to compute a WTO. *)
-  val partition: ?pref:pref -> inits:Node.t list ->
+  val partition :
+    ?pref:pref ->
+    inits:Node.t list ->
     (Node.t -> Node.t Base.Sequence.t) ->
     Node.t partition
+  (** Implements Bourdoncle "Efficient chaotic iteration strategies with
+  widenings" algorithm to compute a WTO. *)
 
-  val equal_component: Node.t component -> Node.t component -> bool
-  val equal_partition: Node.t partition -> Node.t partition -> bool
+  val equal_component : Node.t component -> Node.t component -> bool
+  val equal_partition : Node.t partition -> Node.t partition -> bool
 end
diff --git a/src_colibri2/tests/dune b/src_colibri2/tests/dune
index 56430b538c8eb66b998c4065ed7c7caffbe339b7..891a0cdf17491aaccbb63b60eaa0d1ad3cd29e12 100644
--- a/src_colibri2/tests/dune
+++ b/src_colibri2/tests/dune
@@ -20,4 +20,5 @@
  (deps
   (:< tests.exe))
  (action
-  (run %{<})))
+  (run %{<}))
+ (package colibri2))
diff --git a/src_colibri2/tests/generate_tests/generate_dune_tests.ml b/src_colibri2/tests/generate_tests/generate_dune_tests.ml
index d0cc39121abe6a9f19a7f834c8ef13f771a4a1d7..1fd95dcf6f3ca8aba6fda450a1f09fabc7a36c17 100644
--- a/src_colibri2/tests/generate_tests/generate_dune_tests.ml
+++ b/src_colibri2/tests/generate_tests/generate_dune_tests.ml
@@ -30,24 +30,27 @@ let print_test cout file =
          %%{dep:%s}))))\n"
         file cmd file;
       Printf.fprintf cout
-        "(rule (alias runtest) (action (diff %s.oracle %s.res)))\n" file file
+        "(rule (alias runtest) (action (diff %s.oracle %s.res)) (package \
+         colibri2))\n"
+        file file
   | Some result ->
       Printf.fprintf cout
         "(rule (alias runtest) (action (run %s --check-status %s \n\
-         --dont-print-result %%{dep:%s})))\n"
+         --dont-print-result %%{dep:%s})) (package colibri2))\n"
         cmd result file;
       Printf.fprintf cout
         "(rule (alias runtest-learning) (action (run %s --check-status %s \
-         --learning --dont-print-result %%{dep:%s})))\n"
+         --learning --dont-print-result %%{dep:%s})) (package colibri2))\n"
         cmd result file
   | None ->
       Printf.fprintf cout
         "(rule (alias runtest) (action (run %s --check-status colibri2 \
-         --dont-print-result %%{dep:%s})))\n"
+         --dont-print-result %%{dep:%s})) (package colibri2))\n"
         cmd file;
       Printf.fprintf cout
         "(rule (alias runtest-learning) (action (run %s --check-status \
-         colibri2 --dont-print-result --learning %%{dep:%s})))\n"
+         colibri2 --dont-print-result --learning %%{dep:%s})) (package \
+         colibri2))\n"
         cmd file
 
 let () =
diff --git a/src_colibri2/tests/solve/all/sat/dune.inc b/src_colibri2/tests/solve/all/sat/dune.inc
index ca8e3b2c253634136e2aacc7cf6c98e55db5818c..b36ad2c81748d1665718cdc7dd13459fa99be10d 100644
--- a/src_colibri2/tests/solve/all/sat/dune.inc
+++ b/src_colibri2/tests/solve/all/sat/dune.inc
@@ -1,9 +1,9 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:div_abs.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:div_abs.smt2})))
+--dont-print-result %{dep:div_abs.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:div_abs.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:div_abs2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:div_abs2.smt2})))
+--dont-print-result %{dep:div_abs2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:div_abs2.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:union-Union-is_singletonqtvc_2.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:union-Union-is_singletonqtvc_2.psmt2})))
+--dont-print-result %{dep:union-Union-is_singletonqtvc_2.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:union-Union-is_singletonqtvc_2.psmt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/all/steplimitreached/dune b/src_colibri2/tests/solve/all/steplimitreached/dune
index 39efa26de274dd57baab7e1bac879e0503838bd5..5004645284743d1c09c572be112b6e761deed91b 100644
--- a/src_colibri2/tests/solve/all/steplimitreached/dune
+++ b/src_colibri2/tests/solve/all/steplimitreached/dune
@@ -9,5 +9,8 @@
  (action
   (with-stdout-to
    dune.inc
-   (run %{exe:../../../generate_tests/generate_dune_tests.exe} . steplimitreached)))
+   (run
+    %{exe:../../../generate_tests/generate_dune_tests.exe}
+    .
+    steplimitreached)))
  (mode promote))
diff --git a/src_colibri2/tests/solve/all/unsat/dune.inc b/src_colibri2/tests/solve/all/unsat/dune.inc
index 219e5e470e12369ee327351457b08c6d22fda91f..6c5b832443db80c72eda273714c2b89398a73d65 100644
--- a/src_colibri2/tests/solve/all/unsat/dune.inc
+++ b/src_colibri2/tests/solve/all/unsat/dune.inc
@@ -1,48 +1,48 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:bag-BagImpl-createqtvc.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:bag-BagImpl-createqtvc.psmt2})))
+--dont-print-result %{dep:bag-BagImpl-createqtvc.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:bag-BagImpl-createqtvc.psmt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:div_abs.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:div_abs.smt2})))
+--dont-print-result %{dep:div_abs.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:div_abs.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:fact-FactRecursive-fact_recqtvc.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:fact-FactRecursive-fact_recqtvc.psmt2})))
+--dont-print-result %{dep:fact-FactRecursive-fact_recqtvc.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:fact-FactRecursive-fact_recqtvc.psmt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:interval-Convexe-exists_memqtvc_1.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:interval-Convexe-exists_memqtvc_1.psmt2})))
+--dont-print-result %{dep:interval-Convexe-exists_memqtvc_1.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:interval-Convexe-exists_memqtvc_1.psmt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:interval-Convexe-exists_memqtvc_2.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:interval-Convexe-exists_memqtvc_2.psmt2})))
+--dont-print-result %{dep:interval-Convexe-exists_memqtvc_2.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:interval-Convexe-exists_memqtvc_2.psmt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:lost_in_search_union.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:lost_in_search_union.psmt2})))
+--dont-print-result %{dep:lost_in_search_union.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:lost_in_search_union.psmt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:mul_abs.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mul_abs.smt2})))
+--dont-print-result %{dep:mul_abs.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mul_abs.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:ordered_is_ordered.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:ordered_is_ordered.psmt2})))
+--dont-print-result %{dep:ordered_is_ordered.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:ordered_is_ordered.psmt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:union-Union-interqtvc_10.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:union-Union-interqtvc_10.psmt2})))
+--dont-print-result %{dep:union-Union-interqtvc_10.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:union-Union-interqtvc_10.psmt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:union-Union-interqtvc_5.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:union-Union-interqtvc_5.psmt2})))
+--dont-print-result %{dep:union-Union-interqtvc_5.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:union-Union-interqtvc_5.psmt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:union-Union-is_singletonqtvc_1.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:union-Union-is_singletonqtvc_1.psmt2})))
+--dont-print-result %{dep:union-Union-is_singletonqtvc_1.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:union-Union-is_singletonqtvc_1.psmt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:union-Union-is_singletonqtvc_2.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:union-Union-is_singletonqtvc_2.psmt2})))
+--dont-print-result %{dep:union-Union-is_singletonqtvc_2.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:union-Union-is_singletonqtvc_2.psmt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:union-Union-is_singletonqtvc_5.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:union-Union-is_singletonqtvc_5.psmt2})))
+--dont-print-result %{dep:union-Union-is_singletonqtvc_5.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:union-Union-is_singletonqtvc_5.psmt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:union-Union-length0_positiveqtvc_1.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:union-Union-length0_positiveqtvc_1.psmt2})))
+--dont-print-result %{dep:union-Union-length0_positiveqtvc_1.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:union-Union-length0_positiveqtvc_1.psmt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:work_with_fourier_not_simplex.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:work_with_fourier_not_simplex.psmt2})))
+--dont-print-result %{dep:work_with_fourier_not_simplex.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:work_with_fourier_not_simplex.psmt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:work_with_fourier_not_simplex2.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:work_with_fourier_not_simplex2.psmt2})))
+--dont-print-result %{dep:work_with_fourier_not_simplex2.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:work_with_fourier_not_simplex2.psmt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/colibri/sat/dune.inc b/src_colibri2/tests/solve/colibri/sat/dune.inc
index 30d158de78e63da800c4cb38ce08db0f662fc6f8..b967911d8c6f01bdf7becfb0f1869347884d7f3a 100644
--- a/src_colibri2/tests/solve/colibri/sat/dune.inc
+++ b/src_colibri2/tests/solve/colibri/sat/dune.inc
@@ -1,544 +1,544 @@
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:Float_div_bad-main.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:Float_div_bad-main.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:O220-024.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:O220-024.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:average_3.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:average_3.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:bug22.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:bug22.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:bug36.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:bug36.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:bug_26.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:bug_26.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:bug_26_bv.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:bug_26_bv.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:bug_43.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:bug_43.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:bug_factorization_urem_udiv.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:bug_factorization_urem_udiv.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:cancel_2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:cancel_2.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:cases_2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:cases_2.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:div_zero.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:div_zero.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:expLaw.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:expLaw.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:exp_3_precision.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:exp_3_precision.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:guarded_div_1.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:guarded_div_1.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:guarded_div_2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:guarded_div_2.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:incorrect_reordering.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:incorrect_reordering.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:issue40_sat.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:issue40_sat.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:issue46.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:issue46.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:issue_40.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:issue_40.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:issue_42.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:issue_42.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:issue_42_bis.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:issue_42_bis.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:issue_45.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:issue_45.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:issue_46.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:issue_46.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:mod_repr.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:mod_repr.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:mul_03_3_1.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:mul_03_3_1.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:mult.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:mult.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:nan_double-main.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:nan_double-main.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:nan_float-main.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:nan_float-main.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:newton_3_6_false-unreach-call-main.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:newton_3_6_false-unreach-call-main.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:propExpLn1.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:propExpLn1.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:propLnExp3.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:propLnExp3.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:protected_divide.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:protected_divide.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.00.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.00.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0040.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0040.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0071.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0071.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.01.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.01.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.02.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.02.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0208.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0208.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0214.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0214.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0234.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0234.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0245.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0245.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0246.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0246.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.04.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.04.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0408.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0408.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0449.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0449.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0451.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0451.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0480.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0480.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0490.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0490.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0499.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0499.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0507.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0507.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0525.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0525.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0534.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0534.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0591.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0591.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0611.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0611.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0625.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0625.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0629.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0629.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0630.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0630.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0640.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0640.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0641.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0641.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0643.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0643.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0670.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0670.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0675.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0675.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0682.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0682.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0689.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0689.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0692.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0692.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0698.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0698.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.07.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.07.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0743.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0743.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0778.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0778.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.08.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.08.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0808.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0808.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0811.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0811.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0815.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0815.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0842.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0842.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0875.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0875.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0881.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0881.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.09.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.09.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0907.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0907.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0928.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0928.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0936.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0936.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0949.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0949.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0955.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0955.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0961.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0961.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0985.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0985.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0994.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0994.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1.bis.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1.bis.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.10.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.10.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1024.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1024.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1034.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1034.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1035.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1035.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1057.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1057.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1091.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1091.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1094.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1094.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1110.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1110.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1116.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1116.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1123.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1123.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1124.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1124.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1133.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1133.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1137.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1137.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1139.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1139.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1161.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1161.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1165.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1165.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1166.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1166.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1178.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1178.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1179.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1179.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1194.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1194.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1210.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1210.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1214.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1214.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1227.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1227.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1237.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1237.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1244.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1244.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1261.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1261.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1275.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1275.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1300.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1300.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1313.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1313.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1321.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1321.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1323.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1323.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1331.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1331.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1335.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1335.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1393.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1393.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1399.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1399.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1411.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1411.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1418.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1418.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1422.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1422.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1426.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1426.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1443.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1443.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1449.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1449.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1463.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1463.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1472.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1472.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1482.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1482.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1487.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1487.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1496.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1496.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.15.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.15.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1504.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1504.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1508.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1508.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1511.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1511.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1520.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1520.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1523.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1523.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1537.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1537.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1553.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1553.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1560.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1560.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1570.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1570.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1571.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1571.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1588.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1588.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1599.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1599.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1619.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1619.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1633.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1633.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1640.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1640.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1656.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1656.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1667.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1667.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1668.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1668.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1669.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1669.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1671.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1671.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1693.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1693.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1729.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1729.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1741.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1741.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1749.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1749.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1758.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1758.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1771.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1771.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1773.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1773.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1781.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1781.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1784.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1784.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1792.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1792.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1815.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1815.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1819.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1819.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1820.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1820.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1831.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1831.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1834.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1834.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1838.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1838.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1858.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1858.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1859.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1859.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1873.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1873.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1876.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1876.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1878.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1878.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1883.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1883.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1906.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1906.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1909.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1909.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1910.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1910.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1916.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1916.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1919.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1919.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1926.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1926.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1933.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1933.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1937.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1937.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1963.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1963.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1972.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1972.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1975.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1975.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1993.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1993.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1995.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1995.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.20.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.20.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2005.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2005.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2036.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2036.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2037.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2037.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2097.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2097.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2099.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2099.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2110.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2110.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2116.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2116.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2117.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2117.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2119.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2119.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2133.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2133.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2150.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2150.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2155.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2155.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2157.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2157.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2198.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2198.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.25.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.25.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.30.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.30.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.35.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.35.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:range_mult_fix_44.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:range_mult_fix_44.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:real_repr.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:real_repr.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:repr2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:repr2.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:repr_pow.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:repr_pow.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:riposte_floats_are_not_rational.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:riposte_floats_are_not_rational.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:scale_1.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:scale_1.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-10284.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-10284.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-10286.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-10286.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-11504.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-11504.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-11967.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-11967.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-1201.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-1201.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-12401.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-12401.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-12581.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-12581.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-13316.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-13316.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-13690.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-13690.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-13762.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-13762.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-13880.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-13880.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-14248.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-14248.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-14254.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-14254.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-145.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-145.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-14564.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-14564.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-14628.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-14628.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-15135.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-15135.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-15730.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-15730.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-16064.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-16064.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-16305.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-16305.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-16646.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-16646.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-16876.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-16876.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-17024.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-17024.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-17361.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-17361.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-17538.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-17538.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-1766.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-1766.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-18917.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-18917.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-18939.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-18939.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-19265.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-19265.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-19297.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-19297.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-19725.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-19725.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-2173.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-2173.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-3270.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-3270.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-3535.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-3535.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-4100.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-4100.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-4331.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-4331.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-5119.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-5119.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-5274.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-5274.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-5905.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-5905.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-6014.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-6014.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-6055.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-6055.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-6410.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-6410.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-6585.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-6585.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-673.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-673.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-674.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-674.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-7134.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-7134.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-7164.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-7164.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-7272.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-7272.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-8776.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-8776.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-8940.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-8940.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-9497.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-9497.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-9896.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-9896.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:test-Top-Floor_ceil_invalid.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:test-Top-Floor_ceil_invalid.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:test-Top-G2_invalid.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:test-Top-G2_invalid.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:test-Top-Int_Pow2_invalid.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:test-Top-Int_Pow2_invalid.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:test-Top-Int_Pow_invalid.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:test-Top-Int_Pow_invalid.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:underflow_1.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:underflow_1.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:zeros_count_1.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:zeros_count_1.smt2})))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:Float_div_bad-main.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:Float_div_bad-main.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:O220-024.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:O220-024.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:average_3.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:average_3.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:bug22.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:bug22.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:bug36.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:bug36.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:bug_26.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:bug_26.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:bug_26_bv.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:bug_26_bv.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:bug_43.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:bug_43.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:bug_factorization_urem_udiv.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:bug_factorization_urem_udiv.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:cancel_2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:cancel_2.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:cases_2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:cases_2.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:div_zero.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:div_zero.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:expLaw.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:expLaw.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:exp_3_precision.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:exp_3_precision.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:guarded_div_1.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:guarded_div_1.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:guarded_div_2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:guarded_div_2.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:incorrect_reordering.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:incorrect_reordering.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:issue40_sat.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:issue40_sat.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:issue46.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:issue46.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:issue_40.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:issue_40.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:issue_42.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:issue_42.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:issue_42_bis.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:issue_42_bis.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:issue_45.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:issue_45.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:issue_46.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:issue_46.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:mod_repr.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:mod_repr.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:mul_03_3_1.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:mul_03_3_1.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:mult.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:mult.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:nan_double-main.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:nan_double-main.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:nan_float-main.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:nan_float-main.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:newton_3_6_false-unreach-call-main.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:newton_3_6_false-unreach-call-main.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:propExpLn1.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:propExpLn1.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:propLnExp3.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:propLnExp3.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:protected_divide.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:protected_divide.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.00.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.00.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0040.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0040.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0071.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0071.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.01.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.01.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.02.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.02.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0208.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0208.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0214.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0214.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0234.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0234.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0245.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0245.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0246.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0246.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.04.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.04.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0408.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0408.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0449.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0449.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0451.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0451.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0480.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0480.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0490.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0490.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0499.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0499.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0507.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0507.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0525.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0525.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0534.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0534.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0591.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0591.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0611.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0611.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0625.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0625.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0629.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0629.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0630.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0630.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0640.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0640.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0641.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0641.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0643.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0643.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0670.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0670.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0675.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0675.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0682.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0682.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0689.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0689.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0692.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0692.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0698.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0698.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.07.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.07.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0743.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0743.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0778.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0778.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.08.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.08.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0808.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0808.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0811.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0811.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0815.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0815.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0842.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0842.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0875.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0875.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0881.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0881.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.09.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.09.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0907.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0907.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0928.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0928.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0936.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0936.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0949.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0949.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0955.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0955.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0961.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0961.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0985.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0985.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.0994.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.0994.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1.bis.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1.bis.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.10.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.10.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1024.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1024.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1034.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1034.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1035.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1035.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1057.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1057.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1091.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1091.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1094.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1094.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1110.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1110.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1116.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1116.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1123.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1123.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1124.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1124.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1133.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1133.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1137.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1137.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1139.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1139.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1161.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1161.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1165.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1165.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1166.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1166.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1178.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1178.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1179.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1179.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1194.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1194.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1210.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1210.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1214.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1214.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1227.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1227.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1237.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1237.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1244.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1244.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1261.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1261.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1275.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1275.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1300.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1300.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1313.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1313.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1321.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1321.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1323.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1323.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1331.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1331.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1335.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1335.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1393.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1393.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1399.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1399.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1411.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1411.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1418.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1418.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1422.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1422.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1426.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1426.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1443.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1443.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1449.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1449.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1463.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1463.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1472.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1472.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1482.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1482.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1487.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1487.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1496.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1496.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.15.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.15.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1504.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1504.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1508.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1508.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1511.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1511.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1520.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1520.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1523.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1523.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1537.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1537.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1553.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1553.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1560.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1560.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1570.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1570.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1571.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1571.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1588.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1588.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1599.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1599.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1619.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1619.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1633.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1633.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1640.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1640.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1656.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1656.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1667.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1667.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1668.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1668.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1669.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1669.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1671.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1671.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1693.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1693.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1729.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1729.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1741.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1741.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1749.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1749.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1758.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1758.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1771.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1771.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1773.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1773.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1781.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1781.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1784.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1784.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1792.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1792.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1815.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1815.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1819.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1819.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1820.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1820.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1831.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1831.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1834.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1834.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1838.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1838.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1858.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1858.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1859.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1859.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1873.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1873.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1876.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1876.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1878.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1878.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1883.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1883.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1906.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1906.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1909.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1909.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1910.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1910.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1916.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1916.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1919.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1919.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1926.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1926.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1933.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1933.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1937.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1937.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1963.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1963.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1972.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1972.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1975.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1975.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1993.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1993.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.1995.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.1995.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.20.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.20.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2005.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2005.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2036.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2036.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2037.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2037.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2097.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2097.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2099.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2099.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2110.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2110.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2116.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2116.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2117.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2117.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2119.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2119.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2133.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2133.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2150.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2150.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2155.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2155.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2157.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2157.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.2198.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.2198.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.25.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.25.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.30.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.30.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:query.35.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:query.35.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:range_mult_fix_44.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:range_mult_fix_44.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:real_repr.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:real_repr.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:repr2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:repr2.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:repr_pow.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:repr_pow.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:riposte_floats_are_not_rational.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:riposte_floats_are_not_rational.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:scale_1.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:scale_1.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-10284.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-10284.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-10286.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-10286.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-11504.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-11504.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-11967.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-11967.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-1201.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-1201.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-12401.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-12401.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-12581.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-12581.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-13316.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-13316.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-13690.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-13690.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-13762.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-13762.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-13880.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-13880.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-14248.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-14248.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-14254.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-14254.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-145.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-145.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-14564.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-14564.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-14628.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-14628.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-15135.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-15135.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-15730.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-15730.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-16064.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-16064.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-16305.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-16305.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-16646.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-16646.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-16876.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-16876.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-17024.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-17024.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-17361.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-17361.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-17538.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-17538.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-1766.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-1766.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-18917.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-18917.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-18939.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-18939.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-19265.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-19265.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-19297.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-19297.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-19725.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-19725.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-2173.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-2173.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-3270.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-3270.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-3535.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-3535.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-4100.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-4100.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-4331.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-4331.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-5119.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-5119.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-5274.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-5274.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-5905.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-5905.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-6014.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-6014.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-6055.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-6055.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-6410.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-6410.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-6585.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-6585.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-673.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-673.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-674.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-674.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-7134.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-7134.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-7164.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-7164.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-7272.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-7272.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-8776.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-8776.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-8940.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-8940.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-9497.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-9497.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:sqrt-has-solution-9896.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:sqrt-has-solution-9896.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:test-Top-Floor_ceil_invalid.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:test-Top-Floor_ceil_invalid.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:test-Top-G2_invalid.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:test-Top-G2_invalid.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:test-Top-Int_Pow2_invalid.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:test-Top-Int_Pow2_invalid.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:test-Top-Int_Pow_invalid.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:test-Top-Int_Pow_invalid.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:underflow_1.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:underflow_1.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:zeros_count_1.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:zeros_count_1.smt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/dimacs/sat/dune.inc b/src_colibri2/tests/solve/dimacs/sat/dune.inc
index 9417a5dd05d206a4069bca06c1bb5b49b3f9e913..7702a3e46dee7cce9a0992fdb574f4cec2deea86 100644
--- a/src_colibri2/tests/solve/dimacs/sat/dune.inc
+++ b/src_colibri2/tests/solve/dimacs/sat/dune.inc
@@ -1,33 +1,33 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:anomaly_agetooold.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:anomaly_agetooold.cnf})))
+--dont-print-result %{dep:anomaly_agetooold.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:anomaly_agetooold.cnf})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:anomaly_agetooold2.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:anomaly_agetooold2.cnf})))
+--dont-print-result %{dep:anomaly_agetooold2.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:anomaly_agetooold2.cnf})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:assertion_fail.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:assertion_fail.cnf})))
+--dont-print-result %{dep:assertion_fail.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:assertion_fail.cnf})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:fuzzing1.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:fuzzing1.cnf})))
+--dont-print-result %{dep:fuzzing1.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:fuzzing1.cnf})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:fuzzing2.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:fuzzing2.cnf})))
+--dont-print-result %{dep:fuzzing2.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:fuzzing2.cnf})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:par8-1-c.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:par8-1-c.cnf})))
+--dont-print-result %{dep:par8-1-c.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:par8-1-c.cnf})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:pigeon-2.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:pigeon-2.cnf})))
+--dont-print-result %{dep:pigeon-2.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:pigeon-2.cnf})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:pigeon-3.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:pigeon-3.cnf})))
+--dont-print-result %{dep:pigeon-3.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:pigeon-3.cnf})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:pigeon-4.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:pigeon-4.cnf})))
+--dont-print-result %{dep:pigeon-4.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:pigeon-4.cnf})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:quinn.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:quinn.cnf})))
+--dont-print-result %{dep:quinn.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:quinn.cnf})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:simple_v3_c2.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:simple_v3_c2.cnf})))
+--dont-print-result %{dep:simple_v3_c2.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:simple_v3_c2.cnf})) (package colibri2))
diff --git a/src_colibri2/tests/solve/dimacs/unsat/dune.inc b/src_colibri2/tests/solve/dimacs/unsat/dune.inc
index f8a313f01b86d8d75df21501bb4523b7059f773b..e45edfb69cbc268ea4ca67534355988cf728a609 100644
--- a/src_colibri2/tests/solve/dimacs/unsat/dune.inc
+++ b/src_colibri2/tests/solve/dimacs/unsat/dune.inc
@@ -1,18 +1,18 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:anomaly_agetooold.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:anomaly_agetooold.cnf})))
+--dont-print-result %{dep:anomaly_agetooold.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:anomaly_agetooold.cnf})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:modus_ponens.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:modus_ponens.cnf})))
+--dont-print-result %{dep:modus_ponens.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:modus_ponens.cnf})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:pigeon-1.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:pigeon-1.cnf})))
+--dont-print-result %{dep:pigeon-1.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:pigeon-1.cnf})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:pigeon-2.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:pigeon-2.cnf})))
+--dont-print-result %{dep:pigeon-2.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:pigeon-2.cnf})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:pigeon-3.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:pigeon-3.cnf})))
+--dont-print-result %{dep:pigeon-3.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:pigeon-3.cnf})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:pigeon-4.cnf})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:pigeon-4.cnf})))
+--dont-print-result %{dep:pigeon-4.cnf})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:pigeon-4.cnf})) (package colibri2))
diff --git a/src_colibri2/tests/solve/models/dune.inc b/src_colibri2/tests/solve/models/dune.inc
index 1175dde2812a002948ae02384f8ab63ea0856857..7611f469178cb88428fda8af202c56c3b0024a9a 100644
--- a/src_colibri2/tests/solve/models/dune.inc
+++ b/src_colibri2/tests/solve/models/dune.inc
@@ -1,8 +1,8 @@
 (rule (action (with-stdout-to abs_real.smt2.res (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 %{dep:abs_real.smt2}))))
-(rule (alias runtest) (action (diff abs_real.smt2.oracle abs_real.smt2.res)))
+(rule (alias runtest) (action (diff abs_real.smt2.oracle abs_real.smt2.res)) (package colibri2))
 (rule (action (with-stdout-to function.smt2.res (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 %{dep:function.smt2}))))
-(rule (alias runtest) (action (diff function.smt2.oracle function.smt2.res)))
+(rule (alias runtest) (action (diff function.smt2.oracle function.smt2.res)) (package colibri2))
 (rule (action (with-stdout-to get_value.smt2.res (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 %{dep:get_value.smt2}))))
-(rule (alias runtest) (action (diff get_value.smt2.oracle get_value.smt2.res)))
+(rule (alias runtest) (action (diff get_value.smt2.oracle get_value.smt2.res)) (package colibri2))
 (rule (action (with-stdout-to sqrt.smt2.res (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 %{dep:sqrt.smt2}))))
-(rule (alias runtest) (action (diff sqrt.smt2.oracle sqrt.smt2.res)))
+(rule (alias runtest) (action (diff sqrt.smt2.oracle sqrt.smt2.res)) (package colibri2))
diff --git a/src_colibri2/tests/solve/smt_adt/sat/dune.inc b/src_colibri2/tests/solve/smt_adt/sat/dune.inc
index c23d1ad58fdf4dc1aebd176fbdfaf3cb2d272252..fff81c28fecc8488449189ea964dec8842799d78 100644
--- a/src_colibri2/tests/solve/smt_adt/sat/dune.inc
+++ b/src_colibri2/tests/solve/smt_adt/sat/dune.inc
@@ -1,21 +1,21 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:enum.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:enum.smt2})))
+--dont-print-result %{dep:enum.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:enum.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:list0.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:list0.smt2})))
+--dont-print-result %{dep:list0.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:list0.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:list1.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:list1.smt2})))
+--dont-print-result %{dep:list1.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:list1.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:pair.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:pair.smt2})))
+--dont-print-result %{dep:pair.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:pair.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:tree1.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:tree1.smt2})))
+--dont-print-result %{dep:tree1.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:tree1.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:tree2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:tree2.smt2})))
+--dont-print-result %{dep:tree2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:tree2.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:tree3.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:tree3.smt2})))
+--dont-print-result %{dep:tree3.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:tree3.smt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/smt_adt/unsat/dune.inc b/src_colibri2/tests/solve/smt_adt/unsat/dune.inc
index 7f96af2d2c074b47cf9feca5f89aeb61ee841ba5..a7ab9998243b5aa6d9b262d7f50c025e4fffba5d 100644
--- a/src_colibri2/tests/solve/smt_adt/unsat/dune.inc
+++ b/src_colibri2/tests/solve/smt_adt/unsat/dune.inc
@@ -1,27 +1,27 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:enum.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:enum.smt2})))
+--dont-print-result %{dep:enum.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:enum.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:enum2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:enum2.smt2})))
+--dont-print-result %{dep:enum2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:enum2.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:list0.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:list0.smt2})))
+--dont-print-result %{dep:list0.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:list0.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:list1.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:list1.smt2})))
+--dont-print-result %{dep:list1.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:list1.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:list2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:list2.smt2})))
+--dont-print-result %{dep:list2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:list2.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:list3.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:list3.smt2})))
+--dont-print-result %{dep:list3.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:list3.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:list4.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:list4.smt2})))
+--dont-print-result %{dep:list4.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:list4.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:pair.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:pair.smt2})))
+--dont-print-result %{dep:pair.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:pair.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:parlist0.psmt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:parlist0.psmt2})))
+--dont-print-result %{dep:parlist0.psmt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:parlist0.psmt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/smt_bv/sat/dune.inc b/src_colibri2/tests/solve/smt_bv/sat/dune.inc
index ff1c0b2ebbe6e08d9ae5ed6049f8952af5c0ddbb..ad4b434831364e5d92a56b1614be376c38c6045e 100644
--- a/src_colibri2/tests/solve/smt_bv/sat/dune.inc
+++ b/src_colibri2/tests/solve/smt_bv/sat/dune.inc
@@ -1,6 +1,6 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:bigHex.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:bigHex.smt2})))
+--dont-print-result %{dep:bigHex.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:bigHex.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:unit_test.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:unit_test.smt2})))
+--dont-print-result %{dep:unit_test.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:unit_test.smt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/smt_fp/dune.inc b/src_colibri2/tests/solve/smt_fp/dune.inc
index 1b69ea63ec5a9b6d48f6128ce097d6f6fe52c22f..3de86d950cb9ce4982cb3643f10d908382d3bdf2 100644
--- a/src_colibri2/tests/solve/smt_fp/dune.inc
+++ b/src_colibri2/tests/solve/smt_fp/dune.inc
@@ -1,2 +1,2 @@
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:rm_universal.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:rm_universal.smt2})))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:rm_universal.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:rm_universal.smt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/smt_fp/sat/dune.inc b/src_colibri2/tests/solve/smt_fp/sat/dune.inc
index 916fa57dc5916854be35d1cd2cc167e61b0705ab..4a3547d3427ceb286305b11d5ef2624281d60093 100644
--- a/src_colibri2/tests/solve/smt_fp/sat/dune.inc
+++ b/src_colibri2/tests/solve/smt_fp/sat/dune.inc
@@ -1,45 +1,45 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:exists_eq_not_fp_eq.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:exists_eq_not_fp_eq.smt2})))
+--dont-print-result %{dep:exists_eq_not_fp_eq.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:exists_eq_not_fp_eq.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:inf_pos_neg_neq_float32.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:inf_pos_neg_neq_float32.smt2})))
+--dont-print-result %{dep:inf_pos_neg_neq_float32.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:inf_pos_neg_neq_float32.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:infm_eq_float32.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:infm_eq_float32.smt2})))
+--dont-print-result %{dep:infm_eq_float32.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:infm_eq_float32.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:infp_eq_float32.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:infp_eq_float32.smt2})))
+--dont-print-result %{dep:infp_eq_float32.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:infp_eq_float32.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:nan_neq_float32.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:nan_neq_float32.smt2})))
+--dont-print-result %{dep:nan_neq_float32.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:nan_neq_float32.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:recognize_float32.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:recognize_float32.smt2})))
+--dont-print-result %{dep:recognize_float32.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:recognize_float32.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:recognize_rounding_mode.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:recognize_rounding_mode.smt2})))
+--dont-print-result %{dep:recognize_rounding_mode.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:recognize_rounding_mode.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:rm_instanciation.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:rm_instanciation.smt2})))
+--dont-print-result %{dep:rm_instanciation.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:rm_instanciation.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:simple_add_float32.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:simple_add_float32.smt2})))
+--dont-print-result %{dep:simple_add_float32.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:simple_add_float32.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:simple_eq_float32.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:simple_eq_float32.smt2})))
+--dont-print-result %{dep:simple_eq_float32.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:simple_eq_float32.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:simple_mul_float32.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:simple_mul_float32.smt2})))
+--dont-print-result %{dep:simple_mul_float32.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:simple_mul_float32.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:to_fp_eq_float32.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:to_fp_eq_float32.smt2})))
+--dont-print-result %{dep:to_fp_eq_float32.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:to_fp_eq_float32.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:zero_pos_neg_neq_float32.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:zero_pos_neg_neq_float32.smt2})))
+--dont-print-result %{dep:zero_pos_neg_neq_float32.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:zero_pos_neg_neq_float32.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:zerom_eq_float32.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:zerom_eq_float32.smt2})))
+--dont-print-result %{dep:zerom_eq_float32.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:zerom_eq_float32.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:zerop_eq_float32.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:zerop_eq_float32.smt2})))
+--dont-print-result %{dep:zerop_eq_float32.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:zerop_eq_float32.smt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/smt_fp/unsat/dune.inc b/src_colibri2/tests/solve/smt_fp/unsat/dune.inc
index 1cebe05d262460129d4a8efa3fa9d6163ae8290a..c73bdbcfc0bbd60b095087b9c5e6f51f232189b7 100644
--- a/src_colibri2/tests/solve/smt_fp/unsat/dune.inc
+++ b/src_colibri2/tests/solve/smt_fp/unsat/dune.inc
@@ -1,12 +1,12 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:eq_fp_eq.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:eq_fp_eq.smt2})))
+--dont-print-result %{dep:eq_fp_eq.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:eq_fp_eq.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:inf_pos_neg_neq.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:inf_pos_neg_neq.smt2})))
+--dont-print-result %{dep:inf_pos_neg_neq.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:inf_pos_neg_neq.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:nan_neq_float32.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:nan_neq_float32.smt2})))
+--dont-print-result %{dep:nan_neq_float32.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:nan_neq_float32.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:propagate_le_ge.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:propagate_le_ge.smt2})))
+--dont-print-result %{dep:propagate_le_ge.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:propagate_le_ge.smt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/smt_lra/sat/dune.inc b/src_colibri2/tests/solve/smt_lra/sat/dune.inc
index 85845a07610813d4f70d9912ff26583cc6294b45..90012dedc555dba89b707afbd3d404e89f899892 100644
--- a/src_colibri2/tests/solve/smt_lra/sat/dune.inc
+++ b/src_colibri2/tests/solve/smt_lra/sat/dune.inc
@@ -1,102 +1,102 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_CombiRepr_normalize.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_CombiRepr_normalize.smt2})))
+--dont-print-result %{dep:arith_CombiRepr_normalize.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_CombiRepr_normalize.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_conflict_add_disequality.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_conflict_add_disequality.smt2})))
+--dont-print-result %{dep:arith_conflict_add_disequality.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_conflict_add_disequality.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_conpoly.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_conpoly.smt2})))
+--dont-print-result %{dep:arith_conpoly.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_conpoly.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_decide_must_test_is_dis_equal.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_decide_must_test_is_dis_equal.smt2})))
+--dont-print-result %{dep:arith_decide_must_test_is_dis_equal.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_decide_must_test_is_dis_equal.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_init_always_merge_itself.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_init_always_merge_itself.smt2})))
+--dont-print-result %{dep:arith_init_always_merge_itself.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_init_always_merge_itself.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_init_and_propa_must_be_ordered.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_init_and_propa_must_be_ordered.smt2})))
+--dont-print-result %{dep:arith_init_and_propa_must_be_ordered.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_init_and_propa_must_be_ordered.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_merge_case1.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_merge_case1.smt2})))
+--dont-print-result %{dep:arith_merge_case1.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_merge_case1.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_merge_case_4.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_merge_case_4.smt2})))
+--dont-print-result %{dep:arith_merge_case_4.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_merge_case_4.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_merge_case_4_bis.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_merge_case_4_bis.smt2})))
+--dont-print-result %{dep:arith_merge_case_4_bis.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_merge_case_4_bis.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_merge_itself_coef_of_repr_is_one.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_merge_itself_coef_of_repr_is_one.smt2})))
+--dont-print-result %{dep:arith_merge_itself_coef_of_repr_is_one.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_merge_itself_coef_of_repr_is_one.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_merge_itself_last_case.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_merge_itself_last_case.smt2})))
+--dont-print-result %{dep:arith_merge_itself_last_case.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_merge_itself_last_case.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_merge_itself_pivot_not_in_p12.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_merge_itself_pivot_not_in_p12.smt2})))
+--dont-print-result %{dep:arith_merge_itself_pivot_not_in_p12.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_merge_itself_pivot_not_in_p12.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_merge_must_use_find.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_merge_must_use_find.smt2})))
+--dont-print-result %{dep:arith_merge_must_use_find.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_merge_must_use_find.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_mult_explication.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_mult_explication.smt2})))
+--dont-print-result %{dep:arith_mult_explication.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_mult_explication.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_mult_not_linear_in_conflict.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_mult_not_linear_in_conflict.smt2})))
+--dont-print-result %{dep:arith_mult_not_linear_in_conflict.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_mult_not_linear_in_conflict.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_normalize_use_find_def.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_normalize_use_find_def.smt2})))
+--dont-print-result %{dep:arith_normalize_use_find_def.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_normalize_use_find_def.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_own_repr.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_own_repr.smt2})))
+--dont-print-result %{dep:arith_own_repr.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_own_repr.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_propacl.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_propacl.smt2})))
+--dont-print-result %{dep:arith_propacl.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_propacl.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_subst_and_conflict_add.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_subst_and_conflict_add.smt2})))
+--dont-print-result %{dep:arith_subst_and_conflict_add.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_subst_and_conflict_add.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:arith_zero_dom.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_zero_dom.smt2})))
+--dont-print-result %{dep:arith_zero_dom.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:arith_zero_dom.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:attach_only_when_dom_present.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:attach_only_when_dom_present.smt2})))
+--dont-print-result %{dep:attach_only_when_dom_present.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:attach_only_when_dom_present.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:init_not_repr.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:init_not_repr.smt2})))
+--dont-print-result %{dep:init_not_repr.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:init_not_repr.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:le.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:le.smt2})))
+--dont-print-result %{dep:le.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:le.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:le2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:le2.smt2})))
+--dont-print-result %{dep:le2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:le2.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:mul.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:mul.smt2})))
+--dont-print-result %{dep:mul.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:mul.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:sem_invariant_in_learnt_dec.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:sem_invariant_in_learnt_dec.smt2})))
+--dont-print-result %{dep:sem_invariant_in_learnt_dec.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:sem_invariant_in_learnt_dec.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:solver_add_pexp_cl.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:solver_add_pexp_cl.smt2})))
+--dont-print-result %{dep:solver_add_pexp_cl.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:solver_add_pexp_cl.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:solver_arith_homogeneous_dist_sign.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:solver_arith_homogeneous_dist_sign.smt2})))
+--dont-print-result %{dep:solver_arith_homogeneous_dist_sign.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:solver_arith_homogeneous_dist_sign.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:solver_merge_itself_repr_inside.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:solver_merge_itself_repr_inside.smt2})))
+--dont-print-result %{dep:solver_merge_itself_repr_inside.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:solver_merge_itself_repr_inside.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:solver_set_pending_merge_expsameexp.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:solver_set_pending_merge_expsameexp.smt2})))
+--dont-print-result %{dep:solver_set_pending_merge_expsameexp.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:solver_set_pending_merge_expsameexp.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:solver_subst_eventdom_find.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:solver_subst_eventdom_find.smt2})))
+--dont-print-result %{dep:solver_subst_eventdom_find.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:solver_subst_eventdom_find.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:to_real.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:to_real.smt2})))
+--dont-print-result %{dep:to_real.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:to_real.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:to_real2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:to_real2.smt2})))
+--dont-print-result %{dep:to_real2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:to_real2.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:zero_should_not_be_simplified.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:zero_should_not_be_simplified.smt2})))
+--dont-print-result %{dep:zero_should_not_be_simplified.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:zero_should_not_be_simplified.smt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/smt_lra/unsat/dune.inc b/src_colibri2/tests/solve/smt_lra/unsat/dune.inc
index 9f252d280ee6a6ef15432ec8ba99f72f9a4634eb..def8d3aec745e66415404e2516c67b08457f13ad 100644
--- a/src_colibri2/tests/solve/smt_lra/unsat/dune.inc
+++ b/src_colibri2/tests/solve/smt_lra/unsat/dune.inc
@@ -1,33 +1,33 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:arith_ExpMult_by_zero.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:arith_ExpMult_by_zero.smt2})))
+--dont-print-result %{dep:arith_ExpMult_by_zero.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:arith_ExpMult_by_zero.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:arith_merge_case2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:arith_merge_case2.smt2})))
+--dont-print-result %{dep:arith_merge_case2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:arith_merge_case2.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:le.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:le.smt2})))
+--dont-print-result %{dep:le.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:le.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:le2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:le2.smt2})))
+--dont-print-result %{dep:le2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:le2.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:mul.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mul.smt2})))
+--dont-print-result %{dep:mul.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mul.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:repr_and_poly.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:repr_and_poly.smt2})))
+--dont-print-result %{dep:repr_and_poly.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:repr_and_poly.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:repr_fourier.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:repr_fourier.smt2})))
+--dont-print-result %{dep:repr_fourier.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:repr_fourier.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:solver_merge_itself_repr_empty.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:solver_merge_itself_repr_empty.smt2})))
+--dont-print-result %{dep:solver_merge_itself_repr_empty.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:solver_merge_itself_repr_empty.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:solver_set_sem_merge_sign.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:solver_set_sem_merge_sign.smt2})))
+--dont-print-result %{dep:solver_set_sem_merge_sign.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:solver_set_sem_merge_sign.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:to_real.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:to_real.smt2})))
+--dont-print-result %{dep:to_real.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:to_real.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:to_real2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:to_real2.smt2})))
+--dont-print-result %{dep:to_real2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:to_real2.smt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/smt_nra/sat/dune.inc b/src_colibri2/tests/solve/smt_nra/sat/dune.inc
index f33ed766d91dc990ddd907f7be59c8d8b96acdd3..2aa3fb3dc46f72f2727e517137bf675826800483 100644
--- a/src_colibri2/tests/solve/smt_nra/sat/dune.inc
+++ b/src_colibri2/tests/solve/smt_nra/sat/dune.inc
@@ -1,24 +1,24 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:ceil.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:ceil.smt2})))
+--dont-print-result %{dep:ceil.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:ceil.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:div_pos.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:div_pos.smt2})))
+--dont-print-result %{dep:div_pos.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:div_pos.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:div_pos_lt.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:div_pos_lt.smt2})))
+--dont-print-result %{dep:div_pos_lt.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:div_pos_lt.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:mul_commut.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:mul_commut.smt2})))
+--dont-print-result %{dep:mul_commut.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:mul_commut.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:mul_commut2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:mul_commut2.smt2})))
+--dont-print-result %{dep:mul_commut2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:mul_commut2.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:mul_pos.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:mul_pos.smt2})))
+--dont-print-result %{dep:mul_pos.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:mul_pos.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:mul_pos_lt.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:mul_pos_lt.smt2})))
+--dont-print-result %{dep:mul_pos_lt.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:mul_pos_lt.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:sqrt_tower.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:sqrt_tower.smt2})))
+--dont-print-result %{dep:sqrt_tower.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:sqrt_tower.smt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/smt_nra/unsat/dune.inc b/src_colibri2/tests/solve/smt_nra/unsat/dune.inc
index f09c2b8bf3ed22db43386e4d53e594b0ab43799d..9fc52a254a91fc73bf87cac16640e04b60317121 100644
--- a/src_colibri2/tests/solve/smt_nra/unsat/dune.inc
+++ b/src_colibri2/tests/solve/smt_nra/unsat/dune.inc
@@ -1,42 +1,42 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:ceil.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:ceil.smt2})))
+--dont-print-result %{dep:ceil.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:ceil.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:div_pos.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:div_pos.smt2})))
+--dont-print-result %{dep:div_pos.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:div_pos.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:div_pos_lt.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:div_pos_lt.smt2})))
+--dont-print-result %{dep:div_pos_lt.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:div_pos_lt.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:div_pos_lt_to_real.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:div_pos_lt_to_real.smt2})))
+--dont-print-result %{dep:div_pos_lt_to_real.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:div_pos_lt_to_real.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:floor.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:floor.smt2})))
+--dont-print-result %{dep:floor.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:floor.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:mul_commut.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mul_commut.smt2})))
+--dont-print-result %{dep:mul_commut.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mul_commut.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:mul_commut2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mul_commut2.smt2})))
+--dont-print-result %{dep:mul_commut2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mul_commut2.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:mul_pos.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mul_pos.smt2})))
+--dont-print-result %{dep:mul_pos.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mul_pos.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:mul_pos_lt.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mul_pos_lt.smt2})))
+--dont-print-result %{dep:mul_pos_lt.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mul_pos_lt.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:mul_pos_zero_le.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mul_pos_zero_le.smt2})))
+--dont-print-result %{dep:mul_pos_zero_le.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mul_pos_zero_le.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:mult_hard.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mult_hard.smt2})))
+--dont-print-result %{dep:mult_hard.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mult_hard.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:mult_sqrt_hard.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mult_sqrt_hard.smt2})))
+--dont-print-result %{dep:mult_sqrt_hard.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mult_sqrt_hard.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:sqrt.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:sqrt.smt2})))
+--dont-print-result %{dep:sqrt.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:sqrt.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:sqrt_compare.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:sqrt_compare.smt2})))
+--dont-print-result %{dep:sqrt_compare.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:sqrt_compare.smt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/smt_quant/dune.inc b/src_colibri2/tests/solve/smt_quant/dune.inc
index 295c57e5152e98d6bb5bdbf89f1e5a6063f82b7b..852b164a8781217f7631281dd98a4987bfeed7d2 100644
--- a/src_colibri2/tests/solve/smt_quant/dune.inc
+++ b/src_colibri2/tests/solve/smt_quant/dune.inc
@@ -1,8 +1,8 @@
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:forall0.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:forall0.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:forall3.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:forall3.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:forall4.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:forall4.smt2})))
-(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:multitrigger.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:multitrigger.smt2})))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:forall0.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:forall0.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:forall3.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:forall3.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:forall4.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:forall4.smt2})) (package colibri2))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result %{dep:multitrigger.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status colibri2 --dont-print-result --learning %{dep:multitrigger.smt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/smt_quant/sat/dune.inc b/src_colibri2/tests/solve/smt_quant/sat/dune.inc
index bcf5eedf82ab48bdd18ea0ffc0cfd37bad24dd22..963529b3cb2deeb4c1b346ee61db1642530d754d 100644
--- a/src_colibri2/tests/solve/smt_quant/sat/dune.inc
+++ b/src_colibri2/tests/solve/smt_quant/sat/dune.inc
@@ -1,3 +1,3 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:exists.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:exists.smt2})))
+--dont-print-result %{dep:exists.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:exists.smt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/smt_quant/unsat/dune.inc b/src_colibri2/tests/solve/smt_quant/unsat/dune.inc
index c7c8ad41a7cfef1a6da35580e955b864c67d86a9..b0c7117fbec2dccaaa3be2e8a3d0103716640526 100644
--- a/src_colibri2/tests/solve/smt_quant/unsat/dune.inc
+++ b/src_colibri2/tests/solve/smt_quant/unsat/dune.inc
@@ -1,33 +1,33 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:exists.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:exists.smt2})))
+--dont-print-result %{dep:exists.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:exists.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:exists2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:exists2.smt2})))
+--dont-print-result %{dep:exists2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:exists2.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:forall0.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall0.smt2})))
+--dont-print-result %{dep:forall0.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall0.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:forall1.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall1.smt2})))
+--dont-print-result %{dep:forall1.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall1.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:forall2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall2.smt2})))
+--dont-print-result %{dep:forall2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall2.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:forall3.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall3.smt2})))
+--dont-print-result %{dep:forall3.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall3.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:forall4.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall4.smt2})))
+--dont-print-result %{dep:forall4.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall4.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:forall5.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall5.smt2})))
+--dont-print-result %{dep:forall5.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall5.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:forall6.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall6.smt2})))
+--dont-print-result %{dep:forall6.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall6.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:forall7.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall7.smt2})))
+--dont-print-result %{dep:forall7.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall7.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:forall8.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall8.smt2})))
+--dont-print-result %{dep:forall8.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:forall8.smt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/smt_uf/sat/dune.inc b/src_colibri2/tests/solve/smt_uf/sat/dune.inc
index daa92adb42cb431ace69accae8a64601cb6c5e13..dbbdbdae0affd367c1a9a9d0aed6b2a23182acfe 100644
--- a/src_colibri2/tests/solve/smt_uf/sat/dune.inc
+++ b/src_colibri2/tests/solve/smt_uf/sat/dune.inc
@@ -1,63 +1,63 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:bad_conflict.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:bad_conflict.smt2})))
+--dont-print-result %{dep:bad_conflict.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:bad_conflict.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:bcp_dont_like_duplicate.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:bcp_dont_like_duplicate.smt2})))
+--dont-print-result %{dep:bcp_dont_like_duplicate.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:bcp_dont_like_duplicate.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:bool_not_propa.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:bool_not_propa.smt2})))
+--dont-print-result %{dep:bool_not_propa.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:bool_not_propa.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:boolexpup.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:boolexpup.smt2})))
+--dont-print-result %{dep:boolexpup.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:boolexpup.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:clause_normalization.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:clause_normalization.smt2})))
+--dont-print-result %{dep:clause_normalization.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:clause_normalization.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:clmerge.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:clmerge.smt2})))
+--dont-print-result %{dep:clmerge.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:clmerge.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:conflict_complete_needed_cl.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:conflict_complete_needed_cl.smt2})))
+--dont-print-result %{dep:conflict_complete_needed_cl.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:conflict_complete_needed_cl.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:directdom_not.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:directdom_not.smt2})))
+--dont-print-result %{dep:directdom_not.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:directdom_not.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:dis_dom_before_first_age.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:dis_dom_before_first_age.smt2})))
+--dont-print-result %{dep:dis_dom_before_first_age.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:dis_dom_before_first_age.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:dom_merge_equality.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:dom_merge_equality.smt2})))
+--dont-print-result %{dep:dom_merge_equality.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:dom_merge_equality.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:equality.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:equality.smt2})))
+--dont-print-result %{dep:equality.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:equality.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:equality_condis.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:equality_condis.smt2})))
+--dont-print-result %{dep:equality_condis.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:equality_condis.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:equality_get_sem.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:equality_get_sem.smt2})))
+--dont-print-result %{dep:equality_get_sem.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:equality_get_sem.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:exp_sem_equality.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:exp_sem_equality.smt2})))
+--dont-print-result %{dep:exp_sem_equality.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:exp_sem_equality.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:explimit_cl_equality.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:explimit_cl_equality.smt2})))
+--dont-print-result %{dep:explimit_cl_equality.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:explimit_cl_equality.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:implication.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:implication.smt2})))
+--dont-print-result %{dep:implication.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:implication.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:intmap_set_disjoint.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:intmap_set_disjoint.smt2})))
+--dont-print-result %{dep:intmap_set_disjoint.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:intmap_set_disjoint.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:is_equal_not_propagated.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:is_equal_not_propagated.smt2})))
+--dont-print-result %{dep:is_equal_not_propagated.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:is_equal_not_propagated.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:ite_sem_bool.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:ite_sem_bool.smt2})))
+--dont-print-result %{dep:ite_sem_bool.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:ite_sem_bool.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:polyeq_genequality.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:polyeq_genequality.smt2})))
+--dont-print-result %{dep:polyeq_genequality.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:polyeq_genequality.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat 
---dont-print-result %{dep:substupfalse_equality.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:substupfalse_equality.smt2})))
+--dont-print-result %{dep:substupfalse_equality.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:substupfalse_equality.smt2})) (package colibri2))
diff --git a/src_colibri2/tests/solve/smt_uf/unsat/dune.inc b/src_colibri2/tests/solve/smt_uf/unsat/dune.inc
index ce4af25090041bae089a8fb261b78a34a327af2e..52d5eb417e235616a7c36b0b530b5c7412a30d3d 100644
--- a/src_colibri2/tests/solve/smt_uf/unsat/dune.inc
+++ b/src_colibri2/tests/solve/smt_uf/unsat/dune.inc
@@ -1,39 +1,39 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:NEQ004_size4__decide_eq_us.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:NEQ004_size4__decide_eq_us.smt2})))
+--dont-print-result %{dep:NEQ004_size4__decide_eq_us.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:NEQ004_size4__decide_eq_us.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:deltaed0.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:deltaed0.smt2})))
+--dont-print-result %{dep:deltaed0.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:deltaed0.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:diff_to_value_for_bool.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:diff_to_value_for_bool.smt2})))
+--dont-print-result %{dep:diff_to_value_for_bool.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:diff_to_value_for_bool.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:diff_value_substupfalse.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:diff_value_substupfalse.smt2})))
+--dont-print-result %{dep:diff_value_substupfalse.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:diff_value_substupfalse.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:distinct.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:distinct.smt2})))
+--dont-print-result %{dep:distinct.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:distinct.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:eq_diamond2.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:eq_diamond2.smt2})))
+--dont-print-result %{dep:eq_diamond2.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:eq_diamond2.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:equality_norm_set.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:equality_norm_set.smt2})))
+--dont-print-result %{dep:equality_norm_set.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:equality_norm_set.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:fundef.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:fundef.smt2})))
+--dont-print-result %{dep:fundef.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:fundef.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:get_repr_at__instead_of__equal_CRepr.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:get_repr_at__instead_of__equal_CRepr.smt2})))
+--dont-print-result %{dep:get_repr_at__instead_of__equal_CRepr.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:get_repr_at__instead_of__equal_CRepr.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:many_distinct.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:many_distinct.smt2})))
+--dont-print-result %{dep:many_distinct.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:many_distinct.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:polyeq_genequality.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:polyeq_genequality.smt2})))
+--dont-print-result %{dep:polyeq_genequality.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:polyeq_genequality.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:polyeq_genequality_deltaed.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:polyeq_genequality_deltaed.smt2})))
+--dont-print-result %{dep:polyeq_genequality_deltaed.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:polyeq_genequality_deltaed.smt2})) (package colibri2))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat 
---dont-print-result %{dep:xor.smt2})))
-(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:xor.smt2})))
+--dont-print-result %{dep:xor.smt2})) (package colibri2))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:xor.smt2})) (package colibri2))
diff --git a/src_colibri2/tests/test.ml b/src_colibri2/tests/test.ml
index 216770b538cbf2494cdd5da563165887b753e273..8ad2d55bc65482b8938343b65f06e533b33c1948 100644
--- a/src_colibri2/tests/test.ml
+++ b/src_colibri2/tests/test.ml
@@ -23,4 +23,3 @@ let () =
   (* let d = Colibri2_core.Egraph. *)
   (* Colibri2_theories_bool.Bool.th_register solver; *)
   Format.printf "All tests OK ! (total: 0)@."
-
diff --git a/src_colibri2/tests/tests_bool.ml b/src_colibri2/tests/tests_bool.ml
index e172b317dd9c24099075b9ed9698762685e0ec6c..d6cf0c9c1dd66feb33344be760aea51d8b0a4a16 100644
--- a/src_colibri2/tests/tests_bool.ml
+++ b/src_colibri2/tests/tests_bool.ml
@@ -28,7 +28,6 @@ let theories =
   [ Colibri2_theories_quantifiers.Uninterp.th_register; Boolean.th_register ]
 
 let ( $$ ) f x = f x
-
 let run f = Tests_lib.run_exn ~theories f
 
 open Expr
@@ -131,7 +130,8 @@ let imply_implies _ =
 let basic =
   "Boolean.Basic"
   >::: [
-         (* "bool_interp" >:: bool_interp; *) "true_is_true" >:: true_is_true;
+         (* "bool_interp" >:: bool_interp; *)
+         "true_is_true" >:: true_is_true;
          "not_true_is_false" >:: not_true_is_false;
          "and_true_is_true" >:: and_true_is_true;
          "or_not_true_is_false" >:: or_not_true_is_false;
diff --git a/src_colibri2/tests/tests_fp.ml b/src_colibri2/tests/tests_fp.ml
index 68fd770d0dd64233f8b088bd48e31d56184cbb5a..1a3d32fbf0710f51d6d23e5e333627c5035fe0a2 100644
--- a/src_colibri2/tests/tests_fp.ml
+++ b/src_colibri2/tests/tests_fp.ml
@@ -26,9 +26,7 @@ open Colibri2_theories_bool
 open Colibri2_theories_fp
 
 let theories = [ Boolean.th_register; Equality.th_register; Fp.th_register ]
-
 let ( $$ ) f x = f x
-
 let run f = Scheduler.run_exn ~step_limit:3000 ~nodec:() ~theories f
 
 let recognize_float32 _ =
@@ -60,5 +58,4 @@ let recognize_float64 _ =
   fun env -> assert_bool "a = b" (is_equal env an bn)
 
 let basic = "FP.Basic" &: [ recognize_float32; recognize_float64 ]
-
 let tests = test_list [ basic ]
diff --git a/src_colibri2/tests/tests_lib.ml b/src_colibri2/tests/tests_lib.ml
index 67e9a3f3c0d49c547a5af1e6f9d14520eb8136da..330fd42e3d64b4138d0f2e90ae45cec4cabf2837 100644
--- a/src_colibri2/tests/tests_lib.ml
+++ b/src_colibri2/tests/tests_lib.ml
@@ -62,7 +62,6 @@ let new_solver () =
   }
 
 exception ReachStepLimit
-
 exception Contradiction
 
 let run_exn = Colibri2_solver.Scheduler.run_exn ~step_limit:3000
diff --git a/src_colibri2/tests/tests_uf.ml b/src_colibri2/tests/tests_uf.ml
index 20d6f728658dd5212f3901499aada22d3036b4a4..648207d52873e73c59726cb3d792ef435d0f301a 100644
--- a/src_colibri2/tests/tests_uf.ml
+++ b/src_colibri2/tests/tests_uf.ml
@@ -32,15 +32,12 @@ let theories =
   ]
 
 let run f = Tests_lib.run_exn ~theories ~nodec:() f
-
 let ( $$ ) f x = f x
 
 open Expr
 
 let ta = fresht Ty.bool "a"
-
 let tb = fresht Ty.bool "b"
-
 let tc = fresht Ty.bool "c"
 
 let f =
@@ -336,5 +333,4 @@ let altergo2 _ =
       (is_equal env hggbcca hbfa)
 
 let altergo = "Uf.altergo tests" &: [ altergo0; altergo1; altergo2 ]
-
 let tests = OUnit2.test_list [ basic; congru1; congru2; altergo ]
diff --git a/src_colibri2/theories/ADT/adt_dom.mli b/src_colibri2/theories/ADT/adt_dom.mli
index f8ee72c17d6d81249bc618362bd48dac9c7e7222..b8e949aa71b78db1c55659d9b1aadb94f042d375 100644
--- a/src_colibri2/theories/ADT/adt_dom.mli
+++ b/src_colibri2/theories/ADT/adt_dom.mli
@@ -32,9 +32,6 @@ type t =
     }
 
 val pp : t Fmt.t
-
 val key : t Dom.Kind.t
-
 val set_dom : Egraph.wt -> Node.t -> t -> DUnit.t
-
 val upd_dom : Egraph.wt -> Node.t -> t -> DUnit.t
diff --git a/src_colibri2/theories/ADT/adt_value.ml b/src_colibri2/theories/ADT/adt_value.ml
index 641f9e71f14853c670ca1212a5432be90f51a2cc..3115d5068014b2fe067b17b4171e9a79c2c43acb 100644
--- a/src_colibri2/theories/ADT/adt_value.ml
+++ b/src_colibri2/theories/ADT/adt_value.ml
@@ -26,9 +26,7 @@ module Case = DInt
 module Field = DInt
 
 let case_of_int i = i
-
 let field_of_int i = i
-
 let debug = Debug.register_info_flag "Adt_value" ~desc:""
 
 (** Monomorph version *)
diff --git a/src_colibri2/theories/ADT/adt_value.mli b/src_colibri2/theories/ADT/adt_value.mli
index 3c83ff86f5d78b36822a1c12b9252e0cac2e57c3..076df76473d86cf17ae1293538f95e72349fbfc5 100644
--- a/src_colibri2/theories/ADT/adt_value.mli
+++ b/src_colibri2/theories/ADT/adt_value.mli
@@ -21,7 +21,6 @@
 open Colibri2_core
 open Colibri2_popop_lib
 open Popop_stdlib
-
 module Case : Datatype
 
 val case_of_int : int -> Case.t
@@ -47,7 +46,6 @@ type ts = { adt : MonoAdt.t; case : Case.t; fields : Value.t Field.M.t }
 include Value.S with type s := ts
 
 val th_register : Egraph.wt -> unit
-
 val propagate_value : Egraph.wt -> Ground.t -> unit
 
 val sequence_of_cases :
diff --git a/src_colibri2/theories/ADT/dune b/src_colibri2/theories/ADT/dune
index 2635ce0f0112607871645252483416970120c90d..4037d04f4c51068ac71176637e6105649191fb15 100644
--- a/src_colibri2/theories/ADT/dune
+++ b/src_colibri2/theories/ADT/dune
@@ -2,13 +2,32 @@
  (name colibri2_theories_adt)
  (public_name colibri2.theories.adt)
  (synopsis "theory of algebraic datatype for colibri2")
- (libraries base ocamlgraph colibri2.stdlib colibri2.popop_lib
-            colibri2.core colibri2.theories.bool
-            colibri2.theories.quantifiers
- )
+ (libraries
+  base
+  ocamlgraph
+  colibri2.stdlib
+  colibri2.popop_lib
+  colibri2.core
+  colibri2.theories.bool
+  colibri2.theories.quantifiers)
  (preprocess
   (pps ppx_deriving.std ppx_hash))
- (flags :standard -open Base -open Colibri2_stdlib -open Std -open
-   Colibri2_core -open Colibri2_theories_bool)
- (ocamlopt_flags :standard -O3 -bin-annot -unbox-closures
-   -unbox-closures-factor 20))
+ (flags
+  :standard
+  -open
+  Base
+  -open
+  Colibri2_stdlib
+  -open
+  Std
+  -open
+  Colibri2_core
+  -open
+  Colibri2_theories_bool)
+ (ocamlopt_flags
+  :standard
+  -O3
+  -bin-annot
+  -unbox-closures
+  -unbox-closures-factor
+  20))
diff --git a/src_colibri2/theories/FP/fp.mli b/src_colibri2/theories/FP/fp.mli
index 153fcd6c556be453e675af48595542a1e5fa6d3c..ae90f210c15eed08282a0b83af7ee633f9e0a71b 100644
--- a/src_colibri2/theories/FP/fp.mli
+++ b/src_colibri2/theories/FP/fp.mli
@@ -20,6 +20,5 @@
 
 (** FloatingPoint theory as described in SMT-LIB 2 *)
 
-(** Register the theory *)
 val th_register : Egraph.wt -> unit
-
+(** Register the theory *)
diff --git a/src_colibri2/theories/FP/rounding_mode.ml b/src_colibri2/theories/FP/rounding_mode.ml
index 1d57e4153860af72d5262ff5ee832e43941cccdf..f0c55c5ae1c2546724acc5739a7abe1f38d716ee 100644
--- a/src_colibri2/theories/FP/rounding_mode.ml
+++ b/src_colibri2/theories/FP/rounding_mode.ml
@@ -76,8 +76,10 @@ let interp d n = Opt.get_exn Impossible (Egraph.get_value d n)
 let compute_cst t =
   let ( !< ) v = `Some (Modes.nodevalue (Modes.index v)) in
   match Ground.sem t with
-  | { app = { builtin = Expr.RoundNearestTiesToEven; _ }; _ } -> !<Farith.Mode.NE
-  | { app = { builtin = Expr.RoundNearestTiesToAway; _ }; _ } -> !<Farith.Mode.NA
+  | { app = { builtin = Expr.RoundNearestTiesToEven; _ }; _ } ->
+      !<Farith.Mode.NE
+  | { app = { builtin = Expr.RoundNearestTiesToAway; _ }; _ } ->
+      !<Farith.Mode.NA
   | { app = { builtin = Expr.RoundTowardNegative; _ }; _ } -> !<Farith.Mode.DN
   | { app = { builtin = Expr.RoundTowardPositive; _ }; _ } -> !<Farith.Mode.UP
   | { app = { builtin = Expr.RoundTowardZero; _ }; _ } -> !<Farith.Mode.ZR
@@ -99,7 +101,8 @@ let converter d f =
       merge (cst Farith.Mode.DN)
   | { app = { builtin = Expr.RoundTowardPositive; _ }; _ } ->
       merge (cst Farith.Mode.UP)
-  | { app = { builtin = Expr.RoundTowardZero; _ }; _ } -> merge (cst Farith.Mode.ZR)
+  | { app = { builtin = Expr.RoundTowardZero; _ }; _ } ->
+      merge (cst Farith.Mode.ZR)
   | _ -> ()
 
 let init_check d =
diff --git a/src_colibri2/theories/LRA/LRA_build.ml b/src_colibri2/theories/LRA/LRA_build.ml
index f35108a0317c6ecbbcfc959b520bfe8d552df0a6..836fa278982f026c91c38e930678a1ee1b94b5cb 100644
--- a/src_colibri2/theories/LRA/LRA_build.ml
+++ b/src_colibri2/theories/LRA/LRA_build.ml
@@ -24,21 +24,13 @@ open Colibri2_core
 
 module LastEffort = struct
   let a = Expr.Term.Var.mk "a" Expr.Ty.real
-
   let b = Expr.Term.Var.mk "b" Expr.Ty.real
-
   let ta = Expr.Term.of_var a
-
   let tb = Expr.Term.of_var b
-
   let c = Expr.Term.Var.mk "c" Expr.Ty.real
-
   let d = Expr.Term.Var.mk "d" Expr.Ty.real
-
   let tc = Expr.Term.of_var c
-
   let td = Expr.Term.of_var d
-
   let tadd = Expr.Term.Real.add ta tb
 
   let add d na nb =
@@ -129,18 +121,11 @@ module LastEffort = struct
     Ground.convert ~subst env tcmp
 
   let tlt = Expr.Term.Real.lt ta tb
-
   let tle = Expr.Term.Real.le ta tb
-
   let tgt = Expr.Term.Real.gt ta tb
-
   let tge = Expr.Term.Real.ge ta tb
-
   let lt env na nb = cmp tlt env na nb
-
   let le env na nb = cmp tle env na nb
-
   let gt env na nb = cmp tgt env na nb
-
   let ge env na nb = cmp tge env na nb
 end
diff --git a/src_colibri2/theories/LRA/dom_polynome.mli b/src_colibri2/theories/LRA/dom_polynome.mli
index b63f44e9cdc3f5d65ae5ca3d62998efc615ef265..8b34d2d2911c01321beae67d1b72a650597d727d 100644
--- a/src_colibri2/theories/LRA/dom_polynome.mli
+++ b/src_colibri2/theories/LRA/dom_polynome.mli
@@ -19,7 +19,6 @@
 (*************************************************************************)
 
 val assume_equality : Egraph.wt -> Node.t -> Polynome.t -> unit
-
 val get_repr : _ Egraph.t -> Node.t -> Polynome.t option
 
 val attach_repr_change :
@@ -29,7 +28,5 @@ val events_repr_change :
   _ Egraph.t -> ?node:Node.t -> (Egraph.rt -> Node.t -> Events.enqueue) -> unit
 
 val init : Egraph.wt -> unit
-
 val node_of_polynome : Egraph.wt -> Polynome.t -> Node.t
-
 val normalize : _ Egraph.t -> Polynome.t -> Polynome.t
diff --git a/src_colibri2/theories/LRA/dom_product.ml b/src_colibri2/theories/LRA/dom_product.ml
index 7cac63411ce639b7df231f7c7b3005818dd5b28f..4ce380cdd07b2e8549111296bc76f1661fd339ef 100644
--- a/src_colibri2/theories/LRA/dom_product.ml
+++ b/src_colibri2/theories/LRA/dom_product.ml
@@ -86,11 +86,8 @@ let set d cl ~old_abs ~old_sign abs sign =
 
 module rec SolveAbs : sig
   val assume_equality : Egraph.wt -> Node.t -> Product.t -> unit
-
   val init : Egraph.wt -> unit
-
   val get_repr : _ Egraph.t -> Node.t -> Product.t option
-
   val iter_eqs : _ Egraph.t -> Node.t -> f:(Product.t -> unit) -> unit
 
   val attach_repr_change :
@@ -188,11 +185,8 @@ end)
 
 and SolveSign : sig
   val assume_equality : Egraph.wt -> Node.t -> Sign_product.t -> unit
-
   val init : Egraph.wt -> unit
-
   val get_repr : _ Egraph.t -> Node.t -> Sign_product.t option
-
   val iter_eqs : _ Egraph.t -> Node.t -> f:(Sign_product.t -> unit) -> unit
 
   val attach_repr_change :
diff --git a/src_colibri2/theories/LRA/dune b/src_colibri2/theories/LRA/dune
index 48a002de33ddb7130f419a950670f99413101284..92e48fd3803ff59c1e098ff2436391aa22210ebd 100644
--- a/src_colibri2/theories/LRA/dune
+++ b/src_colibri2/theories/LRA/dune
@@ -2,18 +2,38 @@
  (name colibri2_theories_LRA)
  (public_name colibri2.theories.LRA)
  (synopsis "theories for colibri2")
- (libraries containers ocamlgraph colibri2.stdlib colibri2.popop_lib
-            colibri2.core colibri2.theories.bool
-            colibri2.theories.quantifiers
-            colibri2.theories.LRA.stages
-            ocplib-simplex
- )
+ (libraries
+  containers
+  ocamlgraph
+  colibri2.stdlib
+  colibri2.popop_lib
+  colibri2.core
+  colibri2.theories.bool
+  colibri2.theories.quantifiers
+  colibri2.theories.LRA.stages
+  ocplib-simplex)
  (preprocess
   (pps ppx_deriving.std ppx_hash))
- (flags :standard -w +a-4-42-44-48-50-58-32-60-40-9@8 -color always
-        -open Colibri2_stdlib -open Std -open Colibri2_core -open
-   Colibri2_theories_bool
-   -open Colibri2_theories_LRA_stages_def
- )
- (ocamlopt_flags :standard -O3 -bin-annot -unbox-closures
-   -unbox-closures-factor 20))
+ (flags
+  :standard
+  -w
+  +a-4-42-44-48-50-58-32-60-40-9@8
+  -color
+  always
+  -open
+  Colibri2_stdlib
+  -open
+  Std
+  -open
+  Colibri2_core
+  -open
+  Colibri2_theories_bool
+  -open
+  Colibri2_theories_LRA_stages_def)
+ (ocamlopt_flags
+  :standard
+  -O3
+  -bin-annot
+  -unbox-closures
+  -unbox-closures-factor
+  20))
diff --git a/src_colibri2/theories/LRA/fourier.ml b/src_colibri2/theories/LRA/fourier.ml
index c17a37bac248787f21e899249f5df704f0f96961..aebca2f6d14547014463333d2c8fda136fd92ee1 100644
--- a/src_colibri2/theories/LRA/fourier.ml
+++ b/src_colibri2/theories/LRA/fourier.ml
@@ -30,7 +30,6 @@ let debug =
   Debug.register_info_flag ~desc:"Reasoning about <= < in LRA" "fourier"
 
 let stats_run = Debug.register_stats_int "Fourier.run"
-
 let stats_time = Debug.register_stats_time "Fourier.time"
 
 type eq = { p : Polynome.t; bound : Bound.t; origins : Ground.S.t }
@@ -288,7 +287,6 @@ module Daemon = struct
   type runable = unit
 
   let print_runable = Unit.pp
-
   let run d () = fm d
 end
 
diff --git a/src_colibri2/theories/LRA/fourier.mli b/src_colibri2/theories/LRA/fourier.mli
index 18263c3ca59548bfcb1f8e96383d27b778286fa7..c0983bff5845b328e2f2fdc7315183a7583fb821 100644
--- a/src_colibri2/theories/LRA/fourier.mli
+++ b/src_colibri2/theories/LRA/fourier.mli
@@ -18,4 +18,4 @@
 (*  for more details (enclosed in the file licenses/LGPLv2.1).           *)
 (*************************************************************************)
 
-val init: Egraph.wt -> unit
+val init : Egraph.wt -> unit
diff --git a/src_colibri2/theories/LRA/mul.mli b/src_colibri2/theories/LRA/mul.mli
index 18263c3ca59548bfcb1f8e96383d27b778286fa7..c0983bff5845b328e2f2fdc7315183a7583fb821 100644
--- a/src_colibri2/theories/LRA/mul.mli
+++ b/src_colibri2/theories/LRA/mul.mli
@@ -18,4 +18,4 @@
 (*  for more details (enclosed in the file licenses/LGPLv2.1).           *)
 (*************************************************************************)
 
-val init: Egraph.wt -> unit
+val init : Egraph.wt -> unit
diff --git a/src_colibri2/theories/LRA/realValue.mli b/src_colibri2/theories/LRA/realValue.mli
index d70babd58e6769b24e62924b3d0d3f35e2aa8c08..4e8c8787bcf370d8de23e032c20e7f3d1ea04a55 100644
--- a/src_colibri2/theories/LRA/realValue.mli
+++ b/src_colibri2/theories/LRA/realValue.mli
@@ -27,28 +27,18 @@ module Builtin : sig
     | Sqrt
 
   val abs_real : Colibri2_core.Expr.Term.Const.t
-
   val abs_int : Colibri2_core.Expr.Term.Const.t
-
   val bv2nat : int -> Colibri2_core.Expr.Term.Const.t
 end
 
 include Value.S with type s = A.t
 
 val set : Egraph.wt -> Node.t -> A.t -> unit
-
 val cst' : A.t -> t
-
 val cst : A.t -> Node.t
-
 val zero : Node.t
-
 val init : Egraph.wt -> unit
-
 val int_sequence : Z.t Base.Sequence.t
-
 val q_sequence : _ Egraph.t -> A.t Interp.SeqLim.t
-
 val unsigned_bitv : int -> A.t -> Z.t
-
 val signed_bitv : int -> A.t -> Z.t
diff --git a/src_colibri2/theories/LRA/stages/bound.ml b/src_colibri2/theories/LRA/stages/bound.ml
index 18540b1218c53bb135f859075676399934455d27..5a6ebd20cceb60294b78f9de9c71b324f166d2aa 100644
--- a/src_colibri2/theories/LRA/stages/bound.ml
+++ b/src_colibri2/theories/LRA/stages/bound.ml
@@ -23,9 +23,6 @@ let compare_inf_sup b1 b2 =
   | Strict, Strict -> 1
 
 let compare_sup b1 b2 = -compare_inf b1 b2
-
 let compare_bounds_inf = CCOrd.pair Q.compare compare_inf
-
 let compare_bounds_sup = CCOrd.pair Q.compare compare_sup
-
 let compare_bounds_inf_sup = CCOrd.pair Q.compare compare_inf_sup
diff --git a/src_colibri2/theories/LRA/stages/bound.mli b/src_colibri2/theories/LRA/stages/bound.mli
index a27a1d33d64f4dd404e78a00671ed5ec3142f2cf..aabbb9f2041634b02aa7e24a513fac50ccd39d6d 100644
--- a/src_colibri2/theories/LRA/stages/bound.mli
+++ b/src_colibri2/theories/LRA/stages/bound.mli
@@ -1,7 +1,7 @@
-type t = | Strict | Large
+type t = Strict | Large
 
-val compare_bounds_inf: Q.t * t -> Q.t * t -> int
-val compare_bounds_sup: Q.t * t -> Q.t * t -> int
-val compare_bounds_inf_sup: Q.t * t -> Q.t * t -> int
+val compare_bounds_inf : Q.t * t -> Q.t * t -> int
+val compare_bounds_sup : Q.t * t -> Q.t * t -> int
+val compare_bounds_inf_sup : Q.t * t -> Q.t * t -> int
 
 include Colibri2_popop_lib.Popop_stdlib.Datatype with type t := t
diff --git a/src_colibri2/theories/LRA/stages/compare_stage/dune b/src_colibri2/theories/LRA/stages/compare_stage/dune
index 3ea64f92fa04017702c4128d4dbceed207584f55..e01fd13286d581662cb26ceb8006ae62fda92b77 100644
--- a/src_colibri2/theories/LRA/stages/compare_stage/dune
+++ b/src_colibri2/theories/LRA/stages/compare_stage/dune
@@ -1,11 +1,23 @@
 (library
- (name        colibri2_theories_LRA_stages_compare_stage)
- (public_name        colibri2.theories.LRA.stages.compare_stage)
- (libraries containers ocamlgraph colibri2.stdlib colibri2.popop_lib
-            colibri2.core colibri2.theories.bool
-            colibri2.theories.quantifiers colibri2.theories.LRA.stages.def)
+ (name colibri2_theories_LRA_stages_compare_stage)
+ (public_name colibri2.theories.LRA.stages.compare_stage)
+ (libraries
+  containers
+  ocamlgraph
+  colibri2.stdlib
+  colibri2.popop_lib
+  colibri2.core
+  colibri2.theories.bool
+  colibri2.theories.quantifiers
+  colibri2.theories.LRA.stages.def)
  (preprocess
   (pps ppx_deriving.std ppx_hash ppx_here))
- (flags -open Colibri2_theories_LRA_stages_def -open Colibri2_stdlib -open Std)
- (synopsis "Compare one stage with another, warning when a computation is less precise")
-)
+ (flags
+  -open
+  Colibri2_theories_LRA_stages_def
+  -open
+  Colibri2_stdlib
+  -open
+  Std)
+ (synopsis
+  "Compare one stage with another, warning when a computation is less precise"))
diff --git a/src_colibri2/theories/LRA/stages/dune b/src_colibri2/theories/LRA/stages/dune
index adbc8699013467fa4c2941a543124fca8a99c71e..3e3d76a240c1fdb0df540acb45f1c4370555b839 100644
--- a/src_colibri2/theories/LRA/stages/dune
+++ b/src_colibri2/theories/LRA/stages/dune
@@ -2,9 +2,11 @@
  (name colibri2_theories_LRA_stages)
  (public_name colibri2.theories.LRA.stages)
  (virtual_modules interval_domain)
- (libraries colibri2.popop_lib colibri2.theories.LRA.stages.def colibri2.stdlib)
- (modules interval_domain)
-)
+ (libraries
+  colibri2.popop_lib
+  colibri2.theories.LRA.stages.def
+  colibri2.stdlib)
+ (modules interval_domain))
 
 (library
  (name colibri2_theories_LRA_stages_def)
@@ -12,5 +14,4 @@
  (modules interval_sig bound)
  (libraries colibri2.popop_lib containers colibri2.stdlib)
  (preprocess
-  (pps ppx_deriving.std ppx_hash))
-)
+  (pps ppx_deriving.std ppx_hash)))
diff --git a/src_colibri2/theories/LRA/stages/stage0/dune b/src_colibri2/theories/LRA/stages/stage0/dune
index 9a8de2a2efb693452134a141beae12bbc248915e..8e55381a9f767ff3307acdc581d85fe2e547f5d6 100644
--- a/src_colibri2/theories/LRA/stages/stage0/dune
+++ b/src_colibri2/theories/LRA/stages/stage0/dune
@@ -1,11 +1,22 @@
 (library
- (name        colibri2_theories_LRA_stages_stage0_sign_domain)
+ (name colibri2_theories_LRA_stages_stage0_sign_domain)
  (public_name colibri2.theories.LRA.stages.stage0.sign_domain)
- (libraries containers ocamlgraph colibri2.stdlib colibri2.popop_lib
-            colibri2.core colibri2.theories.bool
-            colibri2.theories.quantifiers colibri2.theories.LRA.stages.def)
+ (libraries
+  containers
+  ocamlgraph
+  colibri2.stdlib
+  colibri2.popop_lib
+  colibri2.core
+  colibri2.theories.bool
+  colibri2.theories.quantifiers
+  colibri2.theories.LRA.stages.def)
  (preprocess
   (pps ppx_deriving.std ppx_hash ppx_here))
- (flags -open Colibri2_theories_LRA_stages_def -open Colibri2_stdlib -open Std)
- (synopsis "Sign domain")
-)
+ (flags
+  -open
+  Colibri2_theories_LRA_stages_def
+  -open
+  Colibri2_stdlib
+  -open
+  Std)
+ (synopsis "Sign domain"))
diff --git a/src_colibri2/theories/LRA/stages/stage0/impl/dune b/src_colibri2/theories/LRA/stages/stage0/impl/dune
index b343094b18cde46de8db5ac774b5c984bea623df..fc41a0fe62dd00348699fe16f5f70b67d7b834ef 100644
--- a/src_colibri2/theories/LRA/stages/stage0/impl/dune
+++ b/src_colibri2/theories/LRA/stages/stage0/impl/dune
@@ -1,7 +1,6 @@
 (library
- (name        colibri2_theories_LRA_stages_stage0)
+ (name colibri2_theories_LRA_stages_stage0)
  (public_name colibri2.theories.LRA.stages.stage0)
  (libraries colibri2.theories.LRA.stages.stage0.sign_domain)
  (synopsis "")
- (implements colibri2.theories.LRA.stages)
-)
+ (implements colibri2.theories.LRA.stages))
diff --git a/src_colibri2/theories/LRA/stages/stage0/sign_domain.mli b/src_colibri2/theories/LRA/stages/stage0/sign_domain.mli
index 8d9f52f998f36aa68bb51d10cde67bec02705d51..fe61b6057259ce43cf642ce4852264fa2121682d 100644
--- a/src_colibri2/theories/LRA/stages/stage0/sign_domain.mli
+++ b/src_colibri2/theories/LRA/stages/stage0/sign_domain.mli
@@ -18,10 +18,6 @@
 (*  for more details (enclosed in the file licenses/LGPLv2.1).           *)
 (*************************************************************************)
 
-type t = private {
-  pos: bool;
-  zero: bool;
-  neg: bool;
-}
+type t = private { pos : bool; zero : bool; neg : bool }
 
 include Interval_sig.S with type t := t
diff --git a/src_colibri2/theories/LRA/stages/stage1/dune b/src_colibri2/theories/LRA/stages/stage1/dune
index b5c5dfed1cc7d637b0a797d8ce56ef1bc197abee..1cbdd346bcfebb3cc77dc88cefb6f60d2d9b0f30 100644
--- a/src_colibri2/theories/LRA/stages/stage1/dune
+++ b/src_colibri2/theories/LRA/stages/stage1/dune
@@ -1,13 +1,25 @@
 (library
- (name        colibri2_theories_LRA_stages_stage1_interval_domain)
+ (name colibri2_theories_LRA_stages_stage1_interval_domain)
  (public_name colibri2.theories.LRA.stages.stage1.interval_domain)
- (libraries containers ocamlgraph colibri2.stdlib colibri2.popop_lib
-            colibri2.core colibri2.theories.bool
-            colibri2.theories.quantifiers colibri2.theories.LRA.stages.def
-            colibrics.lib
- )
+ (libraries
+  containers
+  ocamlgraph
+  colibri2.stdlib
+  colibri2.popop_lib
+  colibri2.core
+  colibri2.theories.bool
+  colibri2.theories.quantifiers
+  colibri2.theories.LRA.stages.def
+  colibrilib)
  (preprocess
   (pps ppx_deriving.std ppx_hash))
- (flags -open Colibri2_theories_LRA_stages_def -open Colibri2_stdlib -open Std -open Containers)
- (synopsis "Interval domain")
-)
+ (flags
+  -open
+  Colibri2_theories_LRA_stages_def
+  -open
+  Colibri2_stdlib
+  -open
+  Std
+  -open
+  Containers)
+ (synopsis "Interval domain"))
diff --git a/src_colibri2/theories/LRA/stages/stage1/impl/dune b/src_colibri2/theories/LRA/stages/stage1/impl/dune
index 72417483f4e2466444bafe44d4bab99568a276d1..7c7008adbecbb025ddbb5dbbd6c1ed20c4f0de47 100644
--- a/src_colibri2/theories/LRA/stages/stage1/impl/dune
+++ b/src_colibri2/theories/LRA/stages/stage1/impl/dune
@@ -1,6 +1,5 @@
 (library
- (name        colibri2_theories_LRA_stages_stage1)
+ (name colibri2_theories_LRA_stages_stage1)
  (public_name colibri2.theories.LRA.stages.stage1)
  (libraries colibri2.theories.LRA.stages.stage1.interval_domain)
- (implements colibri2.theories.LRA.stages)
-)
+ (implements colibri2.theories.LRA.stages))
diff --git a/src_colibri2/theories/LRA/stages/stage1/interval.ml b/src_colibri2/theories/LRA/stages/stage1/interval.ml
index dba566cc0f2aeb34548b8e267b4bb1a0b621d07d..4fb102b07d9df79f4a7e58727bbf05774c6eac03 100644
--- a/src_colibri2/theories/LRA/stages/stage1/interval.ml
+++ b/src_colibri2/theories/LRA/stages/stage1/interval.ml
@@ -21,12 +21,12 @@
 open Colibri2_popop_lib
 open Colibri2_stdlib.Std
 
-let compare_ord a b : Colibrics_lib.Ord.t =
+let compare_ord a b : Colibrilib.Ord.t =
   let c = A.compare a b in
   Int.(if c = 0 then Eq else if c <= 0 then Lt else Gt)
 
 module Convexe = struct
-  module Convexe = Colibrics_lib.Interval.Convexe.Make (struct
+  module Convexe = Colibrilib.Interval.Convexe.Make (struct
     include A
 
     let infix_eq = equal
@@ -45,7 +45,7 @@ module Convexe = struct
   include Convexe
 
   include struct
-    type bound = Colibrics_lib.Interval.Bound.t = Strict | Large
+    type bound = Colibrilib.Interval.Bound.t = Strict | Large
     [@@deriving eq, ord, hash]
 
     type t = Convexe.t =
@@ -87,11 +87,11 @@ module Convexe = struct
 
   let invariant _ = true (* proved in why3 *)
 
-  let of_bound : Colibrics_lib.Interval.Bound.t -> Bound.t = function
+  let of_bound : Colibrilib.Interval.Bound.t -> Bound.t = function
     | Strict -> Strict
     | Large -> Large
 
-  let to_bound : Bound.t -> Colibrics_lib.Interval.Bound.t = function
+  let to_bound : Bound.t -> Colibrilib.Interval.Bound.t = function
     | Strict -> Strict
     | Large -> Large
 
@@ -207,11 +207,11 @@ module ConvexeWithDivider = struct
       in
       let minb,minv =
         round ~add:A.add
-          ~divisible_up_to:Colibrics_lib.QUtils.divisible_up_to
+          ~divisible_up_to:Colibrilib.QUtils.divisible_up_to
           ~minus_inf:A.minus_inf ~minv:e.c.Convexe.minv ~minb:e.c.Convexe.minb
       in
       let maxb,maxv =
-        round ~add:A.sub ~divisible_up_to:Colibrics_lib.QUtils.divisible_down_to
+        round ~add:A.sub ~divisible_up_to:Colibrilib.QUtils.divisible_down_to
           ~minus_inf:A.inf ~minv:e.c.Convexe.maxv ~minb:e.c.Convexe.maxb
       in
       if A.lt maxv minv
@@ -239,7 +239,7 @@ module ConvexeWithDivider = struct
 
   let divisible q d =
     A.equal d A.zero ||
-    Colibrics_lib.QUtils.divisible q d
+    Colibrilib.QUtils.divisible q d
 
   let is_included e1 e2 =
     Convexe.is_included e1.c e2.c &&
@@ -257,21 +257,21 @@ module ConvexeWithDivider = struct
   let mult_cst q e =
     assert (A.is_real q);
     { c = Convexe.mult_cst q e.c;
-      divider = A.abs (Colibrics_lib.QUtils.mult_cst_divisible e.divider q) }
+      divider = A.abs (Colibrilib.QUtils.mult_cst_divisible e.divider q) }
 
   let add_cst q e =
     if A.equal q A.zero then e
     else
-      let divider = Colibrics_lib.QUtils.union_divisible q e.divider in
+      let divider = Colibrilib.QUtils.union_divisible q e.divider in
       { c = Convexe.add_cst q e.c; divider }
 
   let add e1 e2 =
     { c = Convexe.add e1.c e2.c;
-      divider = Colibrics_lib.QUtils.union_divisible e1.divider e2.divider }
+      divider = Colibrilib.QUtils.union_divisible e1.divider e2.divider }
 
   let minus e1 e2 =
     { c = Convexe.minus e1.c e2.c;
-      divider = Colibrics_lib.QUtils.union_divisible e1.divider e2.divider }
+      divider = Colibrilib.QUtils.union_divisible e1.divider e2.divider }
 
   let div_unknown c = { c; divider = A.zero }
 
@@ -285,14 +285,14 @@ module ConvexeWithDivider = struct
 
   let union e1 e2 =
     { c = Convexe.union e1.c e2.c;
-      divider = Colibrics_lib.QUtils.union_divisible e1.divider e2.divider }
+      divider = Colibrilib.QUtils.union_divisible e1.divider e2.divider }
 
   let inter e1 e2 =
     match Convexe.inter e1.c e2.c with
     | None -> None
     | Some c ->
       tighten_bounds
-        { c; divider = Colibrics_lib.QUtils.inter_divisible e1.divider e2.divider }
+        { c; divider = Colibrilib.QUtils.inter_divisible e1.divider e2.divider }
 
   (** intersection set.
       if the two arguments are equals, return the second
@@ -308,7 +308,7 @@ module ConvexeWithDivider = struct
     let q = Convexe.choose e.c in
     if A.equal e.divider A.zero
     then q
-    else Colibrics_lib.QUtils.divisible_down_to q e.divider
+    else Colibrilib.QUtils.divisible_down_to q e.divider
 
   let split_heuristic e =
     let rec aux divider c  =
diff --git a/src_colibri2/theories/LRA/stages/stage2/dune b/src_colibri2/theories/LRA/stages/stage2/dune
index 8c5acfbb712f5bba1c0af81582a1130b3189dee3..58839ed0aad1f86a35ed055f0dd6dc8a743d6601 100644
--- a/src_colibri2/theories/LRA/stages/stage2/dune
+++ b/src_colibri2/theories/LRA/stages/stage2/dune
@@ -1,14 +1,27 @@
 (library
- (name        colibri2_theories_LRA_stages_stage2_union_domain)
+ (name colibri2_theories_LRA_stages_stage2_union_domain)
  (public_name colibri2.theories.LRA.stages.stage2.union_domain)
- (libraries containers ocamlgraph colibri2.stdlib colibri2.popop_lib
-            colibri2.core colibri2.theories.bool
-            colibri2.theories.quantifiers colibri2.theories.LRA.stages.def
-            colibrics.lib qcheck-core
- )
+ (libraries
+  containers
+  ocamlgraph
+  colibri2.stdlib
+  colibri2.popop_lib
+  colibri2.core
+  colibri2.theories.bool
+  colibri2.theories.quantifiers
+  colibri2.theories.LRA.stages.def
+  colibrilib
+  qcheck-core)
  (preprocess
   (pps ppx_deriving.std ppx_hash ppx_inline_test))
- (flags -open Colibri2_theories_LRA_stages_def -open Colibri2_stdlib -open Std -open Containers)
+ (flags
+  -open
+  Colibri2_theories_LRA_stages_def
+  -open
+  Colibri2_stdlib
+  -open
+  Std
+  -open
+  Containers)
  (synopsis "Union of intervals domain")
-  (inline_tests)
-)
+ (inline_tests))
diff --git a/src_colibri2/theories/LRA/stages/stage2/impl/dune b/src_colibri2/theories/LRA/stages/stage2/impl/dune
index 9e8715c4b8ef47f811bf66de6e02440cb8fc04c5..65f249b66925676e91075006e4309fe77562c685 100644
--- a/src_colibri2/theories/LRA/stages/stage2/impl/dune
+++ b/src_colibri2/theories/LRA/stages/stage2/impl/dune
@@ -1,9 +1,9 @@
 (library
- (name        colibri2_theories_LRA_stages_stage2)
+ (name colibri2_theories_LRA_stages_stage2)
  (public_name colibri2.theories.LRA.stages.stage2)
- (libraries colibri2.theories.LRA.stages.stage2.union_domain
-;            colibri2.theories.LRA.stages.stage0.sign_domain
-;            colibri2.theories.LRA.stages.compare_stage
- )
- (implements colibri2.theories.LRA.stages)
-)
+ (libraries
+  colibri2.theories.LRA.stages.stage2.union_domain
+  ;            colibri2.theories.LRA.stages.stage0.sign_domain
+  ;            colibri2.theories.LRA.stages.compare_stage
+  )
+ (implements colibri2.theories.LRA.stages))
diff --git a/src_colibri2/theories/LRA/stages/stage2/union.ml b/src_colibri2/theories/LRA/stages/stage2/union.ml
index 5e852cbc85c09704ae943fe9a5681eb71a988fe7..0aae81546b70d804d93ae444833bc87602b365ba 100644
--- a/src_colibri2/theories/LRA/stages/stage2/union.ml
+++ b/src_colibri2/theories/LRA/stages/stage2/union.ml
@@ -21,11 +21,11 @@
 open Colibri2_popop_lib
 open Colibri2_stdlib.Std
 
-let compare_ord a b : Colibrics_lib.Ord.t =
+let compare_ord a b : Colibrilib.Ord.t =
   let c = A.compare a b in
   Int.(if c = 0 then Eq else if c <= 0 then Lt else Gt)
 
-module P = Colibrics_lib.Interval.Union.Make (struct
+module P = Colibrilib.Interval.Union.Make (struct
   include A
 
   let infix_eq = equal
@@ -48,7 +48,7 @@ include struct
 
   let gen_q = A.gen
 
-  type bound = Colibrics_lib.Interval.Bound.t = Strict | Large
+  type bound = Colibrilib.Interval.Bound.t = Strict | Large
   [@@deriving eq, ord, hash]
 
   let gen_bound =
@@ -196,14 +196,13 @@ include Popop_stdlib.MkDatatype (struct
 end)
 
 let invariant _ = true (* proved in why3 *)
-
 let inv : Bound.t -> Bound.t = function Strict -> Large | Large -> Strict
 
-let of_bound : Colibrics_lib.Interval.Bound.t -> Bound.t = function
+let of_bound : Colibrilib.Interval.Bound.t -> Bound.t = function
   | Strict -> Strict
   | Large -> Large
 
-let to_bound : Bound.t -> Colibrics_lib.Interval.Bound.t = function
+let to_bound : Bound.t -> Colibrilib.Interval.Bound.t = function
   | Strict -> Strict
   | Large -> Large
 
@@ -450,7 +449,7 @@ let rec mult_cst_neg if_ (x : A.t) (l0 : t'') (l : t'') : t' =
   | Sin (q, l') -> mult_cst_neg if_ x (Sin (A.(x * q), l0)) l'
   | End (q, bv, l') ->
       mult_cst_neg (not if_) x
-        (End (A.(x * q), Colibrics_lib__Interval__Bound.inv_bound bv, l0))
+        (End (A.(x * q), Colibrilib__Interval__Bound.inv_bound bv, l0))
         l'
   | Inf -> if if_ then On l0 else Off l0
 
diff --git a/src_colibri2/theories/bool/dune b/src_colibri2/theories/bool/dune
index 41ff0647bdcfaef12cc831e7295ef4fed195c9cd..8927926f2c775a5fa79ac81ab3d7e1b30a4ac3d1 100644
--- a/src_colibri2/theories/bool/dune
+++ b/src_colibri2/theories/bool/dune
@@ -3,11 +3,33 @@
  (public_name colibri2.theories.bool)
  (synopsis "theories for colibri2")
  (modules Boolean Equality)
- (libraries containers ocamlgraph colibri2.stdlib colibri2.popop_lib
-  colibri2.core dolmen.std)
+ (libraries
+  containers
+  ocamlgraph
+  colibri2.stdlib
+  colibri2.popop_lib
+  colibri2.core
+  dolmen.std)
  (preprocess
   (pps ppx_deriving.std ppx_hash))
- (flags :standard -w +a-4-42-44-48-50-58-32-60-40-9@8 -color always -open
-   Containers -open Colibri2_stdlib -open Std -open Colibri2_core)
- (ocamlopt_flags :standard -O3 -bin-annot -unbox-closures
-   -unbox-closures-factor 20))
+ (flags
+  :standard
+  -w
+  +a-4-42-44-48-50-58-32-60-40-9@8
+  -color
+  always
+  -open
+  Containers
+  -open
+  Colibri2_stdlib
+  -open
+  Std
+  -open
+  Colibri2_core)
+ (ocamlopt_flags
+  :standard
+  -O3
+  -bin-annot
+  -unbox-closures
+  -unbox-closures-factor
+  20))
diff --git a/src_colibri2/theories/bool/equality.ml b/src_colibri2/theories/bool/equality.ml
index 4a5de9a9605bd36a031cb3bde68513ab20c4cc61..8ca23c13b6948282604a4e1ff560f1fb6ddffdfd 100644
--- a/src_colibri2/theories/bool/equality.ml
+++ b/src_colibri2/theories/bool/equality.ml
@@ -73,39 +73,25 @@ module ThE = ThTerm.Register (Th)
 
 module Dis : sig
   type t
-
   type elt
 
   val pp : t Format.printer
-
   val pp_elt : elt Format.printer
-
   val empty : t
-
   val of_node : ThE.t -> elt
-
   val to_node : elt -> ThE.t
-
   val test_disjoint : (elt -> unit) -> t -> t -> t
-
   val disjoint : t -> t -> bool
-
   val singleton : elt -> t
-
   val inter : t -> t -> t
-
   val is_empty : t -> bool
-
   val choose : t -> elt
-
   val iter : (elt -> unit) -> t -> unit
 end = struct
   type t = ThE.S.t
-
   type elt = ThE.t
 
   let empty = ThE.S.empty
-
   let pp_elt = ThE.pp
 
   let pp fmt s =
@@ -119,7 +105,6 @@ end = struct
     Format.fprintf fmt "{%a}" aux s
 
   let of_node x = x
-
   let to_node x = x
 
   let test_disjoint f m1 m2 =
@@ -130,15 +115,10 @@ end = struct
       m1 m2
 
   let disjoint = ThE.S.disjoint
-
   let singleton = ThE.S.singleton
-
   let is_empty = ThE.S.is_empty
-
   let inter m1 m2 = ThE.S.inter m1 m2
-
   let choose m1 = ThE.S.choose m1
-
   let iter = ThE.S.iter
 end
 
@@ -180,7 +160,6 @@ module D = struct
         Egraph.set_dom d dom cl2 s
 
   let pp fmt s = Dis.pp fmt s
-
   let key = dom
 end
 
@@ -217,11 +196,8 @@ let equality_iter f _ cll =
   with Exit -> Boolean._true
 
 let equality d cl1 = equality_iter (fun _ -> ()) d cl1
-
 let disequality d cll = Boolean._not d (equality d cll)
-
 let disequality_iter f d cll = Boolean._not d (equality_iter f d cll)
-
 let is_equal t cl1 cl2 = Egraph.is_equal t cl1 cl2
 
 let is_disequal t cl1 cl2 =
@@ -378,9 +354,7 @@ module DaemonPropa = DaemonWithKey.Register (struct
   module Key = ThE
 
   let delay = Events.Delayed_by 1
-
   let run = norm_dom
-
   let name = "Equality.DaemonPropa"
 end)
 
@@ -414,7 +388,6 @@ let simplify d own cond then_ else_ =
   Egraph.merge d own branch
 
 let delay = Events.Delayed_by 1
-
 let thrttle = 100
 
 let new_ite d own cond then_ else_ ty =
diff --git a/src_colibri2/theories/bool/equality.mli b/src_colibri2/theories/bool/equality.mli
index 6179b4e1130d0b1f1b307d4fc87262ce1757d561..8faae6db70c9434ce68cc90358fe5705bc83076c 100644
--- a/src_colibri2/theories/bool/equality.mli
+++ b/src_colibri2/theories/bool/equality.mli
@@ -19,11 +19,8 @@
 (*************************************************************************)
 
 val equality : _ Egraph.t -> Node.t list -> Node.t
-
 val disequality : _ Egraph.t -> Node.t list -> Node.t
-
 val is_equal : _ Egraph.t -> Node.t -> Node.t -> bool
-
 val is_disequal : _ Egraph.t -> Node.t -> Node.t -> bool
 
 val iter_on_value_different :
diff --git a/src_colibri2/theories/quantifier/common.ml b/src_colibri2/theories/quantifier/common.ml
index 810256b9bfa867cc20eadee62a506b6dd2939d03..54a1fe8d8c6adf6859bd8ea9e892f2a6662abb0d 100644
--- a/src_colibri2/theories/quantifier/common.ml
+++ b/src_colibri2/theories/quantifier/common.ml
@@ -25,9 +25,6 @@ let debug_full =
   Debug.register_flag ~desc:"Handling of quantifiers full" "quantifiers.full"
 
 let nb_instantiation = Debug.register_stats_int "instantiation"
-
 let nb_eager_instantiation = Debug.register_stats_int "eager_instantiation"
-
 let nb_delayed_instantiation = Debug.register_stats_int "delayed_instantiation"
-
 let nb_new_instantiation = Debug.register_stats_int "new_instantiation"
diff --git a/src_colibri2/theories/quantifier/dune b/src_colibri2/theories/quantifier/dune
index 747afb861972626f12c16f512afaf2a2cb18d9aa..a4767973d5783cdcc57ab6918f212e0b764377ce 100644
--- a/src_colibri2/theories/quantifier/dune
+++ b/src_colibri2/theories/quantifier/dune
@@ -2,11 +2,30 @@
  (name colibri2_theories_quantifiers)
  (public_name colibri2.theories.quantifiers)
  (synopsis "theories for colibri2")
- (libraries containers base ocamlgraph colibri2.stdlib colibri2.popop_lib
-  colibri2.core colibri2.theories.bool)
+ (libraries
+  containers
+  base
+  ocamlgraph
+  colibri2.stdlib
+  colibri2.popop_lib
+  colibri2.core
+  colibri2.theories.bool)
  (preprocess
   (pps ppx_deriving.std ppx_hash))
- (flags :standard -open Colibri2_stdlib -open Std -open
-   Colibri2_core -open Colibri2_theories_bool)
- (ocamlopt_flags :standard -O3 -bin-annot -unbox-closures
-   -unbox-closures-factor 20))
+ (flags
+  :standard
+  -open
+  Colibri2_stdlib
+  -open
+  Std
+  -open
+  Colibri2_core
+  -open
+  Colibri2_theories_bool)
+ (ocamlopt_flags
+  :standard
+  -O3
+  -bin-annot
+  -unbox-closures
+  -unbox-closures-factor
+  20))
diff --git a/src_colibri2/theories/quantifier/info.mli b/src_colibri2/theories/quantifier/info.mli
index 11725caba5024391255a93a920a9557c8feded90..cfe519e74a7ded3b87ee34004b64ff8d35924221 100644
--- a/src_colibri2/theories/quantifier/info.mli
+++ b/src_colibri2/theories/quantifier/info.mli
@@ -28,5 +28,4 @@ val merge : Egraph.wt -> other:Node.t -> repr:Node.t -> t -> t -> t
 (** merge the information and apply congruence closure on the parents *)
 
 val empty : t
-
 val dom : t Dom.Kind.t
diff --git a/src_colibri2/theories/quantifier/quantifier.ml b/src_colibri2/theories/quantifier/quantifier.ml
index f300a9d44a30e3a984eb974383e0e915cb5416a5..57eb1da18d84f35089b76cdb3d660711eef1433b 100644
--- a/src_colibri2/theories/quantifier/quantifier.ml
+++ b/src_colibri2/theories/quantifier/quantifier.ml
@@ -156,7 +156,6 @@ module Delayed_find_new_event = struct
   type runable = Node.t * InvertedPath.t list [@@deriving show]
 
   let print_runable = pp_runable
-
   let run d (n, ips) = process_inverted_path d n ips
 end
 
diff --git a/src_colibri2/theories/quantifier/uninterp.mli b/src_colibri2/theories/quantifier/uninterp.mli
index 327cae09181eebee340da5ddcbfe651c2e79a6e2..ba45d67c9fdeb68b55ea09228d206545e3618102 100644
--- a/src_colibri2/theories/quantifier/uninterp.mli
+++ b/src_colibri2/theories/quantifier/uninterp.mli
@@ -55,8 +55,6 @@ module On_uninterpreted_domain : sig
   (** For model fixing *)
 
   val propagate : Egraph.wt -> Ground.t -> unit
-
   val check : Egraph.rt -> Ground.t -> bool
-
   val compute : Egraph.rt -> Ground.t -> Interp.compute
 end
diff --git a/src_common/colibrics_lib.ml b/src_common/colibrilib.ml
similarity index 100%
rename from src_common/colibrics_lib.ml
rename to src_common/colibrilib.ml
diff --git a/src_common/dune b/src_common/dune
index d0906686a7421be386c527f572f56923e5f0a702..bf15786906ce443972807dddef155726de0deb37 100644
--- a/src_common/dune
+++ b/src_common/dune
@@ -1,6 +1,6 @@
 (library
- (public_name colibrics.lib)
- (name colibrics_lib)
+ (public_name colibrilib)
+ (name colibrilib)
  (libraries zarith)
  (flags -w -27-26-49))
 
@@ -15,16 +15,39 @@
  (targets modulo__Divisible.ml)
  (deps q.mlw modulo.mlw)
  (action
-  (run why3 extract -D ocaml64 -D %{dep:common.drv} --modular -o . -L .
-    modulo.Divisible))
+  (run
+   why3
+   extract
+   -D
+   ocaml64
+   -D
+   %{dep:common.drv}
+   --modular
+   -o
+   .
+   -L
+   .
+   modulo.Divisible))
  (mode promote))
 
 (rule
  (targets interval__Convexe.ml interval__Bound.ml)
  (deps q.mlw interval.mlw)
  (action
-  (run why3 extract -D ocaml64 -D %{dep:common.drv} --modular -o . -L .
-    interval.Convexe interval.Bound))
+  (run
+   why3
+   extract
+   -D
+   ocaml64
+   -D
+   %{dep:common.drv}
+   --modular
+   -o
+   .
+   -L
+   .
+   interval.Convexe
+   interval.Bound))
  (mode promote))
 
 ; (rule
@@ -39,20 +62,29 @@
  (targets union__Union.ml)
  (deps q.mlw interval.mlw union.mlw)
  (action
-  (run why3 extract -D ocaml64 -D %{dep:common.drv} --modular -o . -L .
-    union.Union))
+  (run
+   why3
+   extract
+   -D
+   ocaml64
+   -D
+   %{dep:common.drv}
+   --modular
+   -o
+   .
+   -L
+   .
+   union.Union))
  (mode promote))
 
-
 (rule
  (alias runproof)
  (deps
   ../src_colibri2/bin/colibri2_stage0.exe
   (source_tree q)
-   q.mlw
-   why3.conf
-   colibri2.drv
- )
+  q.mlw
+  why3.conf
+  colibri2.drv)
  (action
   (run why3 replay -C why3.conf -L . q)))
 
@@ -61,25 +93,24 @@
  (deps
   ../src_colibri2/bin/colibri2_stage0.exe
   (source_tree union)
-   q.mlw
-   interval.mlw
-   union.mlw
-   why3.conf
-   colibri2.drv
- )
+  q.mlw
+  interval.mlw
+  union.mlw
+  why3.conf
+  colibri2.drv)
  (action
   (run why3 replay -C why3.conf -L . union)))
 
 (rule
  (target why3.conf)
- (deps
-  ../src_colibri2/bin/colibri2_stage0.exe)
+ (deps ../src_colibri2/bin/colibri2_stage0.exe)
  (action
-   (progn (run touch why3.conf)
-    (system "why3 config add-prover -C why3.conf Colibri2 $(realpath ../src_colibri2/bin/colibri2_stage0.exe)")
- ))
- (mode (promote (until-clean)))
-)
+  (progn
+   (run touch why3.conf)
+   (system
+    "why3 config add-prover -C why3.conf Colibri2 $(realpath ../src_colibri2/bin/colibri2_stage0.exe)")))
+ (mode
+  (promote (until-clean))))
 
 ; (rule
 ;  (alias runproof)
@@ -100,7 +131,6 @@
 ;  (action
 ;   (run why3 replay -L . interval)))
 
-
 ; (rule
 ;  (alias ide:q)
 ;  (deps (universe) q.mlw)
@@ -146,7 +176,6 @@
  (action
   (run why3 replay -L . interval --smoke-detector deep)))
 
-
 (rule
  (alias runsmokedetector)
  (deps
diff --git a/src_common/float_interval/why3session.xml b/src_common/float_interval/why3session.xml
new file mode 100644
index 0000000000000000000000000000000000000000..23f3b80bbcbcd13fbf8d7e98185d7554a9d734be
--- /dev/null
+++ b/src_common/float_interval/why3session.xml
@@ -0,0 +1,629 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
+"http://why3.lri.fr/why3session.dtd">
+<why3session shape_version="6">
+<prover id="0" name="Colibri2" version="n/a" timelimit="5" steplimit="0" memlimit="1000"/>
+<file format="whyml">
+<path name=".."/><path name="float_interval.mlw"/>
+<theory name="GenericFloat">
+ <goal name="finite&#39;vc" expl="VC for finite">
+ </goal>
+ <goal name="le_lt_trans">
+ </goal>
+ <goal name="lt_le_trans">
+ </goal>
+ <goal name="le_ge_asym">
+ </goal>
+ <goal name="not_lt_ge">
+ </goal>
+ <goal name="not_gt_le">
+ </goal>
+ <goal name="diff_sign_trans">
+ </goal>
+ <goal name="diff_sign_product">
+ </goal>
+ <goal name="same_sign_product">
+ </goal>
+ <goal name="add_finite_rev">
+ </goal>
+ <goal name="add_finite_rev_n">
+ </goal>
+ <goal name="sub_finite_rev">
+ </goal>
+ <goal name="sub_finite_rev_n">
+ </goal>
+ <goal name="mul_finite_rev">
+ </goal>
+ <goal name="mul_finite_rev_n">
+ </goal>
+ <goal name="div_finite_rev">
+ </goal>
+ <goal name="div_finite_rev_n">
+ </goal>
+ <goal name="neg_finite_rev">
+ </goal>
+ <goal name="abs_finite_rev">
+ </goal>
+ <goal name="fma_finite_rev">
+ </goal>
+ <goal name="fma_finite_rev_n">
+ </goal>
+ <goal name="sqrt_finite_rev">
+ </goal>
+ <goal name="Min_r">
+ </goal>
+ <goal name="Min_l">
+ </goal>
+ <goal name="Max_r">
+ </goal>
+ <goal name="Max_l">
+ </goal>
+</theory>
+<theory name="Float_interval">
+ <goal name="Test2" proved="true">
+ <proof prover="0"><result status="valid" time="0.14"/></proof>
+ <transf name="split_vc" >
+  <goal name="Test2.0">
+  <transf name="instantiate" arg1="is_not_finite" arg2="f1">
+   <goal name="Test2.0.0">
+   <proof prover="0" obsolete="true"><result status="valid" time="0.05"/></proof>
+   </goal>
+  </transf>
+  </goal>
+ </transf>
+ </goal>
+ <goal name="Test" proved="true">
+ <proof prover="0"><result status="valid" time="0.17"/></proof>
+ <transf name="split_vc" >
+  <goal name="Test.0">
+  <transf name="instantiate" arg1="add_special" arg2="m, f1, f2">
+   <goal name="Test.0.0">
+   <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+   </goal>
+  </transf>
+  </goal>
+ </transf>
+ </goal>
+ <goal name="G1" proved="true">
+ <proof prover="0"><path name="float_interval-Float_interval-G1_1.psmt2"/><result status="timeout" time="5.00"/></proof>
+ <transf name="split_vc" proved="true" >
+  <goal name="G1.0" proved="true">
+  <transf name="unfold" proved="true" arg1="is_plus_infinity" arg2="in" arg3="H">
+   <goal name="G1.0.0" proved="true">
+   <transf name="destruct_term" proved="true" arg1="f">
+    <goal name="G1.0.0.0" proved="true">
+    <proof prover="0"><result status="valid" time="0.05"/></proof>
+    </goal>
+    <goal name="G1.0.0.1" proved="true">
+    <proof prover="0"><result status="valid" time="0.04"/></proof>
+    </goal>
+    <goal name="G1.0.0.2" proved="true">
+    <proof prover="0"><result status="valid" time="0.09"/></proof>
+    </goal>
+    <goal name="G1.0.0.3" proved="true">
+    <proof prover="0"><result status="valid" time="0.05"/></proof>
+    </goal>
+   </transf>
+   </goal>
+  </transf>
+  </goal>
+ </transf>
+ </goal>
+ <goal name="test3&#39;vc" expl="VC for test3">
+ <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+ <transf name="split_vc" >
+  <goal name="test3&#39;vc.0" expl="assertion">
+  <proof prover="0" obsolete="true"><result status="valid" time="0.21"/></proof>
+  </goal>
+  <goal name="test3&#39;vc.1" expl="assertion">
+  <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+  <transf name="split_vc" >
+   <goal name="test3&#39;vc.1.0" expl="assertion">
+   <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+   </goal>
+  </transf>
+  </goal>
+  <goal name="test3&#39;vc.2" expl="assertion">
+  <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+  <transf name="split_vc" >
+   <goal name="test3&#39;vc.2.0" expl="assertion">
+   <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+   </goal>
+  </transf>
+  </goal>
+  <goal name="test3&#39;vc.3" expl="assertion">
+  <transf name="split_vc" >
+   <goal name="test3&#39;vc.3.0" expl="assertion">
+   <proof prover="0" obsolete="true"><result status="valid" time="0.24"/></proof>
+   </goal>
+   <goal name="test3&#39;vc.3.1" expl="postcondition">
+   <proof prover="0"><path name="float_interval-Float_interval-test3qtvc_1.psmt2"/><undone/></proof>
+   </goal>
+   <goal name="test3&#39;vc.3.2" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+   <goal name="test3&#39;vc.3.3" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+   <goal name="test3&#39;vc.3.4" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+   <goal name="test3&#39;vc.3.5" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+   <goal name="test3&#39;vc.3.6" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+   <goal name="test3&#39;vc.3.7" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+   <goal name="test3&#39;vc.3.8" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+   <goal name="test3&#39;vc.3.9" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+   <goal name="test3&#39;vc.3.10" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+  </transf>
+  </goal>
+  <goal name="test3&#39;vc.4" expl="postcondition">
+  <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+  </goal>
+  <goal name="test3&#39;vc.5" expl="postcondition">
+  <transf name="split_vc" >
+   <goal name="test3&#39;vc.5.0" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+   <goal name="test3&#39;vc.5.1" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+   <goal name="test3&#39;vc.5.2" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+   <goal name="test3&#39;vc.5.3" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+   <goal name="test3&#39;vc.5.4" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+   <goal name="test3&#39;vc.5.5" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+   <goal name="test3&#39;vc.5.6" expl="postcondition">
+   <proof prover="0"><undone/></proof>
+   </goal>
+  </transf>
+  </goal>
+ </transf>
+ </goal>
+ <goal name="cadd&#39;vc" expl="VC for cadd">
+ <transf name="split_vc" >
+  <goal name="cadd&#39;vc.0" expl="assertion">
+  <proof prover="0" obsolete="true"><result status="valid" time="0.47"/></proof>
+  </goal>
+  <goal name="cadd&#39;vc.1" expl="assertion">
+  <proof prover="0" obsolete="true"><result status="valid" time="0.91"/></proof>
+  </goal>
+  <goal name="cadd&#39;vc.2" expl="assertion">
+  <proof prover="0" obsolete="true"><result status="valid" time="0.78"/></proof>
+  </goal>
+  <goal name="cadd&#39;vc.3" expl="assertion">
+  <proof prover="0" obsolete="true"><result status="valid" time="0.30"/></proof>
+  </goal>
+  <goal name="cadd&#39;vc.4" expl="assertion">
+  <transf name="split_vc" >
+   <goal name="cadd&#39;vc.4.0" expl="assertion">
+   <proof prover="0" obsolete="true"><result status="valid" time="0.35"/></proof>
+   </goal>
+  </transf>
+  </goal>
+  <goal name="cadd&#39;vc.5" expl="assertion">
+  <proof prover="0" obsolete="true"><result status="valid" time="0.27"/></proof>
+  </goal>
+  <goal name="cadd&#39;vc.6" expl="assertion">
+  <proof prover="0" obsolete="true"><result status="valid" time="0.29"/></proof>
+  </goal>
+  <goal name="cadd&#39;vc.7" expl="assertion">
+  <transf name="split_vc" >
+   <goal name="cadd&#39;vc.7.0" expl="assertion">
+   <proof prover="0" obsolete="true"><result status="valid" time="0.26"/></proof>
+   </goal>
+  </transf>
+  </goal>
+  <goal name="cadd&#39;vc.8" expl="assertion">
+  <transf name="split_vc" >
+   <goal name="cadd&#39;vc.8.0" expl="assertion">
+   <proof prover="0" obsolete="true"><result status="valid" time="0.50"/></proof>
+   </goal>
+  </transf>
+  </goal>
+  <goal name="cadd&#39;vc.9" expl="assertion">
+  <proof prover="0" obsolete="true"><result status="valid" time="0.37"/></proof>
+  </goal>
+  <goal name="cadd&#39;vc.10" expl="assertion">
+  <proof prover="0" obsolete="true"><result status="valid" time="0.27"/></proof>
+  </goal>
+  <goal name="cadd&#39;vc.11" expl="assertion">
+  <transf name="split_vc" >
+   <goal name="cadd&#39;vc.11.0" expl="assertion">
+   <proof prover="0" obsolete="true"><result status="valid" time="0.28"/></proof>
+   </goal>
+  </transf>
+  </goal>
+  <goal name="cadd&#39;vc.12" expl="assertion">
+  <transf name="split_vc" >
+   <goal name="cadd&#39;vc.12.0" expl="assertion">
+   <proof prover="0" obsolete="true"><result status="valid" time="0.27"/></proof>
+   </goal>
+  </transf>
+  </goal>
+  <goal name="cadd&#39;vc.13" expl="assertion">
+  <transf name="split_vc" >
+   <goal name="cadd&#39;vc.13.0" expl="assertion">
+   <proof prover="0" obsolete="true"><result status="valid" time="0.80"/></proof>
+   </goal>
+  </transf>
+  </goal>
+  <goal name="cadd&#39;vc.14" expl="assertion">
+  <transf name="split_vc" >
+   <goal name="cadd&#39;vc.14.0" expl="assertion">
+   <proof prover="0" obsolete="true"><result status="valid" time="2.31"/></proof>
+   </goal>
+  </transf>
+  </goal>
+  <goal name="cadd&#39;vc.15" expl="postcondition">
+  <transf name="split_vc" >
+   <goal name="cadd&#39;vc.15.0" expl="postcondition">
+   <proof prover="0" obsolete="true"><result status="valid" time="0.10"/></proof>
+   </goal>
+   <goal name="cadd&#39;vc.15.1" expl="postcondition">
+   <proof prover="0" obsolete="true"><result status="valid" time="0.11"/></proof>
+   </goal>
+   <goal name="cadd&#39;vc.15.2" expl="postcondition">
+   <proof prover="0" obsolete="true"><result status="valid" time="0.10"/></proof>
+   </goal>
+   <goal name="cadd&#39;vc.15.3" expl="postcondition">
+   <proof prover="0" obsolete="true"><result status="valid" time="1.22"/></proof>
+   </goal>
+   <goal name="cadd&#39;vc.15.4" expl="postcondition">
+   <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+   <transf name="case" arg1="(is_plus_infinity (f1 .+ f2))">
+    <goal name="cadd&#39;vc.15.4.0" expl="true case (postcondition)">
+    <proof prover="0" obsolete="true"><result status="valid" time="2.21"/></proof>
+    </goal>
+    <goal name="cadd&#39;vc.15.4.1" expl="false case (postcondition)">
+    <proof prover="0" obsolete="true"><result status="valid" time="1.71"/></proof>
+    </goal>
+   </transf>
+   <transf name="eliminate_let" >
+    <goal name="cadd&#39;vc.15.4.0" expl="postcondition">
+    <transf name="instantiate" arg1="H3" arg2="f1,f2">
+     <goal name="cadd&#39;vc.15.4.0.0" expl="postcondition">
+     <proof prover="0" obsolete="true"><result status="valid" time="2.42"/></proof>
+     </goal>
+    </transf>
+    </goal>
+   </transf>
+   </goal>
+   <goal name="cadd&#39;vc.15.5" expl="postcondition">
+   <proof prover="0" obsolete="true"><result status="valid" time="3.04"/></proof>
+   </goal>
+   <goal name="cadd&#39;vc.15.6" expl="postcondition">
+   <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+   <transf name="case" arg1="(is_plus_infinity x1)">
+    <goal name="cadd&#39;vc.15.6.0" expl="true case (postcondition)">
+    <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+    <transf name="case" arg1="(is_plus_infinity x4)">
+     <goal name="cadd&#39;vc.15.6.0.0" expl="true case (postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     </goal>
+     <goal name="cadd&#39;vc.15.6.0.1" expl="false case (true case. postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     </goal>
+    </transf>
+    <transf name="case" arg1="(is_minus_infinity x2)">
+     <goal name="cadd&#39;vc.15.6.0.0" expl="true case (postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     </goal>
+     <goal name="cadd&#39;vc.15.6.0.1" expl="false case (true case. postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     </goal>
+    </transf>
+    <transf name="case" arg1="(is_minus_infinity x5)">
+     <goal name="cadd&#39;vc.15.6.0.0" expl="true case (postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     </goal>
+     <goal name="cadd&#39;vc.15.6.0.1" expl="false case (true case. postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     </goal>
+    </transf>
+    </goal>
+    <goal name="cadd&#39;vc.15.6.1" expl="false case (postcondition)">
+    <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+    <transf name="case" arg1="(is_plus_infinity x4)">
+     <goal name="cadd&#39;vc.15.6.1.0" expl="false case (true case. postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     </goal>
+     <goal name="cadd&#39;vc.15.6.1.1" expl="false case (postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     </goal>
+    </transf>
+    <transf name="case" arg1="(is_minus_infinity x2)">
+     <goal name="cadd&#39;vc.15.6.1.0" expl="false case (true case. postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     </goal>
+     <goal name="cadd&#39;vc.15.6.1.1" expl="false case (postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     </goal>
+    </transf>
+    <transf name="case" arg1="(is_minus_infinity x5)">
+     <goal name="cadd&#39;vc.15.6.1.0" expl="false case (true case. postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     </goal>
+     <goal name="cadd&#39;vc.15.6.1.1" expl="false case (postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     </goal>
+    </transf>
+    </goal>
+   </transf>
+   <transf name="case" arg1="(is_finite1 f1)">
+    <goal name="cadd&#39;vc.15.6.0" expl="true case (postcondition)">
+    <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+    <transf name="case" arg1="(is_finite1 f2)">
+     <goal name="cadd&#39;vc.15.6.0.0" expl="true case (postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     <transf name="eliminate_let_fmla" >
+      <goal name="cadd&#39;vc.15.6.0.0.0" expl="true case (postcondition)">
+      <transf name="case" arg1="(no_overflow m ((to_real f1) +. (to_real f2)))">
+       <goal name="cadd&#39;vc.15.6.0.0.0.0" expl="true case (postcondition)">
+       <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+       <transf name="case" arg1="(no_overflow m (to_real x5 +. to_real x2))">
+        <goal name="cadd&#39;vc.15.6.0.0.0.0.0" expl="true case (postcondition)">
+        <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+        <transf name="case" arg1="(is_finite1 x5)">
+         <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0" expl="true case (postcondition)">
+         <transf name="case" arg1="(is_finite1 x2)">
+          <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0" expl="true case (postcondition)">
+          <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+          <transf name="cut" arg1="((to_real x2) &lt;=. (to_real f1))">
+           <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.0" expl="true case (postcondition)">
+           <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+           <transf name="cut" arg1="((to_real x5) &lt;=. (to_real f2))">
+            <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.0.0" expl="true case (postcondition)">
+            <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+            <transf name="cut" arg1="(((to_real x5) +. (to_real x2)) &lt;=. ((to_real f2) +. (to_real f1)))">
+             <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.0.0.0" expl="true case (postcondition)">
+             <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+             <transf name="cut" arg1="(round m ((to_real x5) +. (to_real x2)) &lt;=. round m ((to_real f2) +. (to_real f1)))">
+              <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.0.0.0.0" expl="true case (postcondition)">
+              <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+              <transf name="cut" arg1="((to_real (add m x5 x2)) &lt;=. (to_real (add m f2 f1)))">
+               <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.0.0.0.0.0" expl="true case (postcondition)">
+               <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+               </goal>
+               <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.0.0.0.0.1" expl="asserted formula">
+               <proof prover="0" obsolete="true"><result status="valid" time="1.14"/></proof>
+               <transf name="instantiate" arg1="add_finite" arg2="m, x5, x2">
+                <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.0.0.0.0.1.0" expl="asserted formula">
+                <transf name="instantiate" arg1="add_finite" arg2="m, f2, f1">
+                 <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.0.0.0.0.1.0.0" expl="asserted formula">
+                 <proof prover="0" obsolete="true"><result status="valid" time="1.14"/></proof>
+                 <transf name="case" arg1="(no_overflow m (to_real x5 +. to_real x2))">
+                  <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0" expl="asserted formula (true case)">
+                  <proof prover="0" obsolete="true"><result status="valid" time="1.07"/></proof>
+                  </goal>
+                  <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.0.0.0.0.1.0.0.1" expl="asserted formula (false case)">
+                  <proof prover="0" obsolete="true"><result status="valid" time="0.03"/></proof>
+                  </goal>
+                 </transf>
+                 </goal>
+                </transf>
+                </goal>
+               </transf>
+               </goal>
+              </transf>
+              </goal>
+              <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.0.0.0.1" expl="asserted formula">
+              <proof prover="0" obsolete="true"><result status="valid" time="0.11"/></proof>
+              </goal>
+             </transf>
+             </goal>
+             <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.0.0.1" expl="asserted formula">
+             <proof prover="0" obsolete="true"><result status="valid" time="0.24"/></proof>
+             </goal>
+            </transf>
+            </goal>
+            <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.0.1" expl="asserted formula">
+            <proof prover="0" obsolete="true"><result status="valid" time="0.77"/></proof>
+            </goal>
+           </transf>
+           </goal>
+           <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.1" expl="asserted formula">
+           <proof prover="0" obsolete="true"><result status="valid" time="0.76"/></proof>
+           </goal>
+          </transf>
+          </goal>
+          <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.1" expl="false case (true case. postcondition)">
+          <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+          <transf name="cut" arg1="((to_real x2) &lt;=. (to_real f1))">
+           <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.1.0" expl="false case (true case. postcondition)">
+           <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+           </goal>
+           <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.1.1" expl="asserted formula">
+           <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+           </goal>
+          </transf>
+          </goal>
+         </transf>
+         </goal>
+         <goal name="cadd&#39;vc.15.6.0.0.0.0.0.1" expl="false case (true case. postcondition)">
+         <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+         </goal>
+        </transf>
+        </goal>
+        <goal name="cadd&#39;vc.15.6.0.0.0.0.1" expl="false case (true case. postcondition)">
+        <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+        </goal>
+       </transf>
+       <transf name="cut" arg1="(le (add m x2 x5) (f1 .+ f2))">
+        <goal name="cadd&#39;vc.15.6.0.0.0.0.0" expl="true case (postcondition)">
+        <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+        <transf name="case" arg1="(is_finite1 x5)">
+         <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0" expl="true case (postcondition)">
+         <transf name="case" arg1="(is_finite1 x2)">
+          <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0" expl="true case (postcondition)">
+          <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+          <transf name="cut" arg1="((to_real x2) &lt;=. (to_real f1))">
+           <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.0" expl="true case (postcondition)">
+           <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+           </goal>
+           <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.0.1" expl="asserted formula">
+           <proof prover="0" obsolete="true"><result status="valid" time="0.28"/></proof>
+           </goal>
+          </transf>
+          </goal>
+          <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.1" expl="false case (true case. postcondition)">
+          <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+          <transf name="cut" arg1="((to_real x2) &lt;=. (to_real f1))">
+           <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.1.0" expl="false case (true case. postcondition)">
+           <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+           </goal>
+           <goal name="cadd&#39;vc.15.6.0.0.0.0.0.0.1.1" expl="asserted formula">
+           <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+           </goal>
+          </transf>
+          </goal>
+         </transf>
+         </goal>
+         <goal name="cadd&#39;vc.15.6.0.0.0.0.0.1" expl="false case (true case. postcondition)">
+         <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+         </goal>
+        </transf>
+        </goal>
+        <goal name="cadd&#39;vc.15.6.0.0.0.0.1" expl="asserted formula">
+        <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+        <transf name="case" arg1="(is_finite1 x5)">
+         <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0" expl="asserted formula (true case)">
+         <transf name="case" arg1="(is_finite1 x2)">
+          <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.0" expl="asserted formula (true case)">
+          <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+          <transf name="cut" arg1="((to_real x2) &lt;=. (to_real f1))">
+           <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.0.0" expl="asserted formula (true case)">
+           <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+           <transf name="cut" arg1="((to_real x5) &lt;=. (to_real f2))">
+            <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.0.0.0" expl="asserted formula (true case)">
+            <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+            <transf name="cut" arg1="(((to_real x5) +. (to_real x2)) &lt;=. ((to_real f2) +. (to_real f1)))">
+             <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.0.0.0.0" expl="asserted formula (true case)">
+             <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+             <transf name="cut" arg1="(round m ((to_real x5) +. (to_real x2)) &lt;=. round m ((to_real f2) +. (to_real f1)))">
+              <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.0.0.0.0.0" expl="asserted formula (true case)">
+              <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+              <transf name="cut" arg1="((to_real (add m x5 x2)) &lt;=. (to_real (add m f2 f1)))">
+               <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.0.0.0.0.0.0" expl="asserted formula (true case)">
+               <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+               </goal>
+               <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.0.0.0.0.0.1" expl="asserted formula">
+               <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+               <transf name="instantiate" arg1="add_finite" arg2="m, x5, x2">
+                <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.0.0.0.0.0.1.0" expl="asserted formula">
+                <transf name="instantiate" arg1="add_finite" arg2="m, f2, f1">
+                 <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.0.0.0.0.0.1.0.0" expl="asserted formula">
+                 <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+                 <transf name="case" arg1="(no_overflow m (to_real x5 +. to_real x2))">
+                  <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.0.0.0.0.0.1.0.0.0" expl="asserted formula (true case)">
+                  <proof prover="0" obsolete="true"><result status="valid" time="1.07"/></proof>
+                  </goal>
+                  <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.0.0.0.0.0.1.0.0.1" expl="asserted formula (false case)">
+                  <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+                  </goal>
+                 </transf>
+                 </goal>
+                </transf>
+                </goal>
+               </transf>
+               </goal>
+              </transf>
+              </goal>
+              <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.0.0.0.0.1" expl="asserted formula">
+              <proof prover="0" obsolete="true"><result status="valid" time="0.10"/></proof>
+              </goal>
+             </transf>
+             </goal>
+             <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.0.0.0.1" expl="asserted formula">
+             <proof prover="0" obsolete="true"><result status="valid" time="0.23"/></proof>
+             </goal>
+            </transf>
+            </goal>
+            <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.0.0.1" expl="asserted formula">
+            <proof prover="0" obsolete="true"><result status="valid" time="0.63"/></proof>
+            </goal>
+           </transf>
+           </goal>
+           <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.0.1" expl="asserted formula">
+           <proof prover="0" obsolete="true"><result status="valid" time="0.60"/></proof>
+           </goal>
+          </transf>
+          </goal>
+          <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.1" expl="asserted formula (false case. true case)">
+          <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+          <transf name="cut" arg1="((to_real x2) &lt;=. (to_real f1))">
+           <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.1.0" expl="asserted formula (false case. true case)">
+           <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+           </goal>
+           <goal name="cadd&#39;vc.15.6.0.0.0.0.1.0.1.1" expl="asserted formula">
+           <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+           </goal>
+          </transf>
+          </goal>
+         </transf>
+         </goal>
+         <goal name="cadd&#39;vc.15.6.0.0.0.0.1.1" expl="asserted formula (false case)">
+         <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+         </goal>
+        </transf>
+        </goal>
+       </transf>
+       </goal>
+       <goal name="cadd&#39;vc.15.6.0.0.0.1" expl="false case (true case. postcondition)">
+       <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+       </goal>
+      </transf>
+      <transf name="cut" arg1="(le (add m x2 x5) (f1 .+ f2))">
+       <goal name="cadd&#39;vc.15.6.0.0.0.0" expl="true case (postcondition)">
+       <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+       </goal>
+       <goal name="cadd&#39;vc.15.6.0.0.0.1" expl="asserted formula">
+       <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+       </goal>
+      </transf>
+      </goal>
+     </transf>
+     </goal>
+     <goal name="cadd&#39;vc.15.6.0.1" expl="false case (true case. postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     </goal>
+    </transf>
+    </goal>
+    <goal name="cadd&#39;vc.15.6.1" expl="false case (postcondition)">
+    <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+    <transf name="case" arg1="(is_finite1 f2)">
+     <goal name="cadd&#39;vc.15.6.1.0" expl="false case (true case. postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     </goal>
+     <goal name="cadd&#39;vc.15.6.1.1" expl="false case (postcondition)">
+     <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof>
+     </goal>
+    </transf>
+    </goal>
+   </transf>
+   </goal>
+  </transf>
+  </goal>
+ </transf>
+ </goal>
+</theory>
+</file>
+</why3session>
diff --git a/tests/dune b/tests/dune
index 3fbfcae90215c32bbc964f9dfbcac62982c1fe60..73d6134eaa084497dcd8e79928a27e3120203eec 100644
--- a/tests/dune
+++ b/tests/dune
@@ -1,3 +1,4 @@
 (cram
  (deps
-  (package colibrics)))
+  (package colibrics))
+ (package colibrics))