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>,
    log_max_height: RVar<C::N>,
    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.
  2. Required that C::F has two-adicity <= MAX_TWO_ADICITY. In particular this implies that all LDE matrices have log2(lde_height) <= MAX_TWO_ADICITY.
  3. Required that the maximum trace height is 2^log_max_height - 1.

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

  1. FieldMerkleTreeMMCS::poseidon2 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 https://github.com/Plonky3/Plonky3/blob/784b7dd1fa87c1202e63350cc8182d7c5327a7af/fri/src/verifier.rs#L22