Simon Cruanes
5a559bec92
remove veci32
2022-07-15 20:32:06 -04:00
Simon Cruanes
ba4b4c0302
rename build
2022-07-14 22:29:48 -04:00
Simon Cruanes
44ca7daf75
remove file
2022-07-14 22:29:12 -04:00
Simon Cruanes
325acc5724
fix tests
2022-07-14 22:17:25 -04:00
Simon Cruanes
85c850d464
update tests after removal of lia
2022-07-14 22:10:14 -04:00
Simon Cruanes
a1bc186d2e
use ocamlformat
2022-07-14 22:09:13 -04:00
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