| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
The "uninitialized" value is a _list_ of chunks that are part of the
initial state for the witness trace.
|
|
|
|
|
|
|
| |
The witness metadata was missing fine grained FFs completely and for
coarse grained FFs where the output connection has multiple chunks it
lacked the offset of the chunk within the SMT expression. This fixes
both, the later by adding an "smtoffset" field to the metadata.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a native json based witness trace format. By having a common
format that includes everything we support, and providing a conversion
utility (yosys-witness) we no longer need to implement every format for
every tool that deals with witness traces, avoiding a quadratic
opportunity to introduce subtle bugs.
Included:
* smt2: New yosys-smt2-witness info lines containing full hierarchical
paths without lossy escaping.
* yosys-smtbmc --dump-yw trace.yw: Dump results in the new format.
* yosys-smtbmc --yw trace.yw: Read new format as constraints.
* yosys-witness: New tool to convert witness formats.
Currently this can only display traces in a human-readable-only
format and do a passthrough read/write of the new format.
* ywio.py: Small python lib for reading and writing the new format.
Used by yosys-smtbmc and yosys-witness to avoid duplication.
|
| |
|
| |
|
|\
| |
| | |
smtbmc: recognize cvc5 and fix unrolling for cvc4/cvc5
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
s/((Claire|Xen|Xenia|Clifford)\s+)+(Wolf|Xen)\s+<(claire|clifford)@(symbioticeda.com|clifford.at|yosyshq.com)>/Claire Xenia Wolf <claire@yosyshq.com>/gi;
s/((Nina|Nak|N\.)\s+)+Engelhardt\s+<nak@(symbioticeda.com|yosyshq.com)>/N. Engelhardt <nak@yosyshq.com>/gi;
s/((David)\s+)+Shah\s+<(dave|david)@(symbioticeda.com|yosyshq.com|ds0.me)>/David Shah <dave@ds0.me>/gi;
s/((Miodrag)\s+)+Milanovic\s+<(miodrag|micko)@(symbioticeda.com|yosyshq.com)>/Miodrag Milanovic <micko@yosyshq.com>/gi;
s,https?://www.clifford.at/yosys/,http://yosyshq.net/yosys/,g;
|
|
|
|
|
|
| |
options after it.
Refer to the SMT-LIB specification, section 4.1.7. According to the spec, some options can only be specified in `start` mode. Once the solver sees `set-logic`, it moves to `assert` mode.
|
| |
|
|
|
|
| |
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
|
| |
|
|
|
| |
Invoking sby in macOS Catalina fails because of bizarre stack limits in Catalina.
|
|
|
|
| |
Co-Authored-By: clairexen <claire@symbioticeda.com>
|
|
|
|
| |
and CVC4.
|
| |
|
|
|
|
|
|
| |
the default.
Ensures that "BV" is the logic whenever solving an exists-forall problem with Yices, moves the "(set-logic ...)" directive above any non-info line, sets the `ef-max-iters` parameter to a very high number when using Yices in exists-forall mode so as not to prematurely abandon difficult problems, and does not provide the incompatible "--incremental" Yices argument when in exists-forall mode.
|
| |
|
|
|
|
| |
"sat", "unsat", or "unknown".
|
|
|
|
| |
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
|
|
|
|
|
|
| |
Modifies smt2 backend to recognize `$anyconst` etc. assigned to a wire with the `maximize` or `minimize` attribute and emit `; yosys-smt2-maximize` or `; yosys-smt2-minimize` directives as appropriate.
Modifies `backends/smt2/smtbmc.py` and `smtio.py` to recognize those directives and emit a `(maximize ...)` or `(minimize ...)` command at the end of `smt_forall_assert()`, as described in the paper "νZ - An Optimizing SMT Solver" by Nikolaj Bjørner et al.
Adds an example `examples/smtbmc/demo9.v` to show how it can be used.
|
|
|
|
| |
Signed-off-by: Claire Wolf <clifford@clifford.at>
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
| |
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|
|
|
|
|
| |
Smt2Worker::get_id() behavior)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|\
| |
| | |
improve rlimit handling in smtio.py
|
| |
| |
| |
| | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
| |
| |
| |
| | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
| |
| |
| |
| | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|/
|
|
|
|
| |
non-incremental solving
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
| |
|
|
|
|
| |
implementations.
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|