/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

Submission 4b86ad71

Credited

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

Details

Fixed-bytes lane cleanup did not recurse through ternary branches. The fixed-bytes lowerer now evaluates the condition and recursively cleans both bytesN arms before a surrounding shift or bit operation.

manual-static-and-source-review

Author
@0xalpharush
Points
1
Verdict
SOUNDNESS_GAP
Resolution
Valid gap — fixed in the engine
Submitted
Aug 10, 2026, 09:37 PM
Reviewed
Sep 30, 2026, 10:46 PM

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

Root cause

Fixed-bytes lane cleanup did not recurse through ternary branches. The fixed-bytes lowerer now evaluates the condition and recursively cleans both bytesN arms before a surrounding shift or bit operation.

Source

// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.35;

/* ===ARENA-MANIFEST===
{
  "deploy": { "contract": "T", "args": [], "value": 0 },
  "entry": { "function": "run", "args": [] },
  "feature": "ternary-bytesn-left-shift-lane-cleanup",
  "note": "A bytes1 left shift in the selected ternary branch must be re-cleaned to its byte lane before the surrounding right shift. solc 0.8.35 returns 0x0f; solidity-lean preserves the escaped high nibble and returns 0xff. The direct control without the ternary agrees at 0x0f."
}
===END-ARENA-MANIFEST=== */

contract T {
    function run() external pure returns (bytes1) {
        bytes1 b = 0xff;
        return (true ? b << 4 : b) >> 4;
    }
}