0xMiden / 0xMiden/miden-vm

Model public inputs per AIR in multi-AIR statements

Open
#3,410 0 comments 0 reactions 1 assignee Claimed by @adr1anh View on GitHub
air prover
Dominant language
Rust
Stars
772
Forks
352
Avg merge
1d 12h
Merged PRs (30d)
93

Description

Multi-AIR currently exposes one public-input slice to every AIR, forcing all AIRs to declare the same public-input count. In Miden, this means Chiplets and Poseidon2 pretend to have 32 public values even though only Core uses stack I/O.

This works, but leaves several warts:

- AIR metadata does not reflect actual dependencies.
- Unused public inputs are threaded through unrelated AIRs.
- Shared-input assumptions leak into validation, proof ordering, and ACE layout.
- Miden-specific code must compensate for the generic representation.

Store one public-input vector per AIR while keeping the `LiftedAir` interface unchanged. For Miden, the resulting public-input counts are `[32, 0, 0]`.

This is primarily a cleanup: it makes ownership explicit, removes unused inputs and special cases, and leaves native and recursive verification behavior unchanged.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.