Simon Cruanes
279ceade78
feat(base): in Form, use uncurried forms for and/or
2022-08-22 22:12:27 -04:00
Simon Cruanes
57941a952a
add th-bool-dyn for dynamic boolean clausification
2022-08-16 21:30:17 -04:00
Simon Cruanes
6c14690fba
cleanup code
2022-08-16 21:27:46 -04:00
Simon Cruanes
e233c846ec
refactor: cleanup config a bit
2022-08-16 21:27:32 -04:00
Simon Cruanes
85314379a5
fix type of is_a
2022-08-12 23:21:56 -04:00
Simon Cruanes
85eef2d117
feat(base/data): fix types for cstor/select term builders
2022-08-12 23:17:20 -04:00
Simon Cruanes
b73c1bf464
feat(bool): use binary symbols for boolean operators
...
this helps in simplifying only fully applied boolean operators, and
avoiding simplifying the binary function `(or)` to `(false)`
2022-08-10 22:41:53 -04:00
Simon Cruanes
1f79ee05f2
wip: make Base really usable, add th-data/th-bool
2022-08-10 22:08:43 -04:00
Simon Cruanes
95dcb0ae74
wip: refactor further
2022-08-09 22:41:13 -04:00
Simon Cruanes
7d59846d72
wip: refactor base
2022-08-08 21:52:39 -04:00
Simon Cruanes
5b6fd14dcf
wip: refactor(base): split into several views, all based on Const
2022-08-07 22:41:26 -04:00
Simon Cruanes
24e79df776
wip: refactor base
2022-08-05 21:56:17 -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
00dec7ced8
remove iarray
2022-07-15 21:06:46 -04:00
Simon Cruanes
5a559bec92
remove veci32
2022-07-15 20:32:06 -04:00
Simon Cruanes
a1bc186d2e
use ocamlformat
2022-07-14 22:09:13 -04:00
Simon Cruanes
e2b9b2874c
fix more warnings; remove never completed LIA stuff
2022-07-14 22:01:23 -04:00
Simon Cruanes
b16fce6f26
Merge branch 'master' into wip-model-th-comb
2022-07-14 21:46:36 -04:00
Simon Cruanes
e177534a46
chore: ugprade bare encoding
2022-02-16 14:20:27 -05:00
Simon Cruanes
c22fc62f3e
base: remove simplex cases in arith terms
2022-02-08 13:14:07 -05:00
Simon Cruanes
cbc9c5ac6f
refactor(smt): preprocessing is now using a queue of delayed actions
...
- preprocessing doesn't simplify anymore, it assumes terms are already
simplified. It only adds clauses/adds literals, it does not return
new terms.
- adding clauses/literals to SAT is done as delayed actions, to avoid
issues of reentrancy.
These actions are performed after preprocessing, in a loop that has
access to the SAT solver.
2022-02-04 16:08:01 -05:00
Simon Cruanes
3fdb07b533
feat: handle get-model/get-value from smtlib inputs
2022-02-02 15:51:44 -05:00
Simon Cruanes
70206101f0
feat: update bare
2022-02-01 22:10:31 -05:00
Simon Cruanes
3c41ab2484
refactor: new term representation for LIA/LRA
2022-01-31 15:13:25 -05:00
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