abstract contract D { function g(uint x) public virtual; } contract C { mapping (uint => uint) storageMap; function f(uint y, D d) public { mapping (uint => uint) storage map = storageMap; require(map[0] == map[1]); assert(map[0] == map[1]); d.g(y); // Storage knowledge is cleared after an external call. assert(map[0] == map[1]); } } // ==== // SMTEngine: all // ---- // Info 1391: CHC: 2 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them.