diff --git a/rustdoc/arrabiata/columns/enum.ChallengeTerm.html b/rustdoc/arrabiata/columns/enum.ChallengeTerm.html index c0ec346ff5..3296f5d060 100644 --- a/rustdoc/arrabiata/columns/enum.ChallengeTerm.html +++ b/rustdoc/arrabiata/columns/enum.ChallengeTerm.html @@ -8,7 +8,7 @@
§

Beta

Both challenges used in the permutation argument

§

Gamma

§

HomogenousChallenge

Challenge to homogenize the constraints

§

R

Random coin used to aggregate witnesses while folding

-

Trait Implementations§

source§

impl<'a> AlphaChallengeTerm<'a> for ChallengeTerm

source§

const ALPHA: Self = Self::Alpha

source§

impl Clone for ChallengeTerm

source§

fn clone(&self) -> ChallengeTerm

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ChallengeTerm

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ChallengeTerm

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where +

Trait Implementations§

source§

impl<'a> AlphaChallengeTerm<'a> for ChallengeTerm

source§

const ALPHA: Self = Self::Alpha

source§

impl Clone for ChallengeTerm

source§

fn clone(&self) -> ChallengeTerm

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ChallengeTerm

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ChallengeTerm

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ChallengeTerm

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: Field> Index<ChallengeTerm> for Challenges<F>

§

type Output = F

The returned type after indexing.
source§

fn index(&self, term: ChallengeTerm) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl PartialEq<ChallengeTerm> for ChallengeTerm

source§

fn eq(&self, other: &ChallengeTerm) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for ChallengeTerm

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where @@ -17,16 +17,16 @@ T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<'a, ChallengeTerm> FormattedOutput for ChallengeTermwhere - ChallengeTerm: AlphaChallengeTerm<'a>,

§

fn is_alpha(&self) -> bool

§

fn ocaml( + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<'a, ChallengeTerm> FormattedOutput for ChallengeTermwhere + ChallengeTerm: AlphaChallengeTerm<'a>,

source§

fn is_alpha(&self) -> bool

source§

fn ocaml( &self, - _cache: &mut HashMap<CacheId, ChallengeTerm, RandomState> -) -> String

§

fn latex( + _cache: &mut HashMap<CacheId, ChallengeTerm, RandomState> +) -> String

source§

fn latex( &self, - _cache: &mut HashMap<CacheId, ChallengeTerm, RandomState> -) -> String

§

fn text( + _cache: &mut HashMap<CacheId, ChallengeTerm, RandomState> +) -> String

source§

fn text( &self, - _cache: &mut HashMap<CacheId, ChallengeTerm, RandomState> + _cache: &mut HashMap<CacheId, ChallengeTerm, RandomState> ) -> String

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

diff --git a/rustdoc/arrabiata/columns/enum.Column.html b/rustdoc/arrabiata/columns/enum.Column.html index 09e8dbbd97..09d8af064f 100644 --- a/rustdoc/arrabiata/columns/enum.Column.html +++ b/rustdoc/arrabiata/columns/enum.Column.html @@ -2,7 +2,7 @@ Selector(Gadget), PublicInput(usize), X(usize), -}

Variants§

§

Selector(Gadget)

§

PublicInput(usize)

§

X(usize)

Trait Implementations§

source§

impl Clone for Column

source§

fn clone(&self) -> Column

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Column

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FormattedOutput for Column

source§

fn latex(&self, _cache: &mut HashMap<CacheId, Self>) -> String

source§

fn text(&self, _cache: &mut HashMap<CacheId, Self>) -> String

source§

fn ocaml(&self, _cache: &mut HashMap<CacheId, Self>) -> String

source§

fn is_alpha(&self) -> bool

source§

impl PartialEq<Column> for Column

source§

fn eq(&self, other: &Column) -> bool

This method tests for self and other values to be equal, and is used +}

Variants§

§

Selector(Gadget)

§

PublicInput(usize)

§

X(usize)

Trait Implementations§

source§

impl Clone for Column

source§

fn clone(&self) -> Column

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Column

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FormattedOutput for Column

source§

fn latex(&self, _cache: &mut HashMap<CacheId, Self>) -> String

source§

fn text(&self, _cache: &mut HashMap<CacheId, Self>) -> String

source§

fn ocaml(&self, _cache: &mut HashMap<CacheId, Self>) -> String

source§

fn is_alpha(&self) -> bool

source§

impl PartialEq<Column> for Column

source§

fn eq(&self, other: &Column) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for Column

source§

impl StructuralPartialEq for Column

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere diff --git a/rustdoc/arrabiata/columns/type.E.html b/rustdoc/arrabiata/columns/type.E.html index 8f12ba662b..1d6dec01d9 100644 --- a/rustdoc/arrabiata/columns/type.E.html +++ b/rustdoc/arrabiata/columns/type.E.html @@ -1 +1 @@ -E in arrabiata::columns - Rust

Type Definition arrabiata::columns::E

source ·
pub type E<Fp> = Expr<ConstantExpr<Fp, ChallengeTerm>, Column>;
\ No newline at end of file +E in arrabiata::columns - Rust

Type Definition arrabiata::columns::E

source ·
pub type E<Fp> = Expr<ConstantExpr<Fp, ChallengeTerm>, Column>;
\ No newline at end of file diff --git a/rustdoc/arrabiata/constraints/struct.Env.html b/rustdoc/arrabiata/constraints/struct.Env.html index 8e0d8408c6..3887e80eb5 100644 --- a/rustdoc/arrabiata/constraints/struct.Env.html +++ b/rustdoc/arrabiata/constraints/struct.Env.html @@ -47,7 +47,7 @@
Safety
y1: Self::Variable ) -> (Self::Variable, Self::Variable)

Double the elliptic curve point given by the affine coordinates (x1, y1) and save the result in the registers pos_x and pos_y.

-
§

type Position = (Column, CurrOrNext)

§

type Variable = Operations<ExprInner<Operations<ConstantExprInner<Fp, ChallengeTerm>>, Column>>

The variable should be seen as a certain object that can be built by +
§

type Position = (Column, CurrOrNext)

§

type Variable = Operations<ExprInner<Operations<ConstantExprInner<Fp, ChallengeTerm>>, Column>>

The variable should be seen as a certain object that can be built by multiplying and adding, i.e. the variable can be seen as a solution to a polynomial. When instantiating as expressions - “constraints” - it defines diff --git a/rustdoc/arrabiata/interpreter/trait.InterpreterEnv.html b/rustdoc/arrabiata/interpreter/trait.InterpreterEnv.html index 83b246c398..5c0323ae28 100644 --- a/rustdoc/arrabiata/interpreter/trait.InterpreterEnv.html +++ b/rustdoc/arrabiata/interpreter/trait.InterpreterEnv.html @@ -238,6 +238,6 @@
Safety
proof. The constraint environment must be instantiated only once, at the last step of the computation.

-
§

type Position = (Column, CurrOrNext)

§

type Variable = Operations<ExprInner<Operations<ConstantExprInner<Fp, ChallengeTerm>>, Column>>

source§

impl<Fp: PrimeField, Fq: PrimeField, E1: CommitmentCurve<ScalarField = Fp, BaseField = Fq>, E2: CommitmentCurve<ScalarField = Fq, BaseField = Fp>> InterpreterEnv for arrabiata::witness::Env<Fp, Fq, E1, E2>where +

source§

impl<Fp: PrimeField, Fq: PrimeField, E1: CommitmentCurve<ScalarField = Fp, BaseField = Fq>, E2: CommitmentCurve<ScalarField = Fq, BaseField = Fp>> InterpreterEnv for arrabiata::witness::Env<Fp, Fq, E1, E2>where <E1::Params as CurveConfig>::BaseField: PrimeField, - <E2::Params as CurveConfig>::BaseField: PrimeField,

§

type Position = (Column, CurrOrNext)

§

type Variable = BigInt

\ No newline at end of file + <E2::Params as CurveConfig>::BaseField: PrimeField,
\ No newline at end of file diff --git a/rustdoc/arrabiata/witness/struct.Env.html b/rustdoc/arrabiata/witness/struct.Env.html index 8afa915a64..e1e55915a4 100644 --- a/rustdoc/arrabiata/witness/struct.Env.html +++ b/rustdoc/arrabiata/witness/struct.Env.html @@ -1,6 +1,6 @@ Env in arrabiata::witness - Rust

Struct arrabiata::witness::Env

source ·
pub struct Env<Fp: PrimeField, Fq: PrimeField, E1: AffineRepr<ScalarField = Fp, BaseField = Fq>, E2: AffineRepr<ScalarField = Fq, BaseField = Fp>> {
Show 29 fields - pub domain_fp: EvaluationDomains<Fp>, - pub domain_fq: EvaluationDomains<Fq>, + pub domain_fp: EvaluationDomains<Fp>, + pub domain_fq: EvaluationDomains<Fq>, pub srs_e1: SRS<E1>, pub srs_e2: SRS<E2>, pub ivc_accumulator_e1: Vec<PolyComm<E1>>, @@ -34,8 +34,8 @@

The environment is run over big integers to avoid performing reduction at all step. Instead the user implementing the interpreter can reduce in the corresponding field when they want.

-

Fields§

§domain_fp: EvaluationDomains<Fp>

Domain for Fp

-
§domain_fq: EvaluationDomains<Fq>

Domain for Fq

+

Fields§

§domain_fp: EvaluationDomains<Fp>

Domain for Fp

+
§domain_fq: EvaluationDomains<Fq>

Domain for Fq

§srs_e1: SRS<E1>

SRS for the first curve

§srs_e2: SRS<E2>

SRS for the second curve

§ivc_accumulator_e1: Vec<PolyComm<E1>>§ivc_accumulator_e2: Vec<PolyComm<E2>>§previous_commitments_e1: Vec<PolyComm<E1>>

Commitments to the previous instances

@@ -184,7 +184,7 @@
Safety
y1: Self::Variable ) -> (Self::Variable, Self::Variable)

Double the elliptic curve point given by the affine coordinates (x1, y1) and save the result in the registers pos_x and pos_y.

-
§

type Position = (Column, CurrOrNext)

source§

fn allocate(&mut self) -> Self::Position

Allocate a new variable in the circuit for the current row
source§

fn allocate_next_row(&mut self) -> Self::Position

Allocate a new variable in the circuit for the next row
source§

fn read_position(&self, pos: Self::Position) -> Self::Variable

Return the corresponding variable at the given position
source§

fn allocate_public_input(&mut self) -> Self::Position

source§

fn write_column( +

§

type Position = (Column, CurrOrNext)

source§

fn allocate(&mut self) -> Self::Position

Allocate a new variable in the circuit for the current row
source§

fn allocate_next_row(&mut self) -> Self::Position

Allocate a new variable in the circuit for the next row
source§

fn read_position(&self, pos: Self::Position) -> Self::Variable

Return the corresponding variable at the given position
source§

fn allocate_public_input(&mut self) -> Self::Position

source§

fn write_column( &mut self, pos: Self::Position, v: Self::Variable diff --git a/rustdoc/implementors/kimchi/circuits/expr/trait.AlphaChallengeTerm.js b/rustdoc/implementors/kimchi/circuits/expr/trait.AlphaChallengeTerm.js index 9a4af45c06..a6830f20a7 100644 --- a/rustdoc/implementors/kimchi/circuits/expr/trait.AlphaChallengeTerm.js +++ b/rustdoc/implementors/kimchi/circuits/expr/trait.AlphaChallengeTerm.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"arrabiata":[["impl<'a> AlphaChallengeTerm<'a> for ChallengeTerm"]], +"arrabiata":[["impl<'a> AlphaChallengeTerm<'a> for ChallengeTerm"]], "kimchi":[] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/implementors/kimchi/circuits/expr/trait.FormattedOutput.js b/rustdoc/implementors/kimchi/circuits/expr/trait.FormattedOutput.js index 6c38faf3d8..4f3d187179 100644 --- a/rustdoc/implementors/kimchi/circuits/expr/trait.FormattedOutput.js +++ b/rustdoc/implementors/kimchi/circuits/expr/trait.FormattedOutput.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"arrabiata":[["impl FormattedOutput for Column"]], +"arrabiata":[["impl FormattedOutput for Column"]], "kimchi":[], "kimchi_msm":[["impl FormattedOutput for Column"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/src/o1vm/interpreters/mips/constraints.rs.html b/rustdoc/src/o1vm/interpreters/mips/constraints.rs.html index 797530a453..b09cf5203a 100644 --- a/rustdoc/src/o1vm/interpreters/mips/constraints.rs.html +++ b/rustdoc/src/o1vm/interpreters/mips/constraints.rs.html @@ -670,7 +670,7 @@ lookups::{Lookup, LookupTableIDs}, E, }; -use ark_ff::{Field, One, Zero}; +use ark_ff::{Field, One}; use kimchi::circuits::{ expr::{ConstantTerm::Literal, Expr, ExprInner, Operations, Variable}, gate::CurrOrNext, @@ -1290,9 +1290,9 @@ (var.clone() - one.clone()) * var.clone() }) .collect(); - let enforce_one_activation = (0..N_MIPS_SEL_COLS).fold(E::<Fp>::zero(), |res, i| { + let enforce_one_activation = (0..N_MIPS_SEL_COLS).fold(E::<Fp>::one(), |res, i| { let var = self.variable(MIPSColumn::Selector(i)); - res + var.clone() + res - var.clone() }); enforce_bool.push(enforce_one_activation);