-
Notifications
You must be signed in to change notification settings - Fork 33
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Model generation support for SatML (#829)
* Theory: harden 'compute_concrete_model' function * Push the test 'get_case_split_policy() == origin' into Theory.do_case_split * CS: functions return all the env instead of just 'gamma_finite'. * Fun_sat: refactor the way models are handled/printed - add a data-structure for models, - save the strucutre in the SAT's env - print the models in the Frontend module * satML: add missing case-split strategies * satML: implement models generation. * Make model tests negative Some tests about models failed in the OptimAE PR. This commit allows to tag tests in `tests/` with `fail` tag which means the test is supposed to fail. * Reindent * Update documentation about `output_concrete_model` I also remove the mention about the different kind of formats used to print models. Indeed, we use only the SMT-LIB format and the Why3 format is slightly different but probably outdated. * Document the timeout_reason ADT * poetry * Restore the comment about `reinit_cpt` * Fix spelling * Remainder to the issue 834 * Simplify get-model processing * Remove SAT solver choices while model generating As SatML supports model generation, we don't need to select the appropriate SAT solver while parsing the command line or the SMT-LIB statement `(set-option :produce-models true)`. * Fix model output We should print constraints in models only if the appropriate flag is used in the command line. * All the model tests are positive * Remove deprecated cram tests Some cram tests are not valid anymore as we don't need to select the SAT solver Tableaux while generating models. * Test models with all the SAT solvers * Restoring dump-models option The dump-models option have been broken by the refactoring in OptimAE. I restore this feature. * Use the right post-solve SAT environment for models Return the appropriate environment in the Frontend module to retrieve the model with `(get-model)` as we did in the PR #789. * Print dump models on the channel models This commit restore the feature of the PR #838 as the location of code moved after the refactoring of model generation in OptimAE. * Prevent printing internal names in models Symbol names prefixed with a dot or @ shouldn't never be printed in models as they cannot be declared by the user. This behaviour is SMT-LIB compliant. * Promote tests * Revert "Simplify get-model processing" This reverts commit 9507d63. * Review changes * Test only models with FunSAT Prevent to test models with other solvers as we cannot guarantee they will produce exactly the same model. We have to modify gentest to manage several expected files while testing models. --------- Co-authored-by: iguer <[email protected]>
- Loading branch information
Showing
24 changed files
with
47,458 additions
and
50,550 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.