Skip to content

Commit c476c4a

Browse files
smtfd solver that uses lazy iteration around fd to produce theory lemmas
Signed-off-by: Nikolaj Bjorner <[email protected]>
1 parent e881c4a commit c476c4a

File tree

4 files changed

+1029
-0
lines changed

4 files changed

+1029
-0
lines changed

src/ast/rewriter/bv_rewriter.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2244,6 +2244,10 @@ br_status bv_rewriter::mk_bv_mul(unsigned num_args, expr * const * args, expr_re
22442244
br_status bv_rewriter::mk_bit2bool(expr * n, int idx, expr_ref & result) {
22452245
rational v, bit;
22462246
unsigned sz = 0;
2247+
if (m_util.is_mkbv(n)) {
2248+
result = to_app(n)->get_arg(idx);
2249+
return BR_DONE;
2250+
}
22472251
if (!is_numeral(n, v, sz))
22482252
return BR_FAILED;
22492253
if (idx < 0 || idx >= static_cast<int>(sz))

src/tactic/fd_solver/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@ z3_add_component(fd_solver
44
enum2bv_solver.cpp
55
fd_solver.cpp
66
pb2bv_solver.cpp
7+
smtfd_solver.cpp
78
COMPONENT_DEPENDENCIES
89
sat_solver
910
TACTIC_HEADERS
1011
fd_solver.h
12+
smtfd_solver.h
1113
)

0 commit comments

Comments
 (0)