Skip to content

regression with arith.solver=6 #7502

@mtzguido

Description

@mtzguido

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

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions