Simon Cruanes
4b2afd7a05
wip: LIA theory
2022-01-13 12:55:36 -05:00
Simon Cruanes
8410a57f1a
wip: feat(LIA): LIA solver, will rely on LRA solver
...
we want to reuse the simplex, but do branch and bound + cutting planes
2022-01-11 14:00:04 -05:00
Simon Cruanes
2378fc37ac
fix LIA->LRA cast operation
2022-01-11 14:00:04 -05:00
Simon Cruanes
691ff12a01
wip: support LIA in input AST and base terms
2022-01-11 14:00:03 -05:00
Simon Cruanes
b6df2cd974
clause-less steps in proofs
...
these steps are checked only once, to accelerate checking, but the
result isn't known.
2022-01-03 22:59:43 -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
be1c1573b1
feat(proof): emit is-a terms properly
...
these occur in datatypes proofs.
2021-12-28 16:46:59 -05:00
Simon Cruanes
3b409c8944
feat(proof): add proof_r1 as a pendant to proof_p1 for non-equations
2021-12-17 11:38:07 -05:00
Simon Cruanes
e9b395b643
feat(proof): do not emit trivial clause_rw steps
...
if there is no rewriting going on, we can skip the step.
2021-11-28 16:33:57 -05:00
Simon Cruanes
aad1daa4e4
feat(quip): remove lit and not-normalization from quip
2021-11-28 13:36:19 -05:00
Simon Cruanes
c5c5426ead
quip: include all term definitions in proof
...
dependency analysis will not catch these, so we include them
unconditionally
2021-11-19 23:25:21 -05:00
Simon Cruanes
7d70994758
fix(proof): add neg-normalization
2021-11-14 22:50:05 -05:00
Simon Cruanes
ffa450ba08
proof: normalize clauses in rw
2021-11-10 18:30:12 -05:00
Simon Cruanes
8c780e3ed5
quip: add clause in expr_def
2021-11-10 18:04:52 -05:00
Simon Cruanes
0d00629923
more compressed output of equations
2021-11-10 13:23:29 -05:00
Simon Cruanes
72d79d7c0a
fix emission of reference terms
2021-10-29 22:35:19 -04:00
Simon Cruanes
6b1b1eb587
feat(proof): process more steps in proof reconstruction
...
also, use names for function application terms, so as to preserve
sharing.
2021-10-28 20:48:39 -04:00
Simon Cruanes
0abe4b7020
wip: decode more proof steps to quip
2021-10-27 21:50:28 -04:00
Simon Cruanes
4a30a06f87
wip: reconstruct quip proof from binary proof-trace
2021-10-26 21:57:17 -04:00
Simon Cruanes
b5749a1b72
emit many more proof steps
2021-10-22 21:31:44 -04:00
Simon Cruanes
c2b8d93cf4
refactor proof storage
2021-10-21 23:28:53 -04:00
Simon Cruanes
a871192c5e
fix bug in proof emission
2021-10-21 20:53:06 -04:00
Simon Cruanes
84f7a39423
fix doc test
2021-10-21 20:42:12 -04:00
Simon Cruanes
7e40851e1b
use sidekick-base.proof-trace in base
2021-10-21 20:32:47 -04:00
Simon Cruanes
63e7d6659e
wip: dump more steps to the trace file
2021-10-20 20:41:51 -04:00
Simon Cruanes
f5172a7927
wip: emit proof steps
2021-10-19 22:52:34 -04:00
Simon Cruanes
3589592296
wip: use real proofs
2021-10-16 22:00:29 -04:00
Simon Cruanes
597a6c378e
wip: split VecI32 and VecSmallInt
...
- use VecSmallInt for small integers of type `int`
- use VecI32 to store actual int32 (in particular for proof steps)
2021-10-16 20:31:56 -04:00
Simon Cruanes
af1ef089af
wip: proper proof production using Proof_ser-based traces
2021-10-15 23:00:09 -04:00
Simon Cruanes
73cca4ca18
move chunk_stack to util, fix some bugs
2021-10-14 23:18:21 -04:00
Simon Cruanes
beda972def
wip: feat(base): proof chunk storage
2021-10-14 21:41:47 -04:00
Simon Cruanes
3d17feab12
use standalone mode and promote for the BARE encoding of proofs
2021-10-12 22:45:45 -04:00
Simon Cruanes
fd1d068997
proof stubs and sat proof
2021-10-12 22:13:28 -04:00
Simon Cruanes
5e0652687a
wip: proof production using BARE for storage
2021-09-28 21:06:01 -04:00
Simon Cruanes
e7e8873295
fix more warnings
2021-08-27 09:28:59 -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
1ab7d34a7d
refactor: make it compile again
2021-08-20 18:18:30 -04:00
Simon Cruanes
9f01b98cde
wip: imperative proofs
...
- getting closer to having the SMT solver compile again
- dummy proof implementation
- DRUP proof implementation for pure SAT solver
2021-08-18 23:59:39 -04:00
Simon Cruanes
d53b3c291e
feat: add "drup" case to proofs
2021-07-20 23:27:11 -04:00
Simon Cruanes
564dcec252
cleanup msat, rename it sidekick.sat
2021-07-18 01:40:55 -04:00
Simon Cruanes
0368a29ada
add helper in base
2021-07-04 01:29:23 -04:00
Simon Cruanes
51ac678ccd
trivial helper
2021-07-04 00:06:42 -04:00
Simon Cruanes
4e07e6039a
add helpers for LRA in base
2021-07-03 23:49:14 -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
80b50e8744
refactor: add solver instance in sidekick base
...
move some functor instantiations from `sidekick-bin.smtlib` to
`sidekick-base.solver` so they're usable from a library.
2021-07-03 22:28:57 -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
79bc3def3f
refactor to get sidekick-base library
2021-07-03 20:20:19 -04:00
Simon Cruanes
813f645a9c
refactor: rename sidekick-base-term to sidekick-base
2021-07-03 17:42:19 -04:00