2018-10-18 13:03:52 +00:00
|
|
|
pragma experimental SMTChecker;
|
|
|
|
|
|
|
|
contract C
|
|
|
|
{
|
|
|
|
function f() public payable {
|
|
|
|
assert(msg.sender == block.coinbase);
|
|
|
|
assert(block.difficulty == block.gaslimit);
|
|
|
|
assert(block.number == block.timestamp);
|
|
|
|
assert(tx.gasprice == msg.value);
|
|
|
|
assert(tx.origin == msg.sender);
|
|
|
|
uint x = block.number;
|
2020-12-16 17:32:34 +00:00
|
|
|
unchecked { x += 2; }
|
|
|
|
assert(x > block.number);
|
2020-05-05 11:33:28 +00:00
|
|
|
assert(block.timestamp > 10);
|
2018-10-18 13:03:52 +00:00
|
|
|
assert(gasleft() > 100);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// ----
|
2020-12-29 08:39:45 +00:00
|
|
|
// Warning 6328: (79-115): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
|
|
|
// Warning 6328: (119-161): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
|
|
|
// Warning 6328: (165-204): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
|
|
|
// Warning 6328: (208-240): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
|
|
|
// Warning 6328: (244-275): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
|
|
|
// Warning 6328: (328-352): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
|
|
|
// Warning 6328: (356-384): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nC.constructor()\nC.f()
|
|
|
|
// Warning 6328: (388-411): CHC: Assertion violation happens here.\nCounterexample:\n\n\n\n\nTransaction trace:\nC.constructor()\nC.f()
|