Closed rainoftime closed 4 years ago
Related https://github.com/Z3Prover/z3/issues/3881
Hi, for the following formula
(set-logic HORN) (set-option :fp.xform.fix_unbound_vars true) (set-option :fp.xform.bit_blast true) (assert (forall ((q42 (_ BitVec 27)) (q43 (_ BitVec 27)) (q44 (_ BitVec 27)) (q45 (_ BitVec 27)) (q46 (_ BitVec 27)) (q47 (_ BitVec 27)) (q48 (_ BitVec 27)) (q49 (_ BitVec 27)) (q50 (_ BitVec 27)) (q51 (_ BitVec 27)) (q52 (_ BitVec 10))) (=> (distinct ((_ rotate_right 5) q52) q52) (bvslt (_ bv0 27) q46)))) (assert (forall ((q53 (_ BitVec 27)) (q54 (_ BitVec 27)) (q55 (_ BitVec 27)) (q56 (_ BitVec 27)) (q57 (_ BitVec 27)) (q58 (_ BitVec 27)) (q59 (_ BitVec 27)) (q60 Bool)) (=> (xor q60 q60 q60 q60 q60 q60) (distinct (_ bv0 27) (bvsrem (_ bv0 27) q56))))) (check-sat)
z3 commit d53e30e throws a memory leak
==39652==ERROR: LeakSanitizer: detected memory leaks [295/1876] Direct leak of 256 byte(s) in 1 object(s) allocated from: #0 0x7fa2b43e6b90 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdeb90) #1 0x2c438f1 in memory::allocate(unsigned long) ../src/util/memory_manager.cpp:268 #2 0x2c43424 in memory::allocate(char const*, int, char const*, unsigned long) ../src/util/memory_manager.cpp:207 #3 0xa9eb69 in datalog::mk_bit_blast::impl::operator()(datalog::rule_set const&) ../src/muz/transforms/dl_mk_bit_blast.cpp:279 #4 0xa9b603 in datalog::mk_bit_blast::operator()(datalog::rule_set const&) ../src/muz/transforms/dl_mk_bit_blast.cpp:335 #5 0xb6586b in datalog::rule_transformer::operator()(datalog::rule_set&) ../src/muz/base/dl_rule_transformer.cpp:88 #6 0xb26651 in datalog::context::transform_rules(datalog::rule_transformer&) ../src/muz/base/dl_context.cpp:706 #7 0xa9a54f in datalog::apply_default_transformation(datalog::context&) ../src/muz/transforms/dl_transforms.cpp:101 #8 0x74f2e5 in spacer::dl_interface::query(expr*) ../src/muz/spacer/spacer_dl_interface.cpp:106 #9 0xb283d5 in datalog::context::query(expr*) ../src/muz/base/dl_context.cpp:880 #10 0x69e7dc in horn_tactic::imp::verify(expr*, ref<goal> const&, sref_buffer<goal, 16u>&, ref<model_converter>&, ref<proof_converter>&) .. /src/muz/fp/horn_tactic.cpp:255 #11 0x69e37b in horn_tactic::imp::operator()(ref<goal> const&, sref_buffer<goal, 16u>&) ../src/muz/fp/horn_tactic.cpp:241 #12 0x6a025f in horn_tactic::operator()(ref<goal> const&, sref_buffer<goal, 16u>&) ../src/muz/fp/horn_tactic.cpp:405 #13 0x1e982af in cleanup_tactical::operator()(ref<goal> const&, sref_buffer<goal, 16u>&) ../src/tactic/tactical.cpp:915 #14 0x1e86483 in exec(tactic&, ref<goal> const&, sref_buffer<goal, 16u>&) ../src/tactic/tactic.cpp:148 #15 0x1e86a11 in check_sat(tactic&, ref<goal>&, ref<model>&, labels_vec&, obj_ref<app, ast_manager>&, obj_ref<dependency_manager<ast_manag$ #16 0x1e0f28a in check_sat_core2 ../src/solver/tactic2solver.cpp:185 #17 0x1e0cba5 in solver_na2as::check_sat_core(unsigned int, expr* const*) ../src/solver/solver_na2as.cpp:67 #18 0x1e073d7 in combined_solver::check_sat_core(unsigned int, expr* const*) ../src/solver/combined_solver.cpp:246 #19 0x1e0414d in solver::check_sat(unsigned int, expr* const*) ../src/solver/solver.cpp:330 #20 0x1db3426 in cmd_context::check_sat(unsigned int, expr* const*) ../src/cmd_context/cmd_context.cpp:1581 #21 0x1d31423 in smt2::parser::parse_check_sat() ../src/parsers/smt2/smt2parser.cpp:2596 #22 0x1d3587c in smt2::parser::parse_cmd() ../src/parsers/smt2/smt2parser.cpp:2938 #23 0x1d37089 in smt2::parser::operator()() ../src/parsers/smt2/smt2parser.cpp:3130 #24 0x1d11010 in parse_smt2_commands(cmd_context&, std::istream&, bool, params_ref const&, char const*) ../src/parsers/smt2/smt2parser.cpp: 3179 #25 0x46f7a1 in read_smtlib2_commands(char const*) ../src/shell/smtlib_frontend.cpp:89 #26 0x459aac in main ../src/shell/main.cpp:352
try with 136b0b23ce50285acbad20bca4a6eefbdaf39f9b
Fixed. Now the result is "unknown"
Related https://github.com/Z3Prover/z3/issues/3881
Hi, for the following formula
z3 commit d53e30e throws a memory leak