Skip to main content

ZincTypes

Trait ZincTypes 

Source
pub trait ZincTypes<const DEGREE_PLUS_ONE: usize>: Clone + Debug {
    type Int: Semiring + ConstTranscribable + ConstCoeffBitWidth + Named + Default + Clone + Send + Sync + 'static;
    type Chal: ConstIntRing + ConstTranscribable + Named;
    type Pt: ConstIntRing;
    type CombR;
    type Fmod: ConstIntSemiring + ConstTranscribable + Named;
    type PrimeTest: PrimalityTest<Self::Fmod>;
    type BinaryZt: ZipTypes<Eval = BinaryPoly<DEGREE_PLUS_ONE>, Chal = Self::Chal, Pt = Self::Pt, CombR = Self::CombR, Fmod = Self::Fmod, PrimeTest = Self::PrimeTest>;
    type ArbitraryZt: ZipTypes<Eval = DensePolynomial<Self::Int, DEGREE_PLUS_ONE>, Chal = Self::Chal, Pt = Self::Pt, CombR = Self::CombR, Fmod = Self::Fmod, PrimeTest = Self::PrimeTest>;
    type IntZt: ZipTypes<Eval = Self::Int, Chal = Self::Chal, Pt = Self::Pt, CombR = Self::CombR, Fmod = Self::Fmod, PrimeTest = Self::PrimeTest>;
    type BinaryLc: LinearCode<Self::BinaryZt>;
    type ArbitraryLc: LinearCode<Self::ArbitraryZt>;
    type IntLc: LinearCode<Self::IntZt>;
}
Expand description

Trait bundling the various type parameters for the public inputs (NYI), witness and Zinc+ PIOP.

Required Associated Types§

Source

type Int: Semiring + ConstTranscribable + ConstCoeffBitWidth + Named + Default + Clone + Send + Sync + 'static

Main integer type for the protocol, used as a coefficient type for the arbitrary polynomial trace columns and for the integer trace columns.

Source

type Chal: ConstIntRing + ConstTranscribable + Named

Projecting element to project Zip+ evaluations and UAIR scalars to the field.

Source

type Pt: ConstIntRing

Evaluation point type, used for all column types in Zip+ to evaluate multilinear polynomials.

Source

type CombR

Source

type Fmod: ConstIntSemiring + ConstTranscribable + Named

Randomly sampled field modulus type, used throughout the protocol for finite field operations.

Source

type PrimeTest: PrimalityTest<Self::Fmod>

Primality test for the field modulus.

Source

type BinaryZt: ZipTypes<Eval = BinaryPoly<DEGREE_PLUS_ONE>, Chal = Self::Chal, Pt = Self::Pt, CombR = Self::CombR, Fmod = Self::Fmod, PrimeTest = Self::PrimeTest>

Zip+ types for the binary polynomial trace columns.

Source

type ArbitraryZt: ZipTypes<Eval = DensePolynomial<Self::Int, DEGREE_PLUS_ONE>, Chal = Self::Chal, Pt = Self::Pt, CombR = Self::CombR, Fmod = Self::Fmod, PrimeTest = Self::PrimeTest>

Zip+ types for the arbitrary polynomial trace columns.

Source

type IntZt: ZipTypes<Eval = Self::Int, Chal = Self::Chal, Pt = Self::Pt, CombR = Self::CombR, Fmod = Self::Fmod, PrimeTest = Self::PrimeTest>

Zip+ types for the integer trace columns.

Source

type BinaryLc: LinearCode<Self::BinaryZt>

Linear code used in Zip+ for the binary polynomial trace columns.

Source

type ArbitraryLc: LinearCode<Self::ArbitraryZt>

Linear code used in Zip+ for the arbitrary polynomial trace columns.

Source

type IntLc: LinearCode<Self::IntZt>

Linear code used in Zip+ for the integer trace columns.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§