Simon Cruanes
9d90b7ef66
refactor(cc): add some todos, fix a bug
2019-02-09 16:17:01 -06:00
Simon Cruanes
40186a6c76
refactor: renaming `Eq{uiv,}_class
2019-02-08 19:45:20 -06:00
Simon Cruanes
e08bb7b5ac
fix(cc): polarity error in distinct-conflict
2019-02-01 21:42:11 -06:00
Simon Cruanes
d95047b65a
refactor: a debug msg
2019-02-01 21:26:32 -06:00
Simon Cruanes
a2e177abe8
fix(cc): polarity error in conflicts
2019-02-01 21:12:26 -06:00
Simon Cruanes
a57fdcdeda
refactor: use msat 0.8
2019-02-01 20:57:44 -06:00
Simon Cruanes
27d1841f6b
wip: migrate to msat 0.8
2019-01-28 21:09:57 -06:00
Simon Cruanes
73c7db2b4e
feat(cc): boolean propagation of literals in CC
2018-08-18 19:56:22 -05:00
Simon Cruanes
ca531d73a6
refactor(cc): fix bugs, use list of nodes in equiv class
2018-08-18 18:06:16 -05:00
Simon Cruanes
2b2765c67f
chore: debug msg
2018-08-18 15:04:29 -05:00
Simon Cruanes
8ea844a5a0
chore: improve debug msg in check invariants
2018-08-18 15:02:44 -05:00
Simon Cruanes
d5ca5c2c81
chore: minor debug msg
2018-08-18 14:56:28 -05:00
Simon Cruanes
6d2d1c91e8
refactor(cc): disable path compression
2018-08-18 14:52:44 -05:00
Simon Cruanes
1d212350ef
refactor(cc): internal refactorings
2018-08-18 14:52:44 -05:00
Simon Cruanes
b8445d0ca3
refactor: introduce check_invariants in CC
...
costly, but helps find bugs
2018-08-18 14:52:44 -05:00
Simon Cruanes
c9ab548a5a
detail in debug
2018-08-17 14:22:36 -05:00
Simon Cruanes
74cd2009a3
refactor: small changes
2018-07-02 18:55:36 -05:00
Simon Cruanes
bf70f9688d
refactor(cc): merge the two task queues
2018-06-27 21:43:15 -05:00
Simon Cruanes
b7518a632a
refactor(cc): simplify congruence closure
2018-06-27 21:38:16 -05:00
Simon Cruanes
fb713aa171
fix(cc): update terms properly
2018-06-22 21:28:26 -05:00
Simon Cruanes
0931747404
refactor(cc): better handling of terms that should be ignored by CC
2018-06-22 21:02:07 -05:00
Simon Cruanes
9ac274fc09
refactor: simplify literals; remove useless casts in CC; bit for pending nodes
2018-06-22 19:38:04 -05:00
Simon Cruanes
6933a7b5d0
refactor: add reset_tasks function to clear caches on backtrack
...
also refactor CC a bit
2018-06-16 22:50:03 -05:00
Simon Cruanes
1f79809644
fix(cc.model): model building needs special case for bool
2018-06-11 21:56:50 -05:00
Simon Cruanes
080cde778e
feat(model): proper model construction for CC + fun interpretation
2018-06-11 21:42:02 -05:00
Simon Cruanes
f3c02ebd58
wip: implement model construction and evaluation
2018-05-28 02:43:31 -05:00
Simon Cruanes
10d394a9c3
fix(cc): public add function must also saturate CC
2018-05-28 01:22:58 -05:00
Simon Cruanes
cac216da20
fix(cc): update handling of signature table (point to node, not repr)
2018-05-26 00:46:27 -05:00
Simon Cruanes
aac7879b9d
wip: fix CC for theory terms
2018-05-26 00:04:41 -05:00
Simon Cruanes
04f25779fa
refactor(term): much simpler term model, without builtins or typeclass
...
just use a few custom functions in `Cst.t`
2018-05-25 23:45:15 -05:00
Simon Cruanes
9b8c21513a
refactor: internalize terms earlier
2018-05-25 21:32:24 -05:00
Simon Cruanes
ea5bce9635
refactor(cc): simplify explanations
2018-05-25 20:51:37 -05:00
Simon Cruanes
47ddce5960
refactor: use 1st class for theory actions
2018-05-25 20:23:09 -05:00
Simon Cruanes
edeb28c8ad
refactor(smt): use list of lits as explanations for propagations
2018-05-25 19:36:53 -05:00
Simon Cruanes
6302d13fe8
wip: use Lit.Set.t for explanations
2018-05-25 19:36:21 -05:00
Simon Cruanes
24bbe97ceb
rename to sidekick
2018-05-09 19:28:41 -05:00
Simon Cruanes
4e215e3d01
fix(cc): fix bugs in congruence closure and explanations
...
also, simplify API for backtracking
2018-04-02 21:10:49 -05:00
Simon Cruanes
543f8a5a99
add distinct handling to congruence closure
2018-02-23 00:44:23 -06:00
Simon Cruanes
f21d373620
minor refactoring, removing useless field in nodes
2018-02-22 21:19:54 -06:00
Simon Cruanes
77af72e739
fix bugs in SAT solver
...
- new atoms must always be added to heap if not present
- fix slices dimensions at creation, do not depend on mutable indices
2018-02-19 21:32:13 -06:00
Simon Cruanes
d7fc5cf29d
fix problems with slices in the SAT core
2018-02-19 20:47:43 -06:00
Simon Cruanes
d53bd8671a
lower overhead for adding clauses to the SAT solver
...
- directly build clauses from arrays
- use IArrays rather than lists, when possible
- pushing local/persistent clauses is now direct, no more queues
2018-02-19 19:47:03 -06:00
Simon Cruanes
98934ab74f
move boolean builtins to a sublibrary
2018-02-08 23:19:35 -06:00
Simon Cruanes
d73684902f
wip: have a proper smtlib parser
2018-02-05 23:09:29 -06:00
Simon Cruanes
221ed7dcdb
continue large refactoring, progress in theory combination
...
- first draft of theory combination
- theory interface
- have the project compile
2018-02-01 22:53:06 -06:00
Simon Cruanes
3377d05383
add Shostak solving in CC
2018-01-30 22:19:05 -06:00
Simon Cruanes
50fe488dcb
refactor types for terms and congruence closure
...
- terms are extensible
- explanations have a custom case, shaped as a term
- remove distinction repr/node in Equiv_class, for simplicity
- make propositional connectives n-ary
2018-01-30 21:55:37 -06:00
Simon Cruanes
1d5c1c187c
wip: basic SMT infrastructure
...
- basic types, including terms and nodes (internalized terms)
- congruence closure
- utils
2018-01-25 23:32:36 -06:00