/Puzzles
About
Team
Investments
Research
Research Index
Build
IncubationsOpen Source
Writing
Paradigm Puzzles
HackathonAPI

Terms, Disclosures, Privacy

LinkedIn, Twitter, Contact

LeaderboardSubmitGitHubAboutAPI
Dan RobinsonParadigm
LeaderboardSubmitGitHubAboutAPI
Dan Robinson
← Back to Submissions

Unchecked int192 fixed-array compound assignment sign-extends storage

Credited

Genuine, unique divergence — fixed in the engine and merged. +1 on the leaderboard.

Details

First-file independent direct-element storage gap. Exact screened source produced SOUNDNESS_GAP on prior main c1827fb and NO_DIVERGENCE on merged 2495be1b34ccaebfe3effb484059a799846d88b2. EVM raw 32-byte signed return, events and ordinary slot 0 match. Focused Lean witness, full build, 85 contest samples and neighboring direct/copy/delete replays passed; the earlier wide signed whole-array copy report remains NO_DIVERGENCE.

manual-static-and-source-review

Author
@rappie_eth
Points
1
Verdict
SOUNDNESS_GAP
Resolution
Valid gap — fixed in the engine
Submitted
Oct 4, 2026, 01:24 PM
Reviewed
Oct 4, 2026, 09:11 PM

This divergence was root-caused and fixed in the engine. Fixed in PR #109 →

Root cause

The array-element layout erased widths above 16 bytes, so a direct int192 element write sign-extended across the full 256-bit slot. Solidity direct writes mask to 192 bits, while whole-array copies sign-extend; whole-array deletion clears the entire slot. The fix retains the source width for element writes and handles copy/delete boundaries separately.

Source

// 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":"unchecked-int192-fixed-array-compound-storage"}
===END-ARENA-MANIFEST=== */

contract C {
    int192[1] values;

    function run() external returns (int192) {
        unchecked { values[0] += -1; }
        return values[0];
    }
}