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
Simon Cruanes
bb449257d8
fix(solver): in final-check, fixpoint until CC has no merges
2020-02-15 14:40:57 -06:00
Simon Cruanes
e21dea4780
feat(cc): flag some explanations as being theory-induced
2020-01-17 18:49:14 -06:00