Commit graph

96 commits

Author SHA1 Message Date
Simon Cruanes
fd500a3d7d
fix some warnings 2022-07-14 21:56:37 -04:00
Simon Cruanes
1946a5e7cf
feat: construct model from congruence closure after th-combination
we already obtain a model from theories, and saturate the congruence
closure with it, it's a shame not to use it.
2022-02-18 14:59:27 -05:00
Simon Cruanes
a388c96fe3
cc: remove new_merges 2022-02-18 14:59:27 -05:00
Simon Cruanes
cdc5d160a7
cc: use backtrackable table 2022-02-18 14:59:27 -05:00
Simon Cruanes
da18ba3620
perf(cc): only assign model values to term present in CC 2022-02-18 14:59:26 -05:00
Simon Cruanes
6e941683a2
add with_model_mode to congruence closure
this mode:
- enables `set_mode_value`
- disables all callbacks
- can only be used locally with a push/pop wrapper
2022-02-18 14:59:26 -05:00
Simon Cruanes
95f84b4854
refactor(th-comb): provide full model to the CC
this way it can fail on merges of classes assigned conflicting value.
2022-02-18 14:59:26 -05:00
Simon Cruanes
fd66039c8d
wip: theory combination by exposing model (classes) directly to CC 2022-02-18 14:59:26 -05:00
Simon Cruanes
98c30bf0cc
updates and cleanup 2022-02-14 10:46:08 -05:00
Simon Cruanes
a33029129e
fix(CC): bug introduced by sharing mutable lazy state 2022-01-10 12:11:32 -05:00
Simon Cruanes
78df8252dc
bugfix in CC explanations 2022-01-05 10:31:33 -05:00
Simon Cruanes
63f50d03fa
feat: proper proof production for theory merges in CC
this involves resolution steps between the lemma (typically a kind of
horn clause with the merge as conclusion) and a bunch of literals
responsible for some equational hypotheses of this horn clause, being true
2021-12-29 15:56:54 -05:00
Simon Cruanes
80cb096e8a
feat: change signature of explanations for CC theory merges 2021-12-28 23:07:27 -05:00
Simon Cruanes
be2d57a717
feat(cc): add an invariant check before returning a model 2021-12-17 16:41:00 -05:00
Simon Cruanes
1779b7115a
wip: proof production (incl. better tracking of proofs in CC) 2021-10-11 14:27:14 -04:00
Simon Cruanes
d3537f2c3f
wip: refactor proof 2021-10-07 20:49:39 -04:00
Simon Cruanes
bbb995b0d5
refactor some names related to proofs; wip add unit paramod 2021-10-03 20:32:37 -04:00
Simon Cruanes
04f1ba063d
wip: adapt CC to new proofs 2021-09-29 22:19:16 -04:00
Simon Cruanes
acc682c5af
refactor(cc): simple renaming 2021-09-27 19:26:04 -04:00
Simon Cruanes
73b39fe075
fix more warnings 2021-08-27 21:34:26 -04:00
Simon Cruanes
e93e084eac
refactor: eager proofs; stronger preprocessing
proofs are now directly emitted (almost) everywhere, which simplifies
a lot of things. preprocessing is more recursive (a bit too much
really).
2021-08-22 01:13:41 -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
71360ad1f8 refactor: change signature of field access in CC 2021-07-04 00:25:59 -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
a223b6cd5c fix(cc): fix bad proof production for the merge-bool-parent case 2021-06-16 19:58:42 -04:00
Simon Cruanes
e32d949dd3 refactor CC a bit 2021-06-14 20:01:42 -04:00
Simon Cruanes
2eee760e29 refactor(proof): new serialization; faster implem 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
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
9380622096 small refactor 2021-05-03 10:36:04 -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
3693861008 debug msg 2021-03-18 12:13:39 -04:00
Simon Cruanes
45893e92f1 fix: missing preprocessing in LRA; better theory combination 2021-02-22 14:01:55 -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
3979380896 feat(profile): add instant probe 2020-12-22 16:45:55 -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
349d884664 chore: add sidekick-arith library, depends on zarith 2020-10-10 17:18:20 -04:00
Simon Cruanes
7a74ec45b7 fix 2020-10-10 16:39:36 -04:00
Simon Cruanes
e9931b377c remove bloody warn-error 2020-10-10 16:00:21 -04:00
Simon Cruanes
ae6d298790 move to containers 3.0 2020-09-08 22:33:24 -04:00
Simon Cruanes
7032d5220a fix typo in a name 2020-04-27 12:47:11 -04:00
Simon Cruanes
7cfdb3507c fix(th-data): fix acyclicity 2020-02-20 19:32:33 -06:00