Commit graph

53 commits

Author SHA1 Message Date
Simon Cruanes
46ff8c3ba6 fix(sat): bug with re-internalization of terms upon backtracking 2018-08-18 17:20:20 -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
bf0b5185bd fix: proper proof for clause deduplication 2018-07-10 13:54:02 -05:00
Simon Cruanes
b7518a632a refactor(cc): simplify congruence closure 2018-06-27 21:38:16 -05:00
Simon Cruanes
c125fdafa6 fix(sat): use Conflict exn to signal conflict on add_clause 2018-06-22 21:01:22 -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
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
10d394a9c3 fix(cc): public add function must also saturate CC 2018-05-28 01:22:58 -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
47ddce5960 refactor: use 1st class for theory actions 2018-05-25 20:23:09 -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
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
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
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
dac3378198 improve SAT solver messages, remove semantic reason 2018-02-23 00:43:56 -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
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
Simon Cruanes
7b44146102 make it compile! with stubs for conversion parse ast -> ast -> term 2018-02-08 22:19:32 -06:00
Simon Cruanes
d73684902f wip: have a proper smtlib parser 2018-02-05 23:09:29 -06:00
Simon Cruanes
ac396e8cf5 rename to cdcl 2018-01-22 22:09:47 -06:00
Simon Cruanes
8c8209c08c large refactoring to keep only a simpler, easier CDCL(T) interface
- only one functor to instantiate
- explicit state that is carried around
- remove minismt stuff
2018-01-22 21:52:06 -06:00
Simon Cruanes
d415f8ed20 do not expose St in solver, but only expose a restricted API. 2017-12-29 18:29:56 +01:00
Simon Cruanes
99078b2335 make state explicit and add type t state-wrapper in most modules 2017-12-29 16:48:26 +01:00
Simon Cruanes
1cd70b048c split some features into minismt lib 2017-12-28 19:43:54 +01:00
Simon Cruanes
1037c06636 use generative functors, remove a layer of nesting for SMT libs 2017-12-28 19:12:41 +01:00
Simon Cruanes
7722319b0a move tseitin transformation into its own lib 2017-12-28 16:01:36 +01:00
Simon Cruanes
ac50e10788 big refactoring
- move to jbuilder
- use a functorial heap (with indices embedded in lit/var)
- update Vec with optims from mc2
- change semantics of Vec.shrink
- use new Log module
2017-12-28 15:51:04 +01:00
Guillaume Bury
2f3a044271 Add local assumptions support to msat binary 2017-03-30 18:41:35 +02:00
Guillaume Bury
a13906184c Fix warnings 2017-02-15 13:34:21 +01:00
Guillaume Bury
4159a34c20 Removed module alias for SAT expressions 2016-12-02 15:49:49 +01:00
Guillaume Bury
1d8fa08f92 Added Sat module to the lib. Updated README 2016-12-01 18:55:58 +01:00
Guillaume Bury
9cf13bd7a2 Mcsat now works (for pure equality problems) 2016-09-22 18:31:22 +02:00
Guillaume Bury
4f5bb640ca [WIP] All is setup, remains to have real theories
Architecture is now all setup, but theories for the smt and mcsat
solvers are currently dummy ones that are not doing anything.
2016-09-16 15:49:33 +02:00
Guillaume Bury
fa8957784a Restored simple expressions for pure SAT 2016-09-12 15:37:06 +02:00