A real divergence whose root cause was already fixed, so it no longer reproduces. No point.
Duplicate of earlier first-file report 02ec35f2-7dfe-46a9-bd23-69442eb29348, credited for PR #108 (https://github.com/paradigmxyz/solidity-lean/pull/108), merged 2c55e7b018234469f17d8169268447b11b9d8a16. Exact source SHA 7a5469b9067a4dcd95044bfff30512c0c1fbe72700d4eb9ccd4628642bad659a reproduced SOUNDNESS_GAP on clean parent cd2021ae42d54a724fc954b7602b9da3a1005a71 and NO_DIVERGENCE on merged 2c55e7b018234469f17d8169268447b11b9d8a16; both replays were credential-free, network-denied and source-pinned. The intervening Foundation.lean change makes outer abi.decode inspect nested abi.encode arguments, which also preserves the typed complement in this later source. Its raw 32-byte return, events and ordinary slot 0 match EVM after the fix.
manual-static-and-source-review
Same outer abi.decode environment-cleanup gate as the earlier report: nested abi.encode complement was lowered without typed environment. The #108 change removes this divergence in a clean pre/post replay.
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.35;
/* ===ARENA-MANIFEST===
{"deploy":{"contract":"C","args":[],"value":0},"entry":{"function":"run","args":[],"value":0},"lane":"S","feature":"abi-decoded-uint56-complement-local"}
===END-ARENA-MANIFEST=== */
contract C {
uint56 value;
function run() external returns (uint56) {
uint56 local = abi.decode(abi.encode(~uint56(0)), (uint56));
value = local;
return local;
}
}