Commit graph

149 commits

Author SHA1 Message Date
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
d1c88e73f7 wip: fix main solver 2018-05-23 22:24:24 -05:00
Simon Cruanes
fade033458 refactor: get SAT properly again on some problems 2018-05-20 14:30: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
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
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
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
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
Simon Cruanes
2fcef323b3 move back process to dagon_smtlib 2018-02-11 10:47:47 -06:00
Simon Cruanes
98934ab74f move boolean builtins to a sublibrary 2018-02-08 23:19:35 -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
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
2aab43f95d comments and doc 2018-01-29 23:38:24 -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
Simon Cruanes
e5e147eaed draft of design doc for the CC 2018-01-23 23:19:10 -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
679d928b88 Auto re-indent 2017-08-25 19:11:58 +02: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
Simon Cruanes
21206cb166 remove useless modules and update doc 2016-11-21 14:58:21 +01:00
Guillaume Bury
4fae86c81d Fixed typo in smt typechecker 2016-09-23 14:02:12 +02: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
2a33534312 Added (dummy) mcsat module for test binary 2016-09-14 19:55:57 +02:00
Guillaume Bury
0631135bd5 Smt solver with dummy theory now builds 2016-09-12 15:43:57 +02:00
Guillaume Bury
dfff903f8c Removed additional libs. 2016-09-12 15:32:22 +02:00
Guillaume Bury
9d509241ad [WIP] Some drastic cleanup of code
Some of these changes are to be reverted, among other the structure of
terms used for the instantiation of the pure SAT solver
2016-09-09 18:09:04 +02:00
Guillaume Bury
742f8c469d Added Expr and typing module from ArchSat 2016-09-07 17:58:07 +02:00
Simon Cruanes
bb2c931d68 wip 2016-08-24 18:23:01 +02:00
Simon Cruanes
41557a1509 wip: make SMT great again 2016-08-16 17:20:48 +02:00