change SMTChecker default settings

This commit is contained in:
Leo Alt
2023-05-24 12:03:57 +02:00
parent 02a07fdf46
commit e698a22ca3
32 changed files with 66 additions and 583 deletions
@@ -1 +1 @@
--model-checker-engine all
--model-checker-engine all --model-checker-targets divByZero
@@ -1 +1 @@
--model-checker-engine bmc
--model-checker-engine bmc --model-checker-targets divByZero
@@ -1 +1 @@
--model-checker-engine chc
--model-checker-engine chc --model-checker-targets divByZero
@@ -1 +1 @@
--model-checker-engine all --model-checker-div-mod-no-slacks
--model-checker-engine all --model-checker-div-mod-no-slacks --model-checker-targets divByZero
@@ -1 +1 @@
--model-checker-engine bmc --model-checker-div-mod-no-slacks
--model-checker-engine bmc --model-checker-div-mod-no-slacks --model-checker-targets divByZero
@@ -1 +1 @@
--model-checker-engine chc --model-checker-div-mod-no-slacks
--model-checker-engine chc --model-checker-div-mod-no-slacks --model-checker-targets divByZero
@@ -1,18 +1,3 @@
Warning: CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)
--> model_checker_targets_default_all_engines/input.sol:9:3:
|
9 | 2 / x;
| ^^^^^
Warning: CHC: Assertion violation happens here.
Counterexample:
arr = []
@@ -27,52 +12,3 @@ test.f(0x0, 1)
|
11 | assert(x > 0);
| ^^^^^^^^^^^^^
Warning: CHC: Empty array "pop" happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)
--> model_checker_targets_default_all_engines/input.sol:12:3:
|
12 | arr.pop();
| ^^^^^^^^^
Warning: CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)
--> model_checker_targets_default_all_engines/input.sol:13:3:
|
13 | arr[x];
| ^^^^^^
Warning: BMC: Condition is always true.
--> model_checker_targets_default_all_engines/input.sol:6:11:
|
6 | require(x >= 0);
| ^^^^^^
Note: Callstack:
Warning: BMC: Insufficient funds happens here.
--> model_checker_targets_default_all_engines/input.sol:10:3:
|
10 | a.transfer(x);
| ^^^^^^^^^^^^^
Note: Counterexample:
a = 0
x = 0
Note: Callstack:
Note:
@@ -1,35 +1,3 @@
Warning: BMC: Condition is always true.
--> model_checker_targets_default_bmc/input.sol:6:11:
|
6 | require(x >= 0);
| ^^^^^^
Note: Callstack:
Warning: BMC: Division by zero happens here.
--> model_checker_targets_default_bmc/input.sol:9:3:
|
9 | 2 / x;
| ^^^^^
Note: Counterexample:
<result> = 0
a = 0
x = 0
Note: Callstack:
Note:
Warning: BMC: Insufficient funds happens here.
--> model_checker_targets_default_bmc/input.sol:10:3:
|
10 | a.transfer(x);
| ^^^^^^^^^^^^^
Note: Counterexample:
a = 0
x = 0
Note: Callstack:
Note:
Warning: BMC: Assertion violation happens here.
--> model_checker_targets_default_bmc/input.sol:11:3:
|
@@ -1,18 +1,3 @@
Warning: CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)
--> model_checker_targets_default_chc/input.sol:9:3:
|
9 | 2 / x;
| ^^^^^
Warning: CHC: Assertion violation happens here.
Counterexample:
arr = []
@@ -27,33 +12,3 @@ test.f(0x0, 1)
|
11 | assert(x > 0);
| ^^^^^^^^^^^^^
Warning: CHC: Empty array "pop" happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)
--> model_checker_targets_default_chc/input.sol:12:3:
|
12 | arr.pop();
| ^^^^^^^^^
Warning: CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)
--> model_checker_targets_default_chc/input.sol:13:3:
|
13 | arr[x];
| ^^^^^^
@@ -1 +1 @@
--model-checker-engine all --model-checker-timeout 1000
--model-checker-engine all --model-checker-timeout 1000 --model-checker-targets all
@@ -1 +1 @@
--model-checker-engine bmc --model-checker-timeout 1000
--model-checker-engine bmc --model-checker-timeout 1000 --model-checker-targets all
@@ -1 +1 @@
--model-checker-engine chc --model-checker-timeout 1000
--model-checker-engine chc --model-checker-timeout 1000 --model-checker-targets all
@@ -16,6 +16,7 @@
{
"modelChecker":
{
"targets": ["divByZero"],
"engine": "all"
}
}
@@ -16,6 +16,7 @@
{
"modelChecker":
{
"targets": ["divByZero"],
"engine": "bmc"
}
}
@@ -16,6 +16,7 @@
{
"modelChecker":
{
"targets": ["divByZero"],
"engine": "chc"
}
}
@@ -16,6 +16,7 @@
{
"modelChecker":
{
"targets": ["divByZero"],
"engine": "all",
"divModNoSlacks": true
}
@@ -16,6 +16,7 @@
{
"modelChecker":
{
"targets": ["divByZero"],
"engine": "bmc",
"divModNoSlacks": true
}
@@ -16,6 +16,7 @@
{
"modelChecker":
{
"targets": ["divByZero"],
"engine": "chc",
"divModNoSlacks": true
}
@@ -16,6 +16,7 @@
{
"modelChecker":
{
"targets": ["divByZero"],
"engine": "chc",
"divModNoSlacks": 42
}
@@ -3,7 +3,8 @@
{
"smtlib2queries":
{
"0x75b95497d56c30e254a59358d72ddd4e78f9e90db621cfe677e85d05b2252411": "(set-option :produce-models true)
"0x1709577b0e186388ed08c2cf085f20c115c4c94745fb102c5be552ff2e4c7028": "(set-option :produce-models true)
(set-option :timeout 1000)
(set-logic ALL)
(declare-fun |x_3_3| () Int)
(declare-fun |error_0| () Int)
@@ -1,44 +1,6 @@
{
"errors":
[
{
"component": "general",
"errorCode": "4281",
"formattedMessage": "Warning: CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)
--> A:10:7:
|
10 | \t\t\t\t\t\t2 / x;
| \t\t\t\t\t\t^^^^^
",
"message": "CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)",
"severity": "warning",
"sourceLocation":
{
"end": 216,
"file": "A",
"start": 211
},
"type": "Warning"
},
{
"component": "general",
"errorCode": "6328",
@@ -76,150 +38,6 @@ test.f(0x0, 1)",
"start": 245
},
"type": "Warning"
},
{
"component": "general",
"errorCode": "2529",
"formattedMessage": "Warning: CHC: Empty array \"pop\" happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)
--> A:13:7:
|
13 | \t\t\t\t\t\tarr.pop();
| \t\t\t\t\t\t^^^^^^^^^
",
"message": "CHC: Empty array \"pop\" happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)",
"severity": "warning",
"sourceLocation":
{
"end": 275,
"file": "A",
"start": 266
},
"type": "Warning"
},
{
"component": "general",
"errorCode": "6368",
"formattedMessage": "Warning: CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)
--> A:14:7:
|
14 | \t\t\t\t\t\tarr[x];
| \t\t\t\t\t\t^^^^^^
",
"message": "CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)",
"severity": "warning",
"sourceLocation":
{
"end": 289,
"file": "A",
"start": 283
},
"type": "Warning"
},
{
"component": "general",
"errorCode": "6838",
"formattedMessage": "Warning: BMC: Condition is always true.
--> A:7:15:
|
7 | \t\t\t\t\t\trequire(x >= 0);
| \t\t\t\t\t\t ^^^^^^
Note: Callstack:
",
"message": "BMC: Condition is always true.",
"secondarySourceLocations":
[
{
"message": "Callstack:"
}
],
"severity": "warning",
"sourceLocation":
{
"end": 165,
"file": "A",
"start": 159
},
"type": "Warning"
},
{
"component": "general",
"errorCode": "1236",
"formattedMessage": "Warning: BMC: Insufficient funds happens here.
--> A:11:7:
|
11 | \t\t\t\t\t\ta.transfer(x);
| \t\t\t\t\t\t^^^^^^^^^^^^^
Note: Counterexample:
a = 0
x = 0
Note: Callstack:
Note:
",
"message": "BMC: Insufficient funds happens here.",
"secondarySourceLocations":
[
{
"message": "Counterexample:
a = 0
x = 0
"
},
{
"message": "Callstack:"
},
{
"message": ""
}
],
"severity": "warning",
"sourceLocation":
{
"end": 237,
"file": "A",
"start": 224
},
"type": "Warning"
}
],
"sources":
@@ -1,117 +1,6 @@
{
"errors":
[
{
"component": "general",
"errorCode": "6838",
"formattedMessage": "Warning: BMC: Condition is always true.
--> A:7:15:
|
7 | \t\t\t\t\t\trequire(x >= 0);
| \t\t\t\t\t\t ^^^^^^
Note: Callstack:
",
"message": "BMC: Condition is always true.",
"secondarySourceLocations":
[
{
"message": "Callstack:"
}
],
"severity": "warning",
"sourceLocation":
{
"end": 165,
"file": "A",
"start": 159
},
"type": "Warning"
},
{
"component": "general",
"errorCode": "3046",
"formattedMessage": "Warning: BMC: Division by zero happens here.
--> A:10:7:
|
10 | \t\t\t\t\t\t2 / x;
| \t\t\t\t\t\t^^^^^
Note: Counterexample:
<result> = 0
a = 0
x = 0
Note: Callstack:
Note:
",
"message": "BMC: Division by zero happens here.",
"secondarySourceLocations":
[
{
"message": "Counterexample:
<result> = 0
a = 0
x = 0
"
},
{
"message": "Callstack:"
},
{
"message": ""
}
],
"severity": "warning",
"sourceLocation":
{
"end": 216,
"file": "A",
"start": 211
},
"type": "Warning"
},
{
"component": "general",
"errorCode": "1236",
"formattedMessage": "Warning: BMC: Insufficient funds happens here.
--> A:11:7:
|
11 | \t\t\t\t\t\ta.transfer(x);
| \t\t\t\t\t\t^^^^^^^^^^^^^
Note: Counterexample:
a = 0
x = 0
Note: Callstack:
Note:
",
"message": "BMC: Insufficient funds happens here.",
"secondarySourceLocations":
[
{
"message": "Counterexample:
a = 0
x = 0
"
},
{
"message": "Callstack:"
},
{
"message": ""
}
],
"severity": "warning",
"sourceLocation":
{
"end": 237,
"file": "A",
"start": 224
},
"type": "Warning"
},
{
"component": "general",
"errorCode": "4661",
@@ -1,44 +1,6 @@
{
"errors":
[
{
"component": "general",
"errorCode": "4281",
"formattedMessage": "Warning: CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)
--> A:10:7:
|
10 | \t\t\t\t\t\t2 / x;
| \t\t\t\t\t\t^^^^^
",
"message": "CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)",
"severity": "warning",
"sourceLocation":
{
"end": 216,
"file": "A",
"start": 211
},
"type": "Warning"
},
{
"component": "general",
"errorCode": "6328",
@@ -76,82 +38,6 @@ test.f(0x0, 1)",
"start": 245
},
"type": "Warning"
},
{
"component": "general",
"errorCode": "2529",
"formattedMessage": "Warning: CHC: Empty array \"pop\" happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)
--> A:13:7:
|
13 | \t\t\t\t\t\tarr.pop();
| \t\t\t\t\t\t^^^^^^^^^
",
"message": "CHC: Empty array \"pop\" happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)",
"severity": "warning",
"sourceLocation":
{
"end": 275,
"file": "A",
"start": 266
},
"type": "Warning"
},
{
"component": "general",
"errorCode": "6368",
"formattedMessage": "Warning: CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)
--> A:14:7:
|
14 | \t\t\t\t\t\tarr[x];
| \t\t\t\t\t\t^^^^^^
",
"message": "CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0x0, 1)",
"severity": "warning",
"sourceLocation":
{
"end": 289,
"file": "A",
"start": 283
},
"type": "Warning"
}
],
"sources":
@@ -11,6 +11,7 @@
{
"modelChecker":
{
"targets": ["assert", "divByZero"],
"engine": "all",
"timeout": 1000
}
@@ -11,6 +11,7 @@
{
"modelChecker":
{
"targets": ["assert", "divByZero"],
"engine": "bmc",
"timeout": 1000
}
@@ -11,6 +11,7 @@
{
"modelChecker":
{
"targets": ["assert", "divByZero"],
"engine": "chc",
"timeout": 1000
}