sosy-lab/sv-benchmarks

Incorrectly labeled benchmarks in nla-digibench-scaling

mchalupa opened this issue · 4 comments

Benchmarks nla-digibench-scaling/divbin_unwindbound{10, 20, 50, 100}.yml should be labeled false(unreach-call), as witnessed by the following counterexamples:

diff --git a/c/nla-digbench-scaling/divbin_unwindbound10.i b/c/nla-digbench-scaling/divbin_un
windbound10.i
index 94a6bc46c8..4e182d9b65 100644
--- a/c/nla-digbench-scaling/divbin_unwindbound10.i
+++ b/c/nla-digbench-scaling/divbin_unwindbound10.i
@@ -26,8 +26,8 @@ int counter = 0;
 int main() {
   unsigned A, B;
   unsigned q, r, b;
-    A = __VERIFIER_nondet_unsigned_int();
-    B = __VERIFIER_nondet_unsigned_int();
+    A = 3968860678;
+    B = 1603972161;
     assume_abort_if_not(B < (0x7fffffff * 2U + 1U)/2);
     assume_abort_if_not(B >= 1);
     q = 0;
diff --git a/c/nla-digbench-scaling/divbin_unwindbound100.i b/c/nla-digbench-scaling/divbin_u
nwindbound100.i
index 09401c079a..565325f193 100644
--- a/c/nla-digbench-scaling/divbin_unwindbound100.i
+++ b/c/nla-digbench-scaling/divbin_unwindbound100.i
@@ -26,8 +26,8 @@ int counter = 0;
 int main() {
   unsigned A, B;
   unsigned q, r, b;
-    A = __VERIFIER_nondet_unsigned_int();
-    B = __VERIFIER_nondet_unsigned_int();
+    A = 3489603569;
+    B = 1541052197;
     assume_abort_if_not(B < (0x7fffffff * 2U + 1U)/2);
     assume_abort_if_not(B >= 1);
     q = 0;
diff --git a/c/nla-digbench-scaling/divbin_unwindbound20.i b/c/nla-digbench-scaling/divbin_unwindbound20.i
index 24c7026b34..b37e70cbc3 100644
--- a/c/nla-digbench-scaling/divbin_unwindbound20.i
+++ b/c/nla-digbench-scaling/divbin_unwindbound20.i
@@ -26,8 +26,8 @@ int counter = 0;
 int main() {
   unsigned A, B;
   unsigned q, r, b;
-    A = __VERIFIER_nondet_unsigned_int();
-    B = __VERIFIER_nondet_unsigned_int();
+    A = 3352618105;
+    B = 1600823033;
     assume_abort_if_not(B < (0x7fffffff * 2U + 1U)/2);
     assume_abort_if_not(B >= 1);
    q = 0;
diff --git a/c/nla-digbench-scaling/divbin_unwindbound50.i b/c/nla-digbench-scaling/divbin_unwindbound50.i
index 4eafca2d84..8ebf02f558 100644
--- a/c/nla-digbench-scaling/divbin_unwindbound50.i
+++ b/c/nla-digbench-scaling/divbin_unwindbound50.i
@@ -26,8 +26,8 @@ int counter = 0;
 int main() {
   unsigned A, B;
   unsigned q, r, b;
-    A = __VERIFIER_nondet_unsigned_int();
-    B = __VERIFIER_nondet_unsigned_int();
+    A = 3267711591;
+    B = 1576931915;
     assume_abort_if_not(B < (0x7fffffff * 2U + 1U)/2);
     assume_abort_if_not(B >= 1);
     q = 0;

I am pretty sure you are correct. I will prepare a PR with fixes for that today if time allows it.

If the fix is just to relabel the benchmarks, I can do that. But I am not sure how to proceed if you'd like to also add the fixed versions.

The main obstacle here is to not just fix the verdict in the yml files, but actually make generate.py reflect the changed verdicts and generate the yml files accordingly. But here it was quite easy because we already hat a similar case, I just created the PR at #1242

I also checked your counterexamples and was able to confirm them.

The PR was merged, so I'm closing this issue.