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
Simon Cruanes
fb7e422413
some improvements to Vec
2018-02-11 22:40:45 -06:00
Simon Cruanes
bc562242c9
add Heap.remove
2018-02-11 21:52:31 -06:00
Simon Cruanes
dd708b1583
todo
2018-02-11 20:42:55 -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
f52883f059
update tests
2018-02-08 22:19:28 -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
3e50a3fc5d
some updates to core lib
2018-01-26 21:32:21 -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
9e3484d2b3
update readme
2018-01-22 22:14:01 -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
7324647fb1
doc
2018-01-03 22:08:55 +01:00
Simon Cruanes
53cc8b35a0
more controled API for Res
2018-01-03 22:07:40 +01:00
Simon Cruanes
3f4f7ec7e4
a bit of doc
2018-01-03 22:01:12 +01:00
Simon Cruanes
c7015450a1
typo
2017-12-29 22:10:01 +01:00
Simon Cruanes
2caf53c24f
expose {push,pop} in main solver
2017-12-29 21:29:43 +01:00
Simon Cruanes
be929d056a
remove useless functions
2017-12-29 19:12:17 +01:00
Simon Cruanes
d47071c4f0
reinstate better way of picking watch literals
2017-12-29 19:00:54 +01:00
Simon Cruanes
70fcded713
reset some record accesses, for perf
2017-12-29 18:53:26 +01:00
Simon Cruanes
38b670ebc0
detail
2017-12-29 18:35:27 +01: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
c14f0ba020
make Solver.t more lightweight by removing some useless fields
2017-12-29 17:29:24 +01:00
Simon Cruanes
a65309d5e6
add optional size argument to create functions
2017-12-29 17:24:09 +01:00