/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

a && (b || c) evaluates to false when it is true

Duplicate

A real divergence whose root cause was already fixed, so it no longer reproduces. No point.

Details

Duplicate of earlier submission cab8cd48-932f-4c86-ad12-db3f2a1c2b39 (@rappie_eth, 2026-07-26T14:59:54.389Z). A source-pinned Batch-99 counterfactual containing the isolated earliest block-environment and eager-ANF fix changes this later submission to NO_DIVERGENCE before the other Batch-100 loop or expression fixes are present. The earlier report therefore supplies the generic correction that eliminates this test and retains first-file priority. The exact merged commit replay also returns NO_DIVERGENCE.

manual-static-and-source-review

Author
@TheBenMeadows
Points
0
Verdict
—
Resolution
Duplicate of an already-fixed root cause
Submitted
Sep 18, 2026, 11:32 PM
Reviewed
Sep 30, 2026, 05:44 PM

Root cause

Duplicate of earlier submission cab8cd48-932f-4c86-ad12-db3f2a1c2b39 (@rappie_eth, 2026-07-26T14:59:54.389Z). A source-pinned Batch-99 counterfactual containing the isolated earliest block-environment and eager-ANF fix changes this later submission to NO_DIVERGENCE before the other Batch-100 loop or expression fixes are present. The earlier report therefore supplies the generic correction that eliminates this test and retains first-file priority. The exact merged commit replay also returns NO_DIVERGENCE.

Source

// SPDX-License-Identifier: MIT
pragma solidity 0.8.35;
/* ===ARENA-MANIFEST===
{
 "deploy": {
  "contract": "C",
  "args": []
 },
 "entry": {
  "function": "run",
  "args": [
   0
  ]
 },
 "feature": "nested-and-or-evaluation",
 "note": "g(3) && (g(4) || g(5)) with a pure parity predicate: true && (false || true) is true. solc+EVM returns true; solidity-lean returns false. The disjunction alone (g(4) || g(5)) agrees, so the fault is in a parenthesised || appearing as the right operand of &&."
}
===END-ARENA-MANIFEST=== */
contract C {
    function g(uint256 v) internal pure returns (bool) { return v % 2 == 1; }
    function run(uint256) external pure returns (bool) {
        return g(3) && (g(4) || g(5));
    }
}