-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
Hi, we found this failure while upgrading F* projects, specifically HACL* to Z3 4.13.3. Some files were taking considerably longer times when compared to Z3 4.8.5 (>1 hour from just a minute or two), and failing instead of succeeding.
Here's one somewhat distilled example (still running ddsmt to minimize further). hacl-min.smt2.txt
I bisected the issue but I don't think it's very useful. It points to 28c827f:
# first bad commit: [28c827fb69b3de2449044dedf62233c09e658ee1] fix #2919
Specifically it seems to be this chunk of it
28c827f#diff-1e1c1b4bddfd09f68a39e64cf5fcda0bb3bec7306f9c8548fa2a081e5afab4f8L840-R840
- if (st.m_num_non_linear != 0 && st.m_has_int)
- m_context.register_plugin(alloc(smt::theory_mi_arith, m_manager, m_params));
- else
- setup_lra_arith();
+ setup_lra_arith();which I think is just making sure that solver=6 is respected.
(Also, even if Z3 fails here, it seems to take a really long time for the rlimit we give it, so I suspect there's also an rlimit leak here somewhere. Or the units are very different between solver 2 and 6.)
Some more context: hacl-star/hacl-star#1014