Commit graph

1273 commits

Author SHA1 Message Date
Simon Cruanes
3aa25cb2a2 sat: use an atom array for clauses again
allocator is not worth the complexity, and has a lot of double
indirections anyway.
2021-07-21 10:02:56 -04:00
Simon Cruanes
8b94e8404f wip: data-oriented clauses 2021-07-20 23:34:58 -04:00
Simon Cruanes
97d87cc58f perf: tiny detail in int indices in solver 2021-07-20 23:34:38 -04:00
Simon Cruanes
29892d07de feat(util): Vec_float based on bigarrays 2021-07-20 23:33:57 -04:00
Simon Cruanes
a03d7f6bef fix 2021-07-20 23:31:21 -04:00
Simon Cruanes
11b1ea4eda feat(vec): more 2021-07-20 23:28:54 -04:00
Simon Cruanes
d53b3c291e feat: add "drup" case to proofs 2021-07-20 23:27:11 -04:00
Simon Cruanes
89051fd3ad perf(solver): use VecI32 in the heap
this reduces the size of the heap (4 bits per element, not 8), and
reduces GC work by not scanning the bigarray
2021-07-20 10:07:43 -04:00
Simon Cruanes
d08d5fe9c4 feat(util): add VecI32 based on bigarray 2021-07-20 10:07:29 -04:00
Simon Cruanes
347e098fc2 misc 2021-07-20 09:20:14 -04:00
Simon Cruanes
f2b2bbb973 some stats for the SAT solver 2021-07-19 21:44:58 -04:00
Simon Cruanes
b624a1ca5d cleanup: remove commented code 2021-07-19 21:15:16 -04:00
Simon Cruanes
e30cf9fdbf perf: allocate less in conflict analysis
use preallocated vectors
2021-07-19 21:13:00 -04:00
Simon Cruanes
7463bd66aa fix(sat): sign error 2021-07-19 09:57:02 -04:00
Simon Cruanes
227662f789 detail 2021-07-19 09:57:02 -04:00
Simon Cruanes
7f18e5f29a fix 2021-07-19 09:57:02 -04:00
Simon Cruanes
47bb521158 wip: refactor SAT solver 2021-07-19 09:57:02 -04:00
Simon Cruanes
b85c47ece1 wip: refactor(sat): use struct-of-array for atom/var 2021-07-19 09:57:02 -04:00
Simon Cruanes
162fd37d9d wip: refactor 2021-07-19 09:57:02 -04:00
Simon Cruanes
2107b3de7e feat(util): a Bitvec module, refactor testing 2021-07-19 09:57:02 -04:00
Simon Cruanes
97aab34e46 statistics for pure sat solver 2021-07-19 09:57:02 -04:00
Simon Cruanes
923033f9bf feat: mli for the SAT solver 2021-07-19 09:17:20 -04:00
Simon Cruanes
15d86d7c62 refactor(sat): use first-class modules instead of records 2021-07-18 19:18:42 -04:00
Simon Cruanes
041e83139d feat: make mtime optional with dummy "tef" backend 2021-07-18 10:31:03 -04:00
Simon Cruanes
c7bf4b01e7 feat: optional memtrace support 2021-07-18 10:29:14 -04:00
Simon Cruanes
5faa1d6ef7 chore: try to build again 2021-07-18 08:04:56 -04:00
Simon Cruanes
1aa160fe56 use a pure sat solver for cnf files 2021-07-18 02:46:04 -04:00
Simon Cruanes
4cb8887639 wip: remove all traces of mcsat from src/sat 2021-07-18 02:14:56 -04:00
Simon Cruanes
564dcec252 cleanup msat, rename it sidekick.sat 2021-07-18 01:40:55 -04:00
Simon Cruanes
4a337a85d3 cleanup msat 2021-07-18 01:29:28 -04:00
Simon Cruanes
1a58ab0bfc vendor current msat in src/sat for further modifications 2021-07-18 01:26:11 -04:00
Simon Cruanes
d024a6a3f0 prepare for vendoring 2021-07-18 01:24:04 -04:00
Simon Cruanes
2f353cfd94 add stat to count number of acyclicity conflicts in datatypes 2021-07-04 18:02:48 -04:00
Simon Cruanes
653783744c fix tets 2021-07-04 01:36:28 -04:00
Simon Cruanes
0368a29ada add helper in base 2021-07-04 01:29:23 -04:00
Simon Cruanes
71360ad1f8 refactor: change signature of field access in CC 2021-07-04 00:25:59 -04:00
Simon Cruanes
51ac678ccd trivial helper 2021-07-04 00:06:42 -04:00
Simon Cruanes
4e07e6039a add helpers for LRA in base 2021-07-03 23:49:14 -04:00
Simon Cruanes
9cfaecec99 helpers 2021-07-03 23:39:20 -04:00
Simon Cruanes
6578ea9136 move form to sidekick_base; rename {Term,Ty}.state into store 2021-07-03 22:48:44 -04:00
Simon Cruanes
80b50e8744 refactor: add solver instance in sidekick base
move some functor instantiations from `sidekick-bin.smtlib` to
`sidekick-base.solver` so they're usable from a library.
2021-07-03 22:28:57 -04:00
Simon Cruanes
be46f40312 more docs 2021-07-03 21:46:39 -04:00
Simon Cruanes
590f1ef887 more cleanup, add doc 2021-07-03 21:14:17 -04:00
Simon Cruanes
79bc3def3f refactor to get sidekick-base library 2021-07-03 20:20:19 -04:00
Simon Cruanes
813f645a9c refactor: rename sidekick-base-term to sidekick-base 2021-07-03 17:42:19 -04:00
Simon Cruanes
655ea76a6a fix(proof): sharing of terms must define them in order
sometimes we use an already existing shortcut, but before it's
introduced, so we can just introduce the shortcut early.
2021-06-17 22:00:27 -04:00
Simon Cruanes
952740f66f add test case to mini-cc 2021-06-16 20:10:26 -04:00
Simon Cruanes
a223b6cd5c fix(cc): fix bad proof production for the merge-bool-parent case 2021-06-16 19:58:42 -04:00
Simon Cruanes
941fe92125 callbacks for conflict/decisions/new-atoms
breaking change for `solve`, remove the `on_conflict` callback. it's
provided at creation time instead.
2021-06-15 21:17:25 -04:00
Simon Cruanes
e979b88148 add IArray.iteri2 2021-06-15 20:54:43 -04:00