Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add formatting to scarb.toml #113

Merged
merged 1 commit into from
Oct 20, 2024
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
3 changes: 3 additions & 0 deletions stwo_cairo_verifier/Scarb.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ edition = "2024_07"
[lib]
casm = true

[tool.fmt]
sort-module-level-items = true

[dependencies]

[dev-dependencies]
Expand Down
6 changes: 3 additions & 3 deletions stwo_cairo_verifier/src/channel.cairo
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
use core::array::SpanTrait;
use core::poseidon::{poseidon_hash_span, hades_permutation};
use core::traits::DivRem;

use stwo_cairo_verifier::{BaseField, SecureField};
use stwo_cairo_verifier::fields::qm31::QM31Trait;
use stwo_cairo_verifier::utils::pack4;

use stwo_cairo_verifier::{BaseField, SecureField};

const M31_SHIFT: felt252 = 0x80000000; // 2**31.
const M31_SHIFT_NZ_U256: NonZero<u256> = 0x80000000; // 2**31.
pub const EXTENSION_FELTS_PER_HASH: usize = 2;
Expand Down Expand Up @@ -155,8 +155,8 @@ fn extract_m31<const N: usize>(ref num: u256) -> BaseField {

#[cfg(test)]
mod tests {
use super::{Channel, ChannelTrait};
use stwo_cairo_verifier::fields::qm31::qm31;
use super::ChannelTrait;

#[test]
fn test_initialize_channel() {
Expand Down
21 changes: 11 additions & 10 deletions stwo_cairo_verifier/src/circle.cairo
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
use stwo_cairo_verifier::fields::m31::{M31, M31Impl};
use core::num::traits::one::One;
use core::num::traits::zero::Zero;
use core::num::traits::{WrappingAdd, WideMul};
use stwo_cairo_verifier::fields::cm31::CM31;
use stwo_cairo_verifier::fields::m31::{M31, M31Impl};
use stwo_cairo_verifier::fields::qm31::{QM31Impl, QM31, QM31Trait};
use super::utils::pow;
use core::num::traits::zero::Zero;
use core::num::traits::one::One;

pub const M31_CIRCLE_GEN: CirclePoint<M31> =
CirclePoint { x: M31 { inner: 2 }, y: M31 { inner: 1268011823 }, };
Expand Down Expand Up @@ -123,10 +124,10 @@ pub impl CosetImpl of CosetTrait {
}

fn index_at(self: @Coset, index: usize) -> usize {
let index_times_step = (core::integer::u32_wide_mul(*self.step_size, index) & U32_BIT_MASK)
let index_times_step = ((*self.step_size).wide_mul(index) & U32_BIT_MASK)
.try_into()
.unwrap();
let result = core::integer::u32_wrapping_add(*self.initial_index, index_times_step);
let result = (*self.initial_index).wrapping_add(index_times_step);
result & CIRCLE_ORDER_BIT_MASK
}

Expand Down Expand Up @@ -178,14 +179,14 @@ pub impl CosetImpl of CosetTrait {

#[cfg(test)]
mod tests {
use super::{M31_CIRCLE_GEN, CIRCLE_ORDER, CirclePoint, CirclePointM31Impl, Coset, CosetImpl};
use core::option::OptionTrait;
use core::array::ArrayTrait;
use core::option::OptionTrait;
use core::traits::TryInto;
use super::{CirclePointQM31Impl, QM31_CIRCLE_GEN};
use stwo_cairo_verifier::fields::m31::{m31, M31};
use stwo_cairo_verifier::fields::qm31::{qm31, QM31, QM31One};
use stwo_cairo_verifier::fields::m31::m31;
use stwo_cairo_verifier::fields::qm31::QM31One;
use stwo_cairo_verifier::utils::pow;
use super::{CirclePointQM31Impl, QM31_CIRCLE_GEN};
use super::{M31_CIRCLE_GEN, CIRCLE_ORDER, CirclePoint, CirclePointM31Impl, Coset, CosetImpl};

#[test]
fn test_add_1() {
Expand Down
2 changes: 1 addition & 1 deletion stwo_cairo_verifier/src/fields.cairo
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
pub mod m31;
pub mod cm31;
pub mod m31;
pub mod qm31;

pub type BaseField = m31::M31;
Expand Down
2 changes: 1 addition & 1 deletion stwo_cairo_verifier/src/fields/cm31.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ pub fn cm31(a: u32, b: u32) -> CM31 {

#[cfg(test)]
mod tests {
use super::{cm31};
use super::super::m31::{m31, P};
use super::{cm31};

#[test]
fn test_cm31() {
Expand Down
8 changes: 4 additions & 4 deletions stwo_cairo_verifier/src/fields/m31.cairo
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use core::num::traits::{WideMul, CheckedSub};
use core::option::OptionTrait;
use core::traits::TryInto;
use core::result::ResultTrait;

pub const P: u32 = 0x7fffffff;
const P32NZ: NonZero<u32> = 0x7fffffff;
Expand Down Expand Up @@ -45,7 +45,7 @@ pub impl M31Impl of M31Trait {
pub impl M31Add of core::traits::Add<M31> {
fn add(lhs: M31, rhs: M31) -> M31 {
let res = lhs.inner + rhs.inner;
let res = core::integer::u32_overflowing_sub(res, P).unwrap_or(res);
let res = res.checked_sub(P).unwrap_or(res);
M31 { inner: res }
}
}
Expand All @@ -56,7 +56,7 @@ pub impl M31Sub of core::traits::Sub<M31> {
}
pub impl M31Mul of core::traits::Mul<M31> {
fn mul(lhs: M31, rhs: M31) -> M31 {
M31Impl::reduce_u64(core::integer::u32_wide_mul(lhs.inner, rhs.inner))
M31Impl::reduce_u64(lhs.inner.wide_mul(rhs.inner))
}
}
pub impl M31Zero of core::num::traits::Zero<M31> {
Expand Down Expand Up @@ -102,7 +102,7 @@ pub fn m31(val: u32) -> M31 {

#[cfg(test)]
mod tests {
use super::{m31, P, M31, M31Trait};
use super::{m31, P, M31Trait};
const POW2_15: u32 = 0b1000000000000000;
const POW2_16: u32 = 0b10000000000000000;

Expand Down
10 changes: 5 additions & 5 deletions stwo_cairo_verifier/src/fields/qm31.cairo
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use super::m31::{M31, m31, M31Impl};
use super::cm31::{CM31, cm31, CM31Trait};
use core::num::traits::zero::Zero;
use core::num::traits::one::One;
use core::num::traits::zero::Zero;
use super::cm31::{CM31, cm31, CM31Trait};
use super::m31::{M31, M31Impl};

pub const R: CM31 = CM31 { a: M31 { inner: 2 }, b: M31 { inner: 1 } };

Expand Down Expand Up @@ -113,9 +113,9 @@ pub fn qm31(a: u32, b: u32, c: u32, d: u32) -> QM31 {

#[cfg(test)]
mod tests {
use super::{QM31, qm31, QM31Trait, QM31Impl};
use super::{CM31, cm31};
use super::CM31;
use super::super::m31::{m31, P, M31Trait};
use super::{QM31, qm31, QM31Trait, QM31Impl};

#[test]
fn test_QM31() {
Expand Down
51 changes: 22 additions & 29 deletions stwo_cairo_verifier/src/fri.cairo
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
use core::dict::Felt252Dict;
use stwo_cairo_verifier::fields::m31::M31Trait;
use stwo_cairo_verifier::circle::{Coset, CosetImpl};
use stwo_cairo_verifier::poly::line::{LineDomain, LineDomainImpl};
use stwo_cairo_verifier::fields::qm31::{QM31, qm31, QM31Trait};
use stwo_cairo_verifier::queries::SparseSubCircleDomain;
use stwo_cairo_verifier::channel::{Channel, ChannelTrait};
use stwo_cairo_verifier::circle::CosetImpl;
use stwo_cairo_verifier::fields::m31::M31;
use stwo_cairo_verifier::utils::{bit_reverse_index, pow, pow_qm31, qm31_zero_array, find};
use stwo_cairo_verifier::poly::line::{
LineEvaluation, LineEvaluationImpl, SparseLineEvaluation, SparseLineEvaluationImpl
};
use stwo_cairo_verifier::fields::m31::M31Trait;
use stwo_cairo_verifier::fields::qm31::{QM31, QM31Trait};
use stwo_cairo_verifier::poly::circle::CircleDomainImpl;
use stwo_cairo_verifier::poly::circle::{
CircleEvaluation, SparseCircleEvaluation, SparseCircleEvaluationImpl
};
use stwo_cairo_verifier::poly::circle::{CircleDomain, CircleDomainImpl};
use stwo_cairo_verifier::poly::line::{
LineEvaluation, LineEvaluationImpl, SparseLineEvaluation, SparseLineEvaluationImpl
};
use stwo_cairo_verifier::poly::line::{LineDomain, LineDomainImpl};
use stwo_cairo_verifier::poly::line::{LinePoly, LinePolyImpl};
use stwo_cairo_verifier::queries::SparseSubCircleDomain;
use stwo_cairo_verifier::queries::{Queries, QueriesImpl};
use stwo_cairo_verifier::vcs::verifier::{MerkleDecommitment, MerkleVerifier, MerkleVerifierTrait};
use stwo_cairo_verifier::utils::{bit_reverse_index, pow, pow_qm31, qm31_zero_array, find};
use stwo_cairo_verifier::vcs::hasher::PoseidonMerkleHasher;
use stwo_cairo_verifier::poly::line::{LinePoly, LinePolyImpl};
use stwo_cairo_verifier::channel::{Channel, ChannelTrait};
use stwo_cairo_verifier::vcs::verifier::{MerkleDecommitment, MerkleVerifier, MerkleVerifierTrait};

pub const CIRCLE_TO_LINE_FOLD_STEP: u32 = 1;
pub const FOLD_STEP: u32 = 1;
Expand Down Expand Up @@ -531,27 +531,20 @@ pub fn ibutterfly(v0: QM31, v1: QM31, itwid: M31) -> (QM31, QM31) {

#[cfg(test)]
mod test {
use stwo_cairo_verifier::poly::line::{
LineEvaluation, SparseLineEvaluation, SparseLineEvaluationImpl
};
use stwo_cairo_verifier::fields::m31::M31Trait;
use stwo_cairo_verifier::channel::ChannelTrait;
use stwo_cairo_verifier::circle::{Coset, CosetImpl};
use stwo_cairo_verifier::poly::line::{LineDomain, LineDomainImpl};
use stwo_cairo_verifier::fields::qm31::{QM31, qm31};
use stwo_cairo_verifier::fields::m31::M31;
use stwo_cairo_verifier::utils::{bit_reverse_index, pow};
use stwo_cairo_verifier::fields::qm31::qm31;
use stwo_cairo_verifier::poly::circle::{
CircleEvaluation, CircleEvaluationTrait, CircleDomain, CircleEvaluationImpl,
SparseCircleEvaluation, SparseCircleEvaluationImpl
CircleDomain, CircleEvaluationImpl, SparseCircleEvaluation, SparseCircleEvaluationImpl
};
use stwo_cairo_verifier::queries::{Queries, QueriesImpl};
use stwo_cairo_verifier::channel::ChannelTrait;
use stwo_cairo_verifier::poly::line::LineDomainImpl;
use stwo_cairo_verifier::poly::line::LinePoly;
use stwo_cairo_verifier::vcs::verifier::MerkleDecommitment;
use super::{
FOLD_STEP, CIRCLE_TO_LINE_FOLD_STEP, FriConfig, FriProof, FriVerifierImpl,
FriVerificationError, FriLayerProof
use stwo_cairo_verifier::poly::line::{
LineEvaluation, SparseLineEvaluation, SparseLineEvaluationImpl
};
use stwo_cairo_verifier::queries::{Queries, QueriesImpl};
use stwo_cairo_verifier::vcs::verifier::MerkleDecommitment;
use super::{FriConfig, FriProof, FriVerifierImpl, FriVerificationError, FriLayerProof};

#[test]
fn test_fold_line_1() {
Expand Down
6 changes: 3 additions & 3 deletions stwo_cairo_verifier/src/lib.cairo
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
mod channel;
mod circle;
mod fields;
mod fri;
mod poly;
mod queries;
mod sort;
mod utils;
mod vcs;
mod fri;
mod sort;
mod queries;

pub use fields::{BaseField, SecureField};

Expand Down
19 changes: 8 additions & 11 deletions stwo_cairo_verifier/src/poly/circle.cairo
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
use core::num::traits::ops::wrapping::WrappingSub;
use stwo_cairo_verifier::circle::CirclePointTrait;
use core::option::OptionTrait;
use core::clone::Clone;
use core::result::ResultTrait;
use stwo_cairo_verifier::fields::qm31::{QM31, qm31};
use stwo_cairo_verifier::fields::m31::{M31, m31};
use stwo_cairo_verifier::utils::pow;
use stwo_cairo_verifier::circle::{
Coset, CosetImpl, CirclePoint, CirclePointM31Impl, M31_CIRCLE_GEN, CIRCLE_ORDER
};
use stwo_cairo_verifier::fields::m31::M31;
use stwo_cairo_verifier::fields::qm31::QM31;
use stwo_cairo_verifier::fri::fold_circle_into_line;
use core::num::traits::ops::wrapping::WrappingSub;
use stwo_cairo_verifier::utils::pow;

/// A valid domain for circle polynomial interpolation and evaluation.
///
Expand Down Expand Up @@ -127,13 +124,13 @@ pub impl SparseCircleEvaluationImpl of SparseCircleEvaluationImplTrait {

#[cfg(test)]
mod tests {
use super::{
CircleDomain, CircleDomainTrait, CircleEvaluation, CircleEvaluationImpl,
SparseCircleEvaluation, SparseCircleEvaluationImplTrait
};
use stwo_cairo_verifier::circle::{Coset, CosetImpl, CirclePoint};
use stwo_cairo_verifier::fields::m31::m31;
use stwo_cairo_verifier::fields::qm31::qm31;
use super::{
CircleDomain, CircleDomainTrait, CircleEvaluationImpl, SparseCircleEvaluation,
SparseCircleEvaluationImplTrait
};

#[test]
fn test_circle_domain_at_1() {
Expand Down
18 changes: 7 additions & 11 deletions stwo_cairo_verifier/src/poly/line.cairo
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
use core::option::OptionTrait;
use core::clone::Clone;
use core::result::ResultTrait;
use stwo_cairo_verifier::poly::utils::fold;
use stwo_cairo_verifier::fields::SecureField;
use stwo_cairo_verifier::fields::m31::{M31, m31, M31Trait};
use stwo_cairo_verifier::fields::qm31::{QM31, qm31, QM31Zero};
use stwo_cairo_verifier::utils::pow;
use stwo_cairo_verifier::circle::{Coset, CosetImpl, CirclePointTrait, M31_CIRCLE_GEN};
use stwo_cairo_verifier::fields::SecureField;
use stwo_cairo_verifier::fields::m31::{M31, m31};
use stwo_cairo_verifier::fields::qm31::{QM31, QM31Zero};
use stwo_cairo_verifier::fri::fold_line;
use stwo_cairo_verifier::poly::utils::fold;

/// A univariate polynomial defined on a [LineDomain].
#[derive(Debug, Drop, Clone)]
Expand Down Expand Up @@ -138,11 +134,11 @@ pub impl SparseLineEvaluationImpl of SparseLineEvaluationTrait {

#[cfg(test)]
mod tests {
use super::{LinePoly, LinePolyTrait, LineDomain, LineDomainImpl};
use stwo_cairo_verifier::fields::qm31::qm31;
use stwo_cairo_verifier::circle::{CosetImpl, CIRCLE_LOG_ORDER};
use stwo_cairo_verifier::fields::m31::m31;
use stwo_cairo_verifier::circle::{Coset, CosetImpl, CIRCLE_LOG_ORDER};
use stwo_cairo_verifier::fields::qm31::qm31;
use stwo_cairo_verifier::utils::pow;
use super::{LinePoly, LinePolyTrait, LineDomainImpl};

#[test]
#[should_panic]
Expand Down
11 changes: 4 additions & 7 deletions stwo_cairo_verifier/src/queries.cairo
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
use super::utils::{pow, bit_reverse_index, find};
use core::traits::Copy;
use core::nullable::{NullableTrait, match_nullable, FromNullableResult};
use core::dict::Felt252DictEntryTrait;
use stwo_cairo_verifier::poly::circle::{CircleDomain, CircleDomainImpl};
use stwo_cairo_verifier::circle::{Coset, CosetImpl};
use stwo_cairo_verifier::channel::{Channel, ChannelTrait};
use stwo_cairo_verifier::circle::CosetImpl;
use stwo_cairo_verifier::poly::circle::{CircleDomain, CircleDomainImpl};
use stwo_cairo_verifier::sort::MinimumToMaximumSortedIterator;
use super::utils::{pow, bit_reverse_index, find};


/// An ordered set of query indices over a bit reversed [CircleDomain].
Expand Down Expand Up @@ -161,8 +158,8 @@ pub impl SparseSubCircleDomainImpl of SparseSubCircleDomainTrait {

#[cfg(test)]
mod test {
use stwo_cairo_verifier::channel::ChannelTrait;
use super::{Queries, QueriesImpl};
use stwo_cairo_verifier::channel::{Channel, ChannelTrait};

#[test]
fn test_fold_1() {
Expand Down
2 changes: 1 addition & 1 deletion stwo_cairo_verifier/src/sort.cairo
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use core::array::ToSpanTrait;
use core::array::ArrayTrait;
use core::array::ToSpanTrait;
use core::option::OptionTrait;

trait Compare<T, C> {
Expand Down
10 changes: 4 additions & 6 deletions stwo_cairo_verifier/src/utils.cairo
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
use core::array::SpanTrait;
use core::dict::Felt252Dict;
use core::traits::PanicDestruct;
use core::option::OptionTrait;
use core::box::BoxTrait;
use core::dict::Felt252Dict;
use core::dict::Felt252DictEntryTrait;
use core::dict::Felt252DictTrait;
use core::iter::Iterator;
use core::num::traits::BitSize;
use stwo_cairo_verifier::fields::qm31::{QM31, qm31};
use stwo_cairo_verifier::BaseField;
use core::traits::DivRem;
use core::traits::PanicDestruct;
use stwo_cairo_verifier::BaseField;
use stwo_cairo_verifier::fields::qm31::{QM31, qm31};

#[generate_trait]
pub impl DictImpl<T, +Felt252DictValue<T>, +PanicDestruct<T>> of DictTrait<T> {
Expand Down
4 changes: 1 addition & 3 deletions stwo_cairo_verifier/src/vcs/hasher.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ use core::array::ArrayTrait;
use core::option::OptionTrait;
use core::poseidon::poseidon_hash_span;
use stwo_cairo_verifier::BaseField;
use core::hash::HashStateTrait;
use core::poseidon::{hades_permutation, HashState};

// A Merkle node hash is a hash of:
// [left_child_hash, right_child_hash], column0_value, column1_value, ...
Expand Down Expand Up @@ -65,8 +63,8 @@ pub impl PoseidonMerkleHasher of MerkleHasher {

#[cfg(test)]
mod tests {
use super::PoseidonMerkleHasher;
use stwo_cairo_verifier::fields::m31::{m31};
use super::PoseidonMerkleHasher;

#[test]
fn test_m31() {
Expand Down
Loading
Loading