|
2 | 2 | ; License, v. 2.0. If a copy of the MPL was not distributed with this |
3 | 3 | ; file, You can obtain one at http://mozilla.org/MPL/2.0/. |
4 | 4 |
|
5 | | -; Requires Z3 >= 4.3.2 |
| 5 | +; Tested with Z3 4.8.7 and 4.12.1 |
6 | 6 |
|
7 | 7 | ; ATTENTION: Continuing multi-line statements must be indented with at least |
8 | 8 | ; one tab or two spaces. All other lines must not start with tabs |
|
12 | 12 | ; setting options, is answered by a success (or error) reply from Z3. Silicon currently relies on |
13 | 13 | ; these replies when it interacts with Z3 via stdio. |
14 | 14 | (set-option :print-success true) ; Boogie: false |
| 15 | +(set-option :global-decls true) ; Necessary for push pop mode |
15 | 16 |
|
16 | | -(set-option :global-decls true) ; Boogie: default |
17 | | -(set-option :auto_config false) ; Usually a good idea |
18 | | - |
19 | | -(set-option :smt.restart_strategy 0) |
20 | | -(set-option :smt.restart_factor |1.5|) |
| 17 | +; These options are taken from Dafny 4.0.0 and proven to work decently well with up-to-date Z3 (currently 4.12.1), |
| 18 | +; unlike the options used previously. |
| 19 | +(set-option :auto_config false) |
21 | 20 | (set-option :smt.case_split 3) |
22 | 21 | (set-option :smt.delay_units true) |
23 | | -(set-option :smt.delay_units_threshold 16) |
24 | | -(set-option :nnf.sk_hack true) |
25 | 22 | (set-option :type_check true) |
26 | | -(set-option :smt.bv.reflect true) |
27 | | - |
28 | 23 | (set-option :smt.mbqi false) |
| 24 | +(set-option :pp.bv_literals false) |
29 | 25 | (set-option :smt.qi.eager_threshold 100) |
30 | | -; (set-option :smt.qi.lazy_threshold 1000000000) |
31 | | -(set-option :smt.qi.cost "(+ weight generation)") |
32 | | -(set-option :smt.qi.max_multi_patterns 1000) |
33 | | -; (set-option :smt.qi.profile true) |
34 | | -; (set-option :smt.qi.profile_freq 100000) |
35 | | - |
36 | | -;; [2019-07-31 Malte] The next block of options are all randomness-related options that I could |
37 | | -;; find in the description Z3 -pd emits. If not stated otherwise, the options are merely explicitly |
38 | | -;; set to their default values. |
39 | | -(set-option :smt.phase_selection 0) ; default: 3, Boogie: 0 |
40 | | -(set-option :sat.phase caching) |
41 | | -(set-option :sat.random_seed 0) |
42 | | -(set-option :nlsat.randomize true) |
43 | | -(set-option :nlsat.seed 0) |
44 | | -(set-option :nlsat.shuffle_vars false) |
45 | | -(set-option :fp.spacer.order_children 0) ; Not available with Z3 4.5 |
46 | | -(set-option :fp.spacer.random_seed 0) ; Not available with Z3 4.5 |
47 | | -(set-option :smt.arith.random_initial_value true) ; Boogie: true |
48 | | -(set-option :smt.random_seed 0) |
49 | | -(set-option :sls.random_offset true) |
50 | | -(set-option :sls.random_seed 0) |
51 | | -(set-option :sls.restart_init false) |
52 | | -(set-option :sls.walksat_ucb true) |
53 | | - |
54 | | -; (set-option :smt.macro_finder true) |
55 | | -; (set-option :combined_solver.solver2_timeout 500) |
56 | | -; (set-option :combined_solver.solver2_unknown 2) |
57 | | -; (set-option :smt.arith.nl false) |
58 | | -; (set-option :smt.arith.nl.gb false) |
59 | | - ; See http://stackoverflow.com/questions/28210673 |
60 | | - |
61 | | -; (set-option :produce-models true) |
62 | | -; (set-option :model false) |
| 26 | +(set-option :smt.arith.solver 2) |
63 | 27 | (set-option :model.v2 true) |
64 | | -; (set-option :model.compact true) |
| 28 | + |
| 29 | +; We want unlimited multipatterns |
| 30 | +(set-option :smt.qi.max_multi_patterns 1000) |
0 commit comments