Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions AGENTS.md

This file was deleted.

2 changes: 1 addition & 1 deletion crypto/stark/src/tests/row_pair_opening_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
//! tests restore it — an implementation that ignored `evaluations_sym` or the
//! authentication path would otherwise pass every other test.
use super::small_trace_tests::make_valid_simple_proof;
use crate::tests::trace_test_helpers::make_valid_simple_proof;
use crate::verifier::{IsStarkVerifier, Verifier};
use crypto::fiat_shamir::default_transcript::DefaultTranscript;
use math::field::{element::FieldElement, goldilocks::GoldilocksField};
Expand Down
26 changes: 1 addition & 25 deletions crypto/stark/src/tests/small_trace_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,37 +11,13 @@ use crate::{
},
proof::options::ProofOptions,
prover::{IsStarkProver, Prover},
tests::trace_test_helpers::make_valid_simple_proof,
traits::AIR,
verifier::{IsStarkVerifier, Verifier},
};

type Felt = FieldElement<GoldilocksField>;

pub(crate) fn make_valid_simple_proof() -> (
SimpleAdditionAIR<GoldilocksField>,
crate::proof::stark::StarkProof<
GoldilocksField,
GoldilocksField,
SimpleAdditionPublicInputs<GoldilocksField>,
>,
) {
let mut trace = simple_addition_trace::<GoldilocksField>(2);
let proof_options = ProofOptions::default_test_options();
let pub_inputs = SimpleAdditionPublicInputs {
a: Felt::from(1u64),
b: Felt::from(2u64),
};
let air = SimpleAdditionAIR::<GoldilocksField>::new(&proof_options);
let proof = Prover::prove(
&air,
&mut trace,
&pub_inputs,
&mut DefaultTranscript::<GoldilocksField>::new(&[]),
)
.unwrap();
(air, proof)
}

/// Test STARK prove/verify with a single-row trace.
/// This exercises the FRI protocol with 0 FRI layers (trace_length=1, number_layers=0).
#[test_log::test]
Expand Down
36 changes: 36 additions & 0 deletions crypto/stark/src/tests/trace_test_helpers.rs
Original file line number Diff line number Diff line change
@@ -1,15 +1,51 @@
use crate::examples::simple_addition::{
SimpleAdditionAIR, SimpleAdditionPublicInputs, simple_addition_trace,
};
use crate::proof::options::ProofOptions;
use crate::prover::{IsStarkProver, Prover};
use crate::table::Table;
use crate::trace::{TraceTable, compute_frame_evaluation_points};
use crate::traits::AIR;
use crypto::fiat_shamir::default_transcript::DefaultTranscript;
use itertools::Itertools;
use math::field::{
element::FieldElement,
goldilocks::GoldilocksField,
traits::{IsField, IsSubFieldOf},
};
use math::polynomial::Polynomial;

#[cfg(feature = "parallel")]
use rayon::prelude::{IntoParallelRefIterator, ParallelIterator};

/// Builds a valid 2-row `SimpleAddition` proof. Shared base for the
/// proof-tamper / rejection tests in `small_trace_tests` and
/// `row_pair_opening_tests`.
pub fn make_valid_simple_proof() -> (
SimpleAdditionAIR<GoldilocksField>,
crate::proof::stark::StarkProof<
GoldilocksField,
GoldilocksField,
SimpleAdditionPublicInputs<GoldilocksField>,
>,
) {
let mut trace = simple_addition_trace::<GoldilocksField>(2);
let proof_options = ProofOptions::default_test_options();
let pub_inputs = SimpleAdditionPublicInputs {
a: FieldElement::from(1u64),
b: FieldElement::from(2u64),
};
let air = SimpleAdditionAIR::<GoldilocksField>::new(&proof_options);
let proof = Prover::prove(
&air,
&mut trace,
&pub_inputs,
&mut DefaultTranscript::<GoldilocksField>::new(&[]),
)
.unwrap();
(air, proof)
}

/// Reference Horner-based trace-evaluation used as an oracle by the prover
/// tests (`tests::prover_tests`). The production prover uses the LDE-based
/// barycentric `get_trace_evaluations_from_lde`; the two are
Expand Down
Loading