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
Simon Cruanes
e21dea4780
feat(cc): flag some explanations as being theory-induced
2020-01-17 18:49:14 -06:00
Simon Cruanes
a31b2b36ef
fixes: add missing expl in monoids; handle is-c t
2020-01-14 22:41:33 -06:00
Simon Cruanes
b332e8ceb0
fix: preprocess away "ite"
2020-01-14 20:23:23 -06:00
Simon Cruanes
91e9b6cc2c
feat: initial support for is-a/select
2019-12-28 07:08:23 -06:00