Update old tests

This commit is contained in:
Leonardo Alt
2021-04-08 21:03:39 +02:00
parent d617ef461e
commit 0a4afa71bd
1036 changed files with 3950 additions and 3904 deletions
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
function f() public {
@@ -7,5 +5,7 @@ contract C {
a.push();
}
}
// ====
// SMTEngine: all
// ----
// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 2529: (49-56): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
function f() public {
@@ -7,5 +5,7 @@ contract C {
a.length;
}
}
// ====
// SMTEngine: all
// ----
// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 2529: (49-56): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
function f() public {
@@ -7,6 +5,8 @@ contract C {
a.pop();
}
}
// ====
// SMTEngine: all
// ----
// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 2529: (93-100): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 2529: (49-56): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 2529: (60-67): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
function f() public {
@@ -7,5 +5,7 @@ contract C {
a.pop();
}
}
// ====
// SMTEngine: all
// ----
// Warning 2529: (94-101): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 2529: (61-68): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
function g() internal {
@@ -10,5 +8,7 @@ contract C {
g();
}
}
// ====
// SMTEngine: all
// ----
// Warning 2529: (122-129): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 2529: (89-96): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
function g() internal view {
@@ -10,5 +8,7 @@ contract C {
g();
}
}
// ====
// SMTEngine: all
// ----
// Warning 2529: (127-134): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 2529: (94-101): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
function f() public {
@@ -7,3 +5,5 @@ contract C {
a.pop();
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
function f() public {
@@ -12,5 +10,7 @@ contract C {
a.pop();
}
}
// ====
// SMTEngine: all
// ----
// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 2529: (49-56): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
contract C {
bytes data;
function g() public {
@@ -12,6 +11,8 @@ contract C {
assert(uint8(data[0]) == 0); // should fail
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (171-193): CHC: Assertion violation happens here.\nCounterexample:\ndata = [98]\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.g()
// Warning 6328: (295-322): CHC: Assertion violation happens here.\nCounterexample:\ndata = [1]\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.g()
// Warning 6328: (139-161): CHC: Assertion violation happens here.\nCounterexample:\ndata = [98]\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.g()
// Warning 6328: (263-290): CHC: Assertion violation happens here.\nCounterexample:\ndata = [1]\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.g()
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
pragma abicoder v2;
contract C {
@@ -9,3 +8,5 @@ contract C {
assert(arr.length == arr2.length);
}
}
// ====
// SMTEngine: all
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
pragma abicoder v2;
contract C {
@@ -15,3 +14,5 @@ contract C {
assert(arr2.length == arr.length);
}
}
// ====
// SMTEngine: all
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
pragma abicoder v2;
contract C {
@@ -10,3 +9,5 @@ contract C {
assert(arr2.length == arr.length);
}
}
// ====
// SMTEngine: all
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
pragma abicoder v2;
contract C {
@@ -15,3 +14,5 @@ contract C {
assert(arr2.length == arr.length);
}
}
// ====
// SMTEngine: all
@@ -1,8 +1,8 @@
pragma experimental SMTChecker;
contract C {
mapping (uint => uint[]) map;
function f() public view {
assert(map[0].length == map[1].length);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
mapping (uint => uint[]) map;
function f(uint x, uint y) public view {
@@ -7,3 +5,5 @@ contract C {
assert(map[x].length == map[y].length);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
mapping (uint => uint[][]) map;
function f(uint x, uint y) public {
@@ -8,3 +6,5 @@ contract C {
assert(map[x][0].length == map[y][0].length);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
struct S {
uint[] arr;
@@ -10,4 +8,6 @@ contract C {
assert(s1.arr.length == s2.arr.length);
}
}
// ====
// SMTEngine: all
// ----
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
struct S {
uint[][] arr;
@@ -20,3 +18,5 @@ contract C {
assert(s1.arr[0].length == s2.arr[0].length);
}
}
// ====
// SMTEngine: all
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
pragma abicoder v2;
contract C {
@@ -7,3 +6,5 @@ contract C {
assert(arr2.length == arr.length);
}
}
// ====
// SMTEngine: all
@@ -1,8 +1,8 @@
pragma experimental SMTChecker;
contract C {
function f(uint[] memory arr) public pure {
uint[] memory arr2 = arr;
assert(arr2.length == arr.length);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] arr;
uint[] arr2;
@@ -8,3 +6,5 @@ contract C {
assert(arr2.length == arr.length);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] arr;
function f() public view {
@@ -9,5 +7,7 @@ contract C {
assert(arr.length != y);
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (153-176): CHC: Assertion violation happens here.\nCounterexample:\narr = []\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: arr = []\nC.f()
// Warning 6328: (120-143): CHC: Assertion violation happens here.\nCounterexample:\narr = []\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: arr = []\nC.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] arr;
function f(uint[] memory marr) public {
@@ -7,3 +5,5 @@ contract C {
assert(marr.length == arr.length);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] arr;
function f() public view {
@@ -7,3 +5,5 @@ contract C {
assert(marr.length == arr.length);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] arr;
function f() public view {
@@ -8,3 +6,5 @@ contract C {
function g() internal pure returns (uint[] memory) {
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] arr;
constructor() {
@@ -14,3 +12,5 @@ contract C {
assert(arr.length == arr2.length);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] arr;
constructor() {
@@ -22,3 +20,5 @@ contract C {
assert(arr.length == z);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] arr;
constructor() {
@@ -23,8 +21,9 @@ contract C {
}
}
// ====
// SMTEngine: all
// SMTIgnoreCex: yes
// ----
// Warning 6328: (324-350): CHC: Assertion violation happens here.
// Warning 6328: (354-380): CHC: Assertion violation happens here.
// Warning 6328: (384-407): CHC: Assertion violation happens here.
// Warning 6328: (291-317): CHC: Assertion violation happens here.
// Warning 6328: (321-347): CHC: Assertion violation happens here.
// Warning 6328: (351-374): CHC: Assertion violation happens here.
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] arr;
@@ -27,3 +25,5 @@ contract C {
assert(arr[5].length == t);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] arr;
constructor() {
@@ -25,8 +23,10 @@ contract C {
assert(arr[5].length != t);
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (352-378): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f()
// Warning 6328: (382-408): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f()
// Warning 6328: (412-435): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f()
// Warning 6328: (439-465): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f()
// Warning 6328: (319-345): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f()
// Warning 6328: (349-375): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f()
// Warning 6328: (379-402): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f()
// Warning 6328: (406-432): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
function f() public {
@@ -7,3 +5,5 @@ contract C {
a.pop();
}
}
// ====
// SMTEngine: all
@@ -1,10 +1,10 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
function f() public {
a.pop();
}
}
// ====
// SMTEngine: all
// ----
// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 2529: (49-56): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] a;
function f() public {
@@ -8,3 +6,5 @@ contract C {
a[0].pop();
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] a;
function f() public {
@@ -9,5 +7,7 @@ contract C {
a[1].pop();
}
}
// ====
// SMTEngine: all
// ----
// Warning 2529: (123-133): CHC: Empty array "pop" happens here.\nCounterexample:\na = [[0], []]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 2529: (90-100): CHC: Empty array "pop" happens here.\nCounterexample:\na = [[0], []]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
constructor() {
@@ -7,3 +5,5 @@ contract C {
a.pop();
}
}
// ====
// SMTEngine: all
@@ -1,10 +1,10 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
constructor() {
a.pop();
}
}
// ====
// SMTEngine: all
// ----
// Warning 2529: (76-83): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()
// Warning 2529: (43-50): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
function f(uint l) public {
@@ -9,4 +7,6 @@ contract C {
}
}
}
// ====
// SMTEngine: all
// ----
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
function f(uint l) public {
@@ -10,5 +8,7 @@ contract C {
a.pop();
}
}
// ====
// SMTEngine: all
// ----
// Warning 2529: (150-157): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\nl = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f(0)
// Warning 2529: (117-124): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\nl = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f(0)
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] a;
function f(uint[] memory x, uint y) public {
@@ -8,3 +6,5 @@ contract C {
assert(a[0][a[0].length - 1] == y);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] a;
function f(uint[] memory x, uint y) public {
@@ -10,7 +8,8 @@ contract C {
}
}
// ====
// SMTEngine: all
// SMTIgnoreCex: yes
// ----
// Warning 3944: (162-177): CHC: Underflow (resulting value less than 0) happens here.
// Warning 6328: (150-184): CHC: Assertion violation happens here.
// Warning 3944: (129-144): CHC: Underflow (resulting value less than 0) happens here.
// Warning 6328: (117-151): CHC: Assertion violation happens here.
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
function f(uint x) public {
@@ -7,3 +5,5 @@ contract C {
assert(a[a.length - 1] == x);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] b;
@@ -17,5 +15,7 @@ contract C {
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (232-262): CHC: Assertion violation happens here.\nCounterexample:\nb = [1]\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.g()
// Warning 6328: (199-229): CHC: Assertion violation happens here.\nCounterexample:\nb = [1]\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.g()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] c;
@@ -20,5 +18,7 @@ contract C {
assert(c[c.length - 1][c[c.length - 1].length - 1] == 200);
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (395-453): CHC: Assertion violation happens here.\nCounterexample:\nc = [[2]]\n\nTransaction trace:\nC.constructor()\nState: c = []\nC.g()
// Warning 6328: (362-420): CHC: Assertion violation happens here.\nCounterexample:\nc = [[2]]\n\nTransaction trace:\nC.constructor()\nState: c = []\nC.g()
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
contract C {
int[][] array2d;
function s() public returns (int[] memory) {
@@ -7,3 +6,5 @@ contract C {
return array2d[1];
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][][] c;
@@ -26,6 +24,7 @@ contract C {
}
}
// ====
// SMTEngine: all
// SMTIgnoreCex: yes
// ----
// Warning 6328: (570-625): CHC: Assertion violation happens here.
// Warning 6328: (537-592): CHC: Assertion violation happens here.
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] b;
function f() public {
@@ -12,5 +10,7 @@ contract C {
assert(b[length - 1] == 1);
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (237-263): CHC: Assertion violation happens here.\nCounterexample:\nb = [0, 0]\nlength = 2\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f()
// Warning 6328: (204-230): CHC: Assertion violation happens here.\nCounterexample:\nb = [0, 0]\nlength = 2\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] b;
function f() public {
@@ -15,5 +13,7 @@ contract C {
assert(b[0][0] != b[1][0]);
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (317-343): CHC: Assertion violation happens here.\nCounterexample:\nb = [[0], [0]]\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f()
// Warning 6328: (284-310): CHC: Assertion violation happens here.\nCounterexample:\nb = [[0], [0]]\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] b;
function f() public {
@@ -13,3 +11,5 @@ contract C {
assert(b[length - 1][length1 - 1] == 0);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
bytes b;
function f() public {
@@ -12,5 +10,7 @@ contract C {
assert(b[length - 1] == bytes1(uint8(1)));
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (236-277): CHC: Assertion violation happens here.\nCounterexample:\nb = [0, 0]\nlength = 2\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f()
// Warning 6328: (203-244): CHC: Assertion violation happens here.\nCounterexample:\nb = [0, 0]\nlength = 2\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
bytes b;
@@ -18,5 +16,7 @@ contract C {
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (298-343): CHC: Assertion violation happens here.\nCounterexample:\nb = [1]\none = 1\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.g()
// Warning 6328: (265-310): CHC: Assertion violation happens here.\nCounterexample:\nb = [1]\none = 1\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.g()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
bytes[] c;
@@ -22,5 +20,7 @@ contract C {
assert(c[c.length - 1][c[c.length - 1].length - 1] == bytes1(uint8(100)));
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (468-541): CHC: Assertion violation happens here.\nCounterexample:\nc = [[2]]\nval = 2\n\nTransaction trace:\nC.constructor()\nState: c = []\nC.g()
// Warning 6328: (435-508): CHC: Assertion violation happens here.\nCounterexample:\nc = [[2]]\nval = 2\n\nTransaction trace:\nC.constructor()\nState: c = []\nC.g()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
int[] u;
@@ -11,5 +9,7 @@ contract C {
assert(u[0] >= 0); // should fail
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (161-178): CHC: Assertion violation happens here.\nCounterexample:\nu = [(- 1)]\n\nTransaction trace:\nC.constructor()\nState: u = []\nC.t()
// Warning 6328: (128-145): CHC: Assertion violation happens here.\nCounterexample:\nu = [(- 1)]\n\nTransaction trace:\nC.constructor()\nState: u = []\nC.t()
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
contract C {
struct S {
int[] b;
@@ -13,3 +12,5 @@ contract C {
assert(s.b[s.b.length -1] == t.s.b[t.s.b.length - 1]);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint256[] x;
constructor() { x.push(42); }
@@ -8,3 +6,5 @@ contract C {
assert(x[0] == 42 || x[0] == 23);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint256[] x;
constructor() { x.push(42); }
@@ -8,3 +6,5 @@ contract C {
assert(x[0] == 42);
}
}
// ====
// SMTEngine: all
@@ -10,3 +10,5 @@ contract C {
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint256[] x;
function f(uint256 l) public {
@@ -11,4 +9,6 @@ contract C {
assert(x[0] == 42);
}
}
// ====
// SMTEngine: all
// ----
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
contract C {
int[][] array2d;
function l() public {
@@ -7,3 +6,5 @@ contract C {
assert(array2d[array2d.length - 1].length > 0);
}
}
// ====
// SMTEngine: all
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
contract C {
int[][] array2d;
function l() public {
@@ -7,6 +6,8 @@ contract C {
assert(array2d[array2d.length - 1].length > 3);
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (113-139): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[0]]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()
// Warning 6328: (143-189): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[0]]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()
// Warning 6328: (81-107): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[0]]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()
// Warning 6328: (111-157): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[0]]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
contract C {
int[][][] array2d;
function l() public {
@@ -9,3 +8,5 @@ contract C {
assert(array2d[array2d.length - 1][last - 1].length > 0);
}
}
// ====
// SMTEngine: all
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
contract C {
int[][][] array2d;
function l() public {
@@ -9,7 +8,9 @@ contract C {
assert(array2d[array2d.length - 1][last - 1].length > 4);
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (122-148): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 0\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()
// Warning 6328: (202-218): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()
// Warning 6328: (222-278): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()
// Warning 6328: (90-116): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 0\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()
// Warning 6328: (170-186): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()
// Warning 6328: (190-246): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] a;
function f() public {
@@ -12,9 +10,10 @@ contract C {
}
}
// ====
// SMTEngine: all
// SMTIgnoreCex: yes
// ----
// Warning 6368: (212-216): CHC: Out of bounds access happens here.
// Warning 6368: (217-221): CHC: Out of bounds access happens here.
// Warning 3944: (217-232): CHC: Underflow (resulting value less than 0) happens here.
// Warning 6328: (205-239): CHC: Assertion violation happens here.
// Warning 6368: (179-183): CHC: Out of bounds access happens here.
// Warning 6368: (184-188): CHC: Out of bounds access happens here.
// Warning 3944: (184-199): CHC: Underflow (resulting value less than 0) happens here.
// Warning 6328: (172-206): CHC: Assertion violation happens here.
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] a;
function f() public {
@@ -12,7 +10,9 @@ contract C {
assert(a[0][0] == 16);
}
}
// ====
// SMTEngine: all
// ----
// Warning 6368: (221-225): CHC: Out of bounds access happens here.\nCounterexample:\na = []\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 6368: (221-228): CHC: Out of bounds access happens here.\nCounterexample:\na = [[], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]]\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 6328: (214-235): CHC: Assertion violation happens here.\nCounterexample:\n\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 6368: (188-192): CHC: Out of bounds access happens here.\nCounterexample:\na = []\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 6368: (188-195): CHC: Out of bounds access happens here.\nCounterexample:\na = [[], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]]\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 6328: (181-202): CHC: Assertion violation happens here.\nCounterexample:\n\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] a;
uint[][][] c;
@@ -25,14 +23,16 @@ contract C {
//assert(d[1] == 7);
}
}
// ====
// SMTEngine: all
// ----
// Warning 6368: (271-275): CHC: Out of bounds access happens here.
// Warning 6368: (271-278): CHC: Out of bounds access might happen here.
// Warning 6368: (271-281): CHC: Out of bounds access might happen here.
// Warning 6368: (344-348): CHC: Out of bounds access happens here.
// Warning 6368: (376-380): CHC: Out of bounds access happens here.
// Warning 6328: (369-393): CHC: Assertion violation happens here.
// Warning 6368: (546-550): CHC: Out of bounds access happens here.
// Warning 6368: (546-553): CHC: Out of bounds access happens here.
// Warning 6368: (546-556): CHC: Out of bounds access happens here.
// Warning 6328: (539-563): CHC: Assertion violation happens here.
// Warning 6368: (238-242): CHC: Out of bounds access happens here.
// Warning 6368: (238-245): CHC: Out of bounds access might happen here.
// Warning 6368: (238-248): CHC: Out of bounds access might happen here.
// Warning 6368: (311-315): CHC: Out of bounds access happens here.
// Warning 6368: (343-347): CHC: Out of bounds access happens here.
// Warning 6328: (336-360): CHC: Assertion violation happens here.
// Warning 6368: (513-517): CHC: Out of bounds access happens here.
// Warning 6368: (513-520): CHC: Out of bounds access happens here.
// Warning 6368: (513-523): CHC: Out of bounds access happens here.
// Warning 6328: (506-530): CHC: Assertion violation happens here.
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
contract C {
struct S {
int[] b;
@@ -14,4 +13,6 @@ contract C {
}
}
// ====
// SMTEngine: all
// ----
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
contract C {
struct S {
int[] b;
@@ -15,4 +14,6 @@ contract C {
}
}
// ====
// SMTEngine: all
// ----
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] a;
function f() public {
@@ -8,3 +6,5 @@ contract C {
assert(a[a.length - 1][0] == 0);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[][] a;
function f() public {
@@ -8,5 +6,7 @@ contract C {
assert(a[a.length - 1][0] == 100);
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (122-155): CHC: Assertion violation happens here.\nCounterexample:\na = [[0]]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 6328: (89-122): CHC: Assertion violation happens here.\nCounterexample:\na = [[0]]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
function f() public {
@@ -7,3 +5,5 @@ contract C {
assert(a[a.length - 1] == 0);
}
}
// ====
// SMTEngine: all
@@ -1,5 +1,3 @@
pragma experimental SMTChecker;
contract C {
uint[] a;
function f() public {
@@ -7,5 +5,7 @@ contract C {
assert(a[a.length - 1] == 100);
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (94-124): CHC: Assertion violation happens here.\nCounterexample:\na = [0]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
// Warning 6328: (61-91): CHC: Assertion violation happens here.\nCounterexample:\na = [0]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f()
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
contract C {
int[][] array2d;
function l() public {
@@ -14,5 +13,7 @@ contract C {
return array2d[2];
}
}
// ====
// SMTEngine: all
// ----
// Warning 6328: (184-213): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[], [], []]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()\n C.s() -- internal call
// Warning 6328: (152-181): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[], [], []]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()\n C.s() -- internal call
@@ -1,4 +1,3 @@
pragma experimental SMTChecker;
contract C {
int[][] array2d;
function l() public {
@@ -13,3 +12,5 @@ contract C {
return array2d[2];
}
}
// ====
// SMTEngine: all