/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 short-circuit call fails lowering

Credited

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

Details

Exact source passed static and direct manual injection screens. Pre-fix replay failed checked executable lowering while EVM succeeded with raw uint256 1 and no events/storage; source-pinned restricted post-fix replay agrees. Checked branch witnesses and all earlier witnesses pass, full Lean build passes 2327 jobs, and all contest samples pass. The ordinary-binary fixes #115/#119 do not handle this short-circuit form. Merged main tree is identical to 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:10 PM
Reviewed
Oct 18, 2026, 09:02 AM

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

Root cause

Tuple-assignment ternary condition lowering declined short-circuit binary conditions containing an internal call. Hoist the left call and retain conditional evaluation of the right boolean 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-short-circuit-condition-call","fuel":4096}
===END-ARENA-MANIFEST=== */

contract C {
    function yes(uint256 value) internal pure returns (bool) {
        return value != 0;
    }

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