/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

Tuple-assignment ternary condition fails with a right-side call

Credited

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

Details

Exact-source static and manual injection screens passed. Pre-fix source replay failed checked executable lowering while solc succeeded with raw uint256 1; post-fix restricted source-pinned replay agrees, with no storage or events. Both branch witnesses, full 2327-job build and all contest samples pass. Earlier left-call fix #115 does not eliminate this report, as established by the pre-fix replay. Merged main tree equals validated candidate.

manual-static-and-source-review

Author
@rappie_eth
Points
1
Verdict
COVERAGE_GAP
Resolution
Valid gap — fixed in the engine
Submitted
Oct 5, 2026, 05:08 PM
Reviewed
Oct 16, 2026, 09:05 AM

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

Root cause

Tuple-assignment ternary condition lowering only hoisted an internal call on the left side of an ordinary binary condition. The right-call form was unsupported. Add the symmetric path with the right call evaluated before the pure left operand.

Source

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

/* ===ARENA-MANIFEST===
{"deploy":{"contract":"C","args":[],"value":0},"entry":{"function":"run","args":[1,2],"value":0},"lane":"C","feature":"tuple-ternary-condition-right-internal-call","fuel":4096}
===END-ARENA-MANIFEST=== */

contract C {
    function id(uint256 value) internal pure returns (uint256) {
        return value;
    }

    function run(uint8 a, uint8 b) external pure returns (uint256) {
        uint256 result;
        (result,) = (uint256(a) != id(b) ? a : b, b);
        return result;
    }
}