Skip to content

Recursive combiner does not bind output word 7 #314

Description

@Kuhai9801

🐛 Bug Report

📝 Description

tools/verifier/src/main.rs::merge_recursive_circuit_output documents the first 8 words as the actual proof output, but hashes only first[0..7] and second[0..7]. Word 7 is replaced with zero in the hash input and is not otherwise rejected.

Affected commit checked: 6ec4ea725d654c5e4fd3a122d571ca37804f9abd.

🔄 Reproduction Steps

Public repro:

https://github.com/Kuhai9801/airbender-combiner-output7-ci/actions/runs/27596451503

The repro changes only output[7] in a child recursive output and compares the combined artifact.

🤔 Expected Behavior

Changing any declared output word in output[0..8] should either change the combined recursive output or be rejected by an explicit invariant.

😯 Current Behavior

Changing output[7] leaves the combined artifact identical.

🖥️ Environment

Public GitHub Actions on Ubuntu.

📋 Additional Context

The source already has a TODO saying output1[7] and output2[7] should be checked as zero. A fix should either bind all 8 output words or enforce the 7-word convention before aggregation.

📎 Log Output

BUG: changing output[7] does not change the combined recursive proof artifact
test result: FAILED. 0 passed; 1 failed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions