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