[SMTChecker] Implement uninterpreted functions and use it for blockhash()

This commit is contained in:
Leonardo Alt
2018-11-15 09:12:42 +01:00
parent 92ebf66067
commit 70bb0eaf95
17 changed files with 110 additions and 27 deletions
@@ -2,9 +2,13 @@ pragma experimental SMTChecker;
contract C
{
function f() public payable {
function f(uint x) public payable {
assert(blockhash(x) > 0);
assert(blockhash(2) > 0);
uint y = x;
assert(blockhash(x) == blockhash(y));
}
}
// ----
// Warning: (79-103): Assertion violation happens here
// Warning: (85-109): Assertion violation happens here
// Warning: (113-137): Assertion violation happens here