Commit graph

1016 commits

Author SHA1 Message Date
Simon Cruanes
7ef673ca30 refactor mini-cc 2020-12-22 14:59:30 -05:00
Simon Cruanes
35e5e30e93 fix(smtlib): handle "xor" 2020-12-22 14:59:21 -05:00
Simon Cruanes
7cb97a89c5 make type abstract 2020-12-22 12:36:02 -05:00
Simon Cruanes
1890f7af13 try to tighten type constraints 2020-12-22 12:30:01 -05:00
Simon Cruanes
f05de5f741 fix warnings 2020-12-22 12:17:32 -05:00
Simon Cruanes
6c1b7df301 chore: try to fix build again 2020-12-22 11:53:12 -05:00
Simon Cruanes
14bb5898f0 Merge branch 'wip-fix-lra' into wip-lra-simplex-unsat-core 2020-12-22 11:46:09 -05:00
Simon Cruanes
5ca4730968 try to fix build 2020-12-22 11:06:59 -05:00
Simon Cruanes
3b3a2e1caf use simplex conflicts in LRA 2020-12-22 10:55:55 -05:00
Guillaume Bury
4be726db43 Add unsat core explanations to the simplex 2020-12-22 14:16:23 +01:00
Simon Cruanes
9d579af235 wip: make lazyness of model explicit 2020-12-21 16:15:49 -05:00
Simon Cruanes
b3a7acf95b feat(LRA): handle congruence closure and theory combination in LRA
- merges in the CC are handled by adding corresponding equalities
  locally
- theory combination pushes the decision `a=b` into the SAT solver
  if a,b have the same model values and are not provably equal
  in the CC already.
- also, fix model construction
2020-11-17 18:24:09 -05:00
Simon Cruanes
6417bbdd80 feat(util): add Backtrack_stack.iter 2020-11-17 18:23:58 -05:00
Simon Cruanes
9839e5a36b feat(core): add push_decision, for model-based th combination 2020-11-17 18:23:16 -05:00
Simon Cruanes
60fe3506d5 feat(core): add CC.explain_eq to explain why two nodes were merged 2020-11-17 18:22:51 -05:00
Simon Cruanes
6a0731eeb1 refactor: improve model production in FM 2020-11-17 17:03:12 -05:00
Simon Cruanes
db1c50f7ed feat(LRA): expose model after fourier-motzkin returns "SAT" 2020-11-17 16:52:49 -05:00
Simon Cruanes
764695bb65 feat: pass a sign along with the formula in acts_add_decision_lit 2020-11-14 18:58:40 -05:00
Simon Cruanes
77b33346f5 fix(tycheck): handle proper unary minus 2020-11-14 13:17:23 -05:00
Simon Cruanes
103c320577 fix(lra): fixed case splitting on a != b 2020-11-14 00:23:45 -05:00
Simon Cruanes
37089adb17 feat: add -t option to main 2020-11-14 00:23:35 -05:00
Simon Cruanes
b2ab465cff fix(LRA): track explanations properly when rewriting with an equality 2020-11-13 23:58:14 -05:00
Simon Cruanes
a6f6a99fb3 fix: small perf improvement 2020-11-13 23:28:39 -05:00
Simon Cruanes
39ed753b38 add tests for simplex 2020-11-13 23:28:32 -05:00
Simon Cruanes
5ff0fff85b wip: refactor(lra): import Simplex from funarith, replace FM with it 2020-11-13 22:35:59 -05:00
Simon Cruanes
4097ed9dc2 refactor: account for @gbury's review 2020-11-13 11:57:57 -05:00
Simon Cruanes
919c1e6011 fix: only push atoms that don't have a value into next_decisions 2020-11-13 11:57:57 -05:00
Simon Cruanes
2286a72437 fix: in final-check, resume if there are new decisions to do 2020-11-13 11:57:57 -05:00
Simon Cruanes
79b1585804 feat: allow the theory to ask for some literals to be decided on
it's part of the actions provided to the theory.
close #19
2020-11-13 11:57:57 -05:00
Simon Cruanes
d9bf16dfde feat: allow to set the default polarity of variables at creation time 2020-11-13 11:57:48 -05:00
Simon Cruanes
df25e84a01 fix(LRA): fix bug in FM resolution; add more comments 2020-11-12 19:23:45 -05:00
Simon Cruanes
0fc5b279d1 fix(LRA): invalid normalization 2020-11-12 18:46:43 -05:00
Simon Cruanes
3e703cf89e refactor: better debug in LRA 2020-11-12 18:46:34 -05:00
Simon Cruanes
9a3e387405 refactor: explicit recursion in preprocessing
if a preprocessor fires, it's up to it to preprocess subterms. rewriting
is now from the root, not the leaves on.

Use that in LRA to rewrite under linear expressions.
2020-11-12 18:21:37 -05:00
Simon Cruanes
51be2f52e8 style 2020-10-12 02:06:16 -04:00
Simon Cruanes
534fc45783 wip: better progress bar 2020-10-11 23:30:22 -04:00
Simon Cruanes
f556fe58ab test: clarify where tests belong 2020-10-10 18:54:57 -04:00
Simon Cruanes
3449404964 refactor: move base-term to sidekick-arith 2020-10-10 17:43:42 -04:00
Simon Cruanes
349d884664 chore: add sidekick-arith library, depends on zarith 2020-10-10 17:18:20 -04:00
Simon Cruanes
7a74ec45b7 fix 2020-10-10 16:39:36 -04:00
Simon Cruanes
e9931b377c remove bloody warn-error 2020-10-10 16:00:21 -04:00
Simon Cruanes
dc320bf0c9 fix(tycheck): handle n-ary +/- 2020-10-10 14:34:05 -04:00
Simon Cruanes
7c3c88d6f6 feat(lra): bugfixes 2020-10-10 14:33:54 -04:00
Simon Cruanes
93b56618f1 wip: first implem of Fourier Motzkin 2020-10-10 01:22:22 -04:00
Simon Cruanes
9783c3ae1b wip: reimplement a fourier motzkin module, from scratch 2020-10-10 00:00:20 -04:00
Simon Cruanes
c67e44e654 detail 2020-10-09 23:59:38 -04:00
Simon Cruanes
581c7eff0b wip 2020-10-09 22:09:15 -04:00
Simon Cruanes
7e6800811f wip: LRA: process all lits during final check 2020-10-04 22:28:09 -04:00
Simon Cruanes
fabdb27dfe wip: feat(lra): preprocess by renaming lits/terms and storing defs 2020-10-04 21:37:03 -04:00
Simon Cruanes
ac6ca7d584 wip: properly typecheck and build LRA terms 2020-10-04 00:32:52 -04:00