Commit graph

83 commits

Author SHA1 Message Date
Simon Cruanes
9f01b98cde wip: imperative proofs
- getting closer to having the SMT solver compile again
- dummy proof implementation
- DRUP proof implementation for pure SAT solver
2021-08-18 23:59:39 -04:00
Simon Cruanes
7bead748a6 refactor: move SAT_PROOF into sidekick.core
SAT proofs are part of bigger proofs, now. And we expect them to work on
the literals of CDCL(T) directly, bypassing the low level boolean atoms
2021-08-17 23:59:02 -04:00
Simon Cruanes
d40ce304ae wip: refactor proofs into traces 2021-08-17 09:29:46 -04:00
Simon Cruanes
27e775ee04 wip: refactor proofs for SMT 2021-08-12 22:05:49 -04:00
Simon Cruanes
d53b3c291e feat: add "drup" case to proofs 2021-07-20 23:27:11 -04:00
Simon Cruanes
47bb521158 wip: refactor SAT solver 2021-07-19 09:57:02 -04:00
Simon Cruanes
162fd37d9d wip: refactor 2021-07-19 09:57:02 -04:00
Simon Cruanes
71360ad1f8 refactor: change signature of field access in CC 2021-07-04 00:25:59 -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
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
a223b6cd5c fix(cc): fix bad proof production for the merge-bool-parent case 2021-06-16 19:58:42 -04:00
Simon Cruanes
252f7243a4 feat(proof): add binary res/res1 2021-06-15 20:54:27 -04:00
Simon Cruanes
899ea67188 post-rebase fix 2021-06-11 21:55:44 -04:00
Simon Cruanes
2eee760e29 refactor(proof): new serialization; faster implem 2021-06-11 21:53:13 -04:00
Simon Cruanes
19e083c682 produce nn steps 2021-06-11 21:53:13 -04:00
Simon Cruanes
ef3fa2b7a7 use newer quip format, with bool-c taking terms 2021-06-11 21:53:13 -04:00
Simon Cruanes
7507a7f0b1 proofs: remove with_defs 2021-06-11 21:53:13 -04:00
Simon Cruanes
19e6f80b45 refactor(proof): rename defc to stepc 2021-06-11 21:53:13 -04:00
Simon Cruanes
c02da6ce8a feat(proof): progress on preprocessing; proper proofs for th-bool 2021-06-11 21:53:12 -04:00
Simon Cruanes
502dce503c refactor(proof): merge proof and lemma, add composite proof constructor 2021-06-11 21:51:53 -04:00
Simon Cruanes
22d6786c40 refactor(proof): more and better constructs; compile again 2021-06-11 21:51:15 -04:00
Simon Cruanes
ff7a87f3fb wip: feat(proof): insert proof constructs in most of sidekick 2021-06-11 21:50:25 -04:00
Simon Cruanes
57bf44dfb9 feat: basic proof production for QF_UF (wip) 2021-06-11 21:47:53 -04:00
Simon Cruanes
4fd8afb129 more docs; move some code around for a flatter src/ dir structure 2021-06-11 18:47:29 -04:00
Simon Cruanes
12ba49ae5f more doc 2021-06-10 13:00:00 -04:00
Simon Cruanes
e3a8422ab0 udpate CI; bump minimal ocaml to 4.04; add auto-doc
run simplex tests only on OCaml >= 4.08
2021-06-10 12:57:23 -04:00
Simon Cruanes
18fbb950bc feat(CC): change cc_view so that App_ho is curried 2021-04-01 22:28:46 -04:00
Simon Cruanes
ff77617a5d fix(monoid): call find on sub-nodes 2021-03-29 13:30:13 -04:00
Simon Cruanes
6d7edbb601 fix(CC/monoid): in monoid, store N.t, not a term.
make sure the sub-elements of the monoid are represented in the
congruence closure before-hand.
2021-03-29 13:30:13 -04:00
Simon Cruanes
be97938e12 refactor: remove Value, just use terms in the model 2021-03-29 13:30:13 -04:00
Simon Cruanes
b6713fb833 refactor: rename some hooks; prepare for model generation in th-data 2021-03-29 13:30:13 -04:00
Simon Cruanes
3d2edc6b3b feat: model_hook type for cooperative model production 2021-03-29 13:30:13 -04:00
Simon Cruanes
3aadb055b6 refactor: make proof production lazy 2021-03-19 17:26:30 -04:00
Simon Cruanes
17702729d5 feat(core): expose a preprocess function 2021-03-18 14:14:06 -04:00
Simon Cruanes
07ca5546f5 refator(preproc): remove explicit recursion, but rewrite top-down
give a chance to simplifiers to rewrite before we rewrite subterms.
2021-03-18 12:19:30 -04:00
Simon Cruanes
5f9675e7d1 feat: expose Atom.neg 2021-03-17 15:01:39 -04:00
Simon Cruanes
fd8b598650 feat: reexport type state 2021-03-17 14:43:46 -04:00
Simon Cruanes
0aa13ca808 refactor: provide a state for Ty.bool in core signature 2021-02-24 15:52:54 -05:00
Simon Cruanes
a8e2764e92 lra: refactor theory combination (have CC tell us what terms are subterms) 2021-02-22 12:09:44 -05:00
Simon Cruanes
0e5e40f145 feat(core/cc): expose more from the congruence closure 2021-02-22 12:09:44 -05:00
Simon Cruanes
9839e5a36b feat(core): add push_decision, for model-based th combination 2020-11-17 18:23:16 -05:00
Simon Cruanes
60fe3506d5 feat(core): add CC.explain_eq to explain why two nodes were merged 2020-11-17 18:22:51 -05:00
Simon Cruanes
9a3e387405 refactor: explicit recursion in preprocessing
if a preprocessor fires, it's up to it to preprocess subterms. rewriting
is now from the root, not the leaves on.

Use that in LRA to rewrite under linear expressions.
2020-11-12 18:21:37 -05:00
Simon Cruanes
c67e44e654 detail 2020-10-09 23:59:38 -04:00
Simon Cruanes
95edfd9aa9 wip: LRA theory 2020-09-23 21:58:54 -04:00
Simon Cruanes
ae6d298790 move to containers 3.0 2020-09-08 22:33:24 -04:00
Simon Cruanes
bb449257d8 fix(solver): in final-check, fixpoint until CC has no merges 2020-02-15 14:40:57 -06:00
Simon Cruanes
11d8f8e879 remove dead code, some printing info 2020-02-15 14:33:44 -06:00