Commit graph

298 commits

Author SHA1 Message Date
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
Simon Cruanes
6aafaad48f feat(data): store is-a/select parents in a monoid 2019-12-28 06:15:50 -06:00
Simon Cruanes
d52fb1e5fd core: add iter_all in monoid class 2019-12-28 05:19:01 -06:00
Simon Cruanes
a4e3fd5a69 feat: provide simple repr->monoid mapping in core 2019-12-28 05:17:47 -06:00
Simon Cruanes
5b3cadf1e1 fix: missing type equality 2019-11-01 15:10:43 -05:00
Simon Cruanes
d4c3d3e443 cleanup: remove a few functions 2019-11-01 14:17:28 -05:00
Simon Cruanes
9ddce6a186 feat(check-cc): add statistics 2019-10-30 13:31:04 -05:00
Simon Cruanes
7d8589accd refactor: change the functor stack 2019-10-29 15:06:19 -05:00
Simon Cruanes
1658887ea3 feat: basic production of models 2019-10-02 18:44:02 -05:00
Alexander Bentkamp
7fe6f07c0b split on_merge into two events: pre and post merge 2019-08-21 11:43:59 -05:00
Simon Cruanes
769b80030a feat: progress bar in solver 2019-07-31 04:36:32 -05:00
Simon Cruanes
d527b2b945 fix: remove some module aliases for 4.08 2019-07-31 03:25:04 -05:00
Simon Cruanes
33a7843162 feat: expose more from atoms 2019-06-13 10:43:04 -05:00
Simon Cruanes
2430eb754d feat(cc): make bitfields non-global; remove dead code 2019-06-11 11:38:54 -05:00
Simon Cruanes
ed4ba4057f feat: solver actions are the same as CC actions 2019-06-11 10:28:00 -05:00
Simon Cruanes
3e7ef47fab feat: add CC.merge_t 2019-06-11 10:26:04 -05:00
Simon Cruanes
36449d1645 feat(cc): expose a way to access bitfields 2019-06-10 15:19:57 -05:00
Simon Cruanes
6c603d5589 refactor: remove code that checks invariants 2019-06-10 14:28:05 -05:00