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'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'vc" expl="VC for test3"> + <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof> + <transf name="split_vc" > + <goal name="test3'vc.0" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.21"/></proof> + </goal> + <goal name="test3'vc.1" expl="assertion"> + <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof> + <transf name="split_vc" > + <goal name="test3'vc.1.0" expl="assertion"> + <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof> + </goal> + </transf> + </goal> + <goal name="test3'vc.2" expl="assertion"> + <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof> + <transf name="split_vc" > + <goal name="test3'vc.2.0" expl="assertion"> + <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof> + </goal> + </transf> + </goal> + <goal name="test3'vc.3" expl="assertion"> + <transf name="split_vc" > + <goal name="test3'vc.3.0" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.24"/></proof> + </goal> + <goal name="test3'vc.3.1" expl="postcondition"> + <proof prover="0"><path name="float_interval-Float_interval-test3qtvc_1.psmt2"/><undone/></proof> + </goal> + <goal name="test3'vc.3.2" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + <goal name="test3'vc.3.3" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + <goal name="test3'vc.3.4" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + <goal name="test3'vc.3.5" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + <goal name="test3'vc.3.6" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + <goal name="test3'vc.3.7" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + <goal name="test3'vc.3.8" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + <goal name="test3'vc.3.9" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + <goal name="test3'vc.3.10" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + </transf> + </goal> + <goal name="test3'vc.4" expl="postcondition"> + <proof prover="0" obsolete="true"><result status="timeout" time="5.00"/></proof> + </goal> + <goal name="test3'vc.5" expl="postcondition"> + <transf name="split_vc" > + <goal name="test3'vc.5.0" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + <goal name="test3'vc.5.1" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + <goal name="test3'vc.5.2" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + <goal name="test3'vc.5.3" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + <goal name="test3'vc.5.4" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + <goal name="test3'vc.5.5" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + <goal name="test3'vc.5.6" expl="postcondition"> + <proof prover="0"><undone/></proof> + </goal> + </transf> + </goal> + </transf> + </goal> + <goal name="cadd'vc" expl="VC for cadd"> + <transf name="split_vc" > + <goal name="cadd'vc.0" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.47"/></proof> + </goal> + <goal name="cadd'vc.1" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.91"/></proof> + </goal> + <goal name="cadd'vc.2" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.78"/></proof> + </goal> + <goal name="cadd'vc.3" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.30"/></proof> + </goal> + <goal name="cadd'vc.4" expl="assertion"> + <transf name="split_vc" > + <goal name="cadd'vc.4.0" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.35"/></proof> + </goal> + </transf> + </goal> + <goal name="cadd'vc.5" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.27"/></proof> + </goal> + <goal name="cadd'vc.6" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.29"/></proof> + </goal> + <goal name="cadd'vc.7" expl="assertion"> + <transf name="split_vc" > + <goal name="cadd'vc.7.0" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.26"/></proof> + </goal> + </transf> + </goal> + <goal name="cadd'vc.8" expl="assertion"> + <transf name="split_vc" > + <goal name="cadd'vc.8.0" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.50"/></proof> + </goal> + </transf> + </goal> + <goal name="cadd'vc.9" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.37"/></proof> + </goal> + <goal name="cadd'vc.10" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.27"/></proof> + </goal> + <goal name="cadd'vc.11" expl="assertion"> + <transf name="split_vc" > + <goal name="cadd'vc.11.0" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.28"/></proof> + </goal> + </transf> + </goal> + <goal name="cadd'vc.12" expl="assertion"> + <transf name="split_vc" > + <goal name="cadd'vc.12.0" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.27"/></proof> + </goal> + </transf> + </goal> + <goal name="cadd'vc.13" expl="assertion"> + <transf name="split_vc" > + <goal name="cadd'vc.13.0" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="0.80"/></proof> + </goal> + </transf> + </goal> + <goal name="cadd'vc.14" expl="assertion"> + <transf name="split_vc" > + <goal name="cadd'vc.14.0" expl="assertion"> + <proof prover="0" obsolete="true"><result status="valid" time="2.31"/></proof> + </goal> + </transf> + </goal> + <goal name="cadd'vc.15" expl="postcondition"> + <transf name="split_vc" > + <goal name="cadd'vc.15.0" expl="postcondition"> + <proof prover="0" obsolete="true"><result status="valid" time="0.10"/></proof> + </goal> + <goal name="cadd'vc.15.1" expl="postcondition"> + <proof prover="0" obsolete="true"><result status="valid" time="0.11"/></proof> + </goal> + <goal name="cadd'vc.15.2" expl="postcondition"> + <proof prover="0" obsolete="true"><result status="valid" time="0.10"/></proof> + </goal> + <goal name="cadd'vc.15.3" expl="postcondition"> + <proof prover="0" obsolete="true"><result status="valid" time="1.22"/></proof> + </goal> + <goal name="cadd'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'vc.15.4.0" expl="true case (postcondition)"> + <proof prover="0" obsolete="true"><result status="valid" time="2.21"/></proof> + </goal> + <goal name="cadd'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'vc.15.4.0" expl="postcondition"> + <transf name="instantiate" arg1="H3" arg2="f1,f2"> + <goal name="cadd'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'vc.15.5" expl="postcondition"> + <proof prover="0" obsolete="true"><result status="valid" time="3.04"/></proof> + </goal> + <goal name="cadd'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'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'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'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'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'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'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'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'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'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'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'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'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'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'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'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'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'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'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'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'vc.15.6.0.0.0.0.0.0" expl="true case (postcondition)"> + <transf name="case" arg1="(is_finite1 x2)"> + <goal name="cadd'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) <=. (to_real f1))"> + <goal name="cadd'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) <=. (to_real f2))"> + <goal name="cadd'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)) <=. ((to_real f2) +. (to_real f1)))"> + <goal name="cadd'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)) <=. round m ((to_real f2) +. (to_real f1)))"> + <goal name="cadd'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)) <=. (to_real (add m f2 f1)))"> + <goal name="cadd'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'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'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'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'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'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'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'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'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'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'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) <=. (to_real f1))"> + <goal name="cadd'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'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'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'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'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'vc.15.6.0.0.0.0.0.0" expl="true case (postcondition)"> + <transf name="case" arg1="(is_finite1 x2)"> + <goal name="cadd'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) <=. (to_real f1))"> + <goal name="cadd'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'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'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) <=. (to_real f1))"> + <goal name="cadd'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'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'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'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'vc.15.6.0.0.0.0.1.0" expl="asserted formula (true case)"> + <transf name="case" arg1="(is_finite1 x2)"> + <goal name="cadd'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) <=. (to_real f1))"> + <goal name="cadd'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) <=. (to_real f2))"> + <goal name="cadd'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)) <=. ((to_real f2) +. (to_real f1)))"> + <goal name="cadd'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)) <=. round m ((to_real f2) +. (to_real f1)))"> + <goal name="cadd'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)) <=. (to_real (add m f2 f1)))"> + <goal name="cadd'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'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'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'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'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'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'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'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'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'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'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) <=. (to_real f1))"> + <goal name="cadd'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'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'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'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'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'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'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'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'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'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))