Simon Cruanes
c5f23e32b9
test: proper smtlib for QFUF problems
2018-06-11 21:56:34 -05:00
Simon Cruanes
5e380464ce
fix(sat): base-level = 1 under assumptions
2018-06-11 21:47:37 -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
20ecdd6c1f
remove useless fields
2018-05-28 01:31:34 -05:00
Simon Cruanes
10d394a9c3
fix(cc): public add function must also saturate CC
2018-05-28 01:22:58 -05:00
Simon Cruanes
1d99547856
rename dir
2018-05-26 10:34:12 -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
0b42a34a20
refactor: cleanup SAT
2018-05-25 21:33:38 -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
b73e900839
sat: only re-internalize atoms of permanent clauses, on backtrack
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
d1c88e73f7
wip: fix main solver
2018-05-23 22:24:24 -05:00
Simon Cruanes
39be2c260e
fixes
2018-05-20 15:32:06 -05:00
Simon Cruanes
208f51276d
fix: some fixes in SAT
2018-05-20 14:43:33 -05:00
Simon Cruanes
fade033458
refactor: get SAT properly again on some problems
2018-05-20 14:30:36 -05:00
Simon Cruanes
4a39192846
refactor(sat): wip: simpler clauses
2018-05-20 13:38:39 -05:00
Simon Cruanes
f69d5cd9f1
refactor(sat): wip: simplify SAT solver
2018-05-20 13:09:51 -05:00
Simon Cruanes
5860612cd9
wip: refactor SAT solver
2018-05-11 20:33:36 -05:00
Simon Cruanes
3968688a35
large refactor of SAT solver, all internal code in Internal now
2018-05-09 22:47:21 -05:00
Simon Cruanes
36df2d952b
delay addition of clauses to internal sat solver until solve()
2018-05-09 21:09:55 -05:00
Simon Cruanes
441ca61465
remove annoying spelling mistake
2018-05-09 19:58:04 -05:00
Simon Cruanes
c44e9bc16d
remove dead library
2018-05-09 19:51:45 -05:00
Simon Cruanes
70749155bf
cleanup of unused sublibrary
2018-05-09 19:34:53 -05:00
Simon Cruanes
4628bff514
remove some files
2018-05-09 19:30:44 -05:00
Simon Cruanes
24bbe97ceb
rename to sidekick
2018-05-09 19:28:41 -05:00
Simon Cruanes
eb40cfa5e3
wip
2018-05-09 18:14:06 -05:00
Simon Cruanes
d19b798ee9
add ability to parse and process dimacs files
2018-04-11 19:57:51 -05:00
Simon Cruanes
d47d619265
add dimacs sub-library
2018-04-11 19:57:23 -05:00
Simon Cruanes
c82099731d
remove todo file
2018-04-11 09:03:09 -05:00
Simon Cruanes
da77d3ab3b
add todo
2018-04-11 09:02:36 -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
bc1a573407
chore: better error printing
2018-04-02 21:07:54 -05:00
Simon Cruanes
543f8a5a99
add distinct handling to congruence closure
2018-02-23 00:44:23 -06:00
Simon Cruanes
dac3378198
improve SAT solver messages, remove semantic reason
2018-02-23 00:43:56 -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
20a85a1f35
th_bool: fix polarity issues
2018-02-19 21:27:15 -06:00
Simon Cruanes
2be10fb907
first implementation of on-the-fly Tseitin transformation
2018-02-19 20:48:02 -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
582f1aad18
improve IArray
2018-02-19 19:46:08 -06:00
Simon Cruanes
57591ba042
better normalization of terms in Th_bool
2018-02-17 15:33:32 -06:00
Simon Cruanes
9e52183b45
reexport more types in Term
2018-02-17 15:33:24 -06:00
Simon Cruanes
e1717f3afe
wip: heavy refactoring of SAT solver, making most things backtrackable
...
the idea is that most changes should be undone upon backtracking,
using the global `on_backtrack` command and `at_level_0` to
know when something is going to be permanent.
In particular, should be (possibly optionally) undone on backtracking:
- addition of clauses (clauses being attached)
- propagations of atoms
- addition of literals to the heap
- internalization of literals (tbd)
clauses should also be added immediately, not pushed into a queue
2018-02-11 22:58:24 -06:00