Open
Description
contract S {
uint x;
function setZero() external {
if (x == 1)
x = 0;
}
function setOne() external {
if (x == 0)
x = 1;
}
function inv() external view {
assert(x < 2);
}
}
solc s.sol --model-checker-engine chc --model-checker-invariants contract`
The command above gives the invariant below which is clearly wrong.
Info: Contract invariant(s) for s.sol:S:
(true || true || !(x >= 2) || true)
Metadata
Metadata
Assignees
Type
Projects
Status
In Progress