Commit graph

1595 commits

Author SHA1 Message Date
Simon Cruanes
e2b9b2874c
fix more warnings; remove never completed LIA stuff 2022-07-14 22:01:23 -04:00
Simon Cruanes
fd500a3d7d
fix some warnings 2022-07-14 21:56:37 -04:00
Simon Cruanes
96bc3e2340
update tests 2022-07-14 21:48:19 -04:00
Simon Cruanes
b16fce6f26
Merge branch 'master' into wip-model-th-comb 2022-07-14 21:46:36 -04:00
Simon Cruanes
1946a5e7cf
feat: construct model from congruence closure after th-combination
we already obtain a model from theories, and saturate the congruence
closure with it, it's a shame not to use it.
2022-02-18 14:59:27 -05:00
Simon Cruanes
a388c96fe3
cc: remove new_merges 2022-02-18 14:59:27 -05:00
Simon Cruanes
cdc5d160a7
cc: use backtrackable table 2022-02-18 14:59:27 -05:00
Simon Cruanes
d153c80ca5
details 2022-02-18 14:59:27 -05:00
Simon Cruanes
8530c07c59
lra: better debug 2022-02-18 14:59:27 -05:00
Simon Cruanes
8fb0152754
feat(smt): simplify the final check loop significantly 2022-02-18 14:59:26 -05:00
Simon Cruanes
da18ba3620
perf(cc): only assign model values to term present in CC 2022-02-18 14:59:26 -05:00
Simon Cruanes
6e941683a2
add with_model_mode to congruence closure
this mode:
- enables `set_mode_value`
- disables all callbacks
- can only be used locally with a push/pop wrapper
2022-02-18 14:59:26 -05:00
Simon Cruanes
95f84b4854
refactor(th-comb): provide full model to the CC
this way it can fail on merges of classes assigned conflicting value.
2022-02-18 14:59:26 -05:00
Simon Cruanes
fd66039c8d
wip: theory combination by exposing model (classes) directly to CC 2022-02-18 14:59:26 -05:00
Simon Cruanes
65d4a90df1
tef: stop compression, too fragile. just emit a .json file 2022-02-18 14:59:26 -05:00
Simon Cruanes
f26d178380
feat(main): catch ctrl-c to cleanup
this allows us to cleanup progress bar, print stats, finish tracing,
etc.
2022-02-18 14:59:26 -05:00
Simon Cruanes
52cae96ee2
improve progress bar and printingof stat after timeout 2022-02-18 14:59:25 -05:00
Simon Cruanes
20791a551f
feat: enforce time/memory limits in main runner 2022-02-17 13:09:48 -05:00
Simon Cruanes
e177534a46
chore: ugprade bare encoding 2022-02-16 14:20:27 -05:00
Simon Cruanes
c0288902c0
feat: check on_progress in more places 2022-02-16 13:24:43 -05:00
Simon Cruanes
5b0a2ad4a4
debug 2022-02-15 16:57:25 -05:00
Simon Cruanes
f3947f2237
update model construction function 2022-02-15 12:23:04 -05:00
Simon Cruanes
7f45cc6967
fix test 2022-02-14 11:36:50 -05:00
Simon Cruanes
fb552ba8b2
update expected test 2022-02-14 11:20:59 -05:00
Simon Cruanes
98c30bf0cc
updates and cleanup 2022-02-14 10:46:08 -05:00
Simon Cruanes
73289d1ded
test: regressions test for LRA 2022-02-08 13:45:43 -05:00
Simon Cruanes
e481c74398
refactor(LRA): new preprocessing, new shape of terms 2022-02-08 13:14:24 -05:00
Simon Cruanes
c22fc62f3e
base: remove simplex cases in arith terms 2022-02-08 13:14:07 -05:00
Simon Cruanes
f268e86100
refactor(smt-solver): preprocess literals in push_decision 2022-02-08 13:13:23 -05:00
Simon Cruanes
a81a21c341
core: add n_levels to monoid 2022-02-08 13:13:00 -05:00
Simon Cruanes
1d702029ee
fix(typecheck): use logic to decide default type of numerals 2022-02-08 13:12:29 -05:00
Simon Cruanes
82acf271d3
improve zarith and backtrackable table 2022-02-08 13:12:07 -05:00
Simon Cruanes
fbf7c5e090
chore: makefile 2022-02-08 13:11:36 -05:00
Simon Cruanes
d9a701140c
debug 2022-02-07 10:57:39 -05:00
Simon Cruanes
d11b9d585c
fix(smt): improve theory combination a bit 2022-02-04 16:40:55 -05:00
Simon Cruanes
ab74b1a792
fix(lra): preprocessing of linexps with non-zero constants 2022-02-04 16:16:00 -05:00
Simon Cruanes
cbc9c5ac6f
refactor(smt): preprocessing is now using a queue of delayed actions
- preprocessing doesn't simplify anymore, it assumes terms are already
  simplified. It only adds clauses/adds literals, it does not return
  new terms.
- adding clauses/literals to SAT is done as delayed actions, to avoid
  issues of reentrancy.
  These actions are performed after preprocessing, in a loop that has
  access to the SAT solver.
2022-02-04 16:08:01 -05:00
Simon Cruanes
f9036fa33b
feat(bool): do not eliminate ite terms.
API users might need to traverse the terms they gave to sidekick, and
analyze their structure. This can't work if we have removed some of it,
like `ite`.
2022-02-04 09:24:27 -05:00
Simon Cruanes
2885563929
fix(lra): better handling of model production for preprocessed-away terms 2022-02-03 14:24:07 -05:00
Simon Cruanes
9cf9b025ab
debug 2022-02-03 14:20:32 -05:00
Simon Cruanes
a98132ed0c
feat(model): add theory hooks to "complete" models
these hooks are allowed to add terms to the model, that are not in the
congruence closure (for example in LRA, terms that were preprocessed
away).
2022-02-03 14:00:43 -05:00
Simon Cruanes
c4bbaddc06
new regression test for (get-model); fix mdx test 2022-02-02 16:12:55 -05:00
Simon Cruanes
50bfe79b6a
test: use dune options, so, release mode 2022-02-02 16:12:29 -05:00
Simon Cruanes
dbb9dabd1d
simpler printing of models 2022-02-02 16:12:11 -05:00
Simon Cruanes
a0a67549de
feat(lra): proper model production from the simplex 2022-02-02 16:02:23 -05:00
Simon Cruanes
3fdb07b533
feat: handle get-model/get-value from smtlib inputs 2022-02-02 15:51:44 -05:00
Simon Cruanes
4cdbaf17bf
fix opam file 2022-02-01 22:21:03 -05:00
Simon Cruanes
70206101f0
feat: update bare 2022-02-01 22:10:31 -05:00
Simon Cruanes
c99e02b38a
try to fix tests for now 2022-01-31 15:45:15 -05:00
Simon Cruanes
44ad0935fe
chore: add QF_UFLIA to makefile 2022-01-31 15:45:02 -05:00