Commit graph

108 commits

Author SHA1 Message Date
Simon Cruanes
1ecb189fd5
refactor: core and CC 2022-07-30 21:17:20 -04:00
Simon Cruanes
a9ae790d7f
refactor(cc): split into modules, fully defunctorize 2022-07-29 23:25:48 -04:00
Simon Cruanes
c09650db51
refactor(cc): continue de-functorizing 2022-07-29 00:15:05 -04:00
Simon Cruanes
464bc66474
wip: refactor(cc): remove layers of functorization 2022-07-29 00:02:27 -04:00
Simon Cruanes
851dda696a
feat(cc): have 2 phases of pre-merge events
the first phase observes plugin data unchanged; the second one
is used to update plugin data themselves. This fix a bug that manifests
itself depending on implementation details of Event, where some theory's
event handler fires too late and observes a state that has already
changed.
2022-07-22 21:31:42 -04:00
Simon Cruanes
6da6284711
refactor(cc): use explicit actions in CC, not effectful functions 2022-07-22 21:26:21 -04:00
Simon Cruanes
e37f66c394
feat(cc): remove same-val explanations and model mode 2022-07-21 23:29:07 -04:00
Simon Cruanes
dc68a60151
feat(cc): remove callbacks, return list of actions 2022-07-21 23:21:07 -04:00
Simon Cruanes
6dca63b0ea
renamings 2022-07-18 23:27:12 -04:00
Simon Cruanes
f3f0628261
large refactor with signature splitting, events, etc. 2022-07-18 23:20:07 -04:00
Simon Cruanes
633a658e0c
wip: use new sigs 2022-07-15 23:51:53 -04:00
Simon Cruanes
a1bc186d2e
use ocamlformat 2022-07-14 22:09:13 -04:00
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