openvm_native_recursion::fri::two_adic_pcs

Function verify_two_adic_pcs

Source
pub fn verify_two_adic_pcs<C: Config>(
    builder: &mut Builder<C>,
    config: &FriConfigVariable<C>,
    rounds: Array<C, TwoAdicPcsRoundVariable<C>>,
    proof: FriProofVariable<C>,
    challenger: &mut impl ChallengerVariable<C>,
)
where C::F: TwoAdicField, C::EF: TwoAdicField,
Expand description

Notes:

  1. FieldMerkleTreeMMCS sorts traces by height in descending order when committing data.

Reference: https://github.com/Plonky3/Plonky3/blob/27b3127dab047e07145c38143379edec2960b3e1/merkle-tree/src/merkle_tree.rs#L53 So traces are sorted in opening_proof.

  1. FieldMerkleTreeMMCS::verify_batch keeps the raw values in the original order. So traces are not sorted in opened_values.

Reference: https://github.com/Plonky3/Plonky3/blob/27b3127dab047e07145c38143379edec2960b3e1/merkle-tree/src/mmcs.rs#L87 https://github.com/Plonky3/Plonky3/blob/27b3127dab047e07145c38143379edec2960b3e1/merkle-tree/src/merkle_tree.rs#L100