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
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
6302d13fe8
wip: use Lit.Set.t for explanations
2018-05-25 19:36:21 -05:00
Simon Cruanes
24bbe97ceb
rename to sidekick
2018-05-09 19:28:41 -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
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
98934ab74f
move boolean builtins to a sublibrary
2018-02-08 23:19:35 -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
1d5c1c187c
wip: basic SMT infrastructure
...
- basic types, including terms and nodes (internalized terms)
- congruence closure
- utils
2018-01-25 23:32:36 -06:00