Enum triton_vm::table::challenges::ChallengeId
source · #[repr(usize)]pub enum ChallengeId {
Show 63 variants
CompressProgramDigestIndeterminate = 0,
StandardInputIndeterminate = 1,
StandardOutputIndeterminate = 2,
InstructionLookupIndeterminate = 3,
HashInputIndeterminate = 4,
HashDigestIndeterminate = 5,
SpongeIndeterminate = 6,
OpStackIndeterminate = 7,
RamIndeterminate = 8,
JumpStackIndeterminate = 9,
U32Indeterminate = 10,
ClockJumpDifferenceLookupIndeterminate = 11,
RamTableBezoutRelationIndeterminate = 12,
ProgramAddressWeight = 13,
ProgramInstructionWeight = 14,
ProgramNextInstructionWeight = 15,
OpStackClkWeight = 16,
OpStackIb1Weight = 17,
OpStackPointerWeight = 18,
OpStackFirstUnderflowElementWeight = 19,
RamClkWeight = 20,
RamPointerWeight = 21,
RamValueWeight = 22,
RamInstructionTypeWeight = 23,
JumpStackClkWeight = 24,
JumpStackCiWeight = 25,
JumpStackJspWeight = 26,
JumpStackJsoWeight = 27,
JumpStackJsdWeight = 28,
ProgramAttestationPrepareChunkIndeterminate = 29,
ProgramAttestationSendChunkIndeterminate = 30,
HashCIWeight = 31,
HashStateWeight0 = 32,
HashStateWeight1 = 33,
HashStateWeight2 = 34,
HashStateWeight3 = 35,
HashStateWeight4 = 36,
HashStateWeight5 = 37,
HashStateWeight6 = 38,
HashStateWeight7 = 39,
HashStateWeight8 = 40,
HashStateWeight9 = 41,
HashStateWeight10 = 42,
HashStateWeight11 = 43,
HashStateWeight12 = 44,
HashStateWeight13 = 45,
HashStateWeight14 = 46,
HashStateWeight15 = 47,
HashCascadeLookupIndeterminate = 48,
HashCascadeLookInWeight = 49,
HashCascadeLookOutWeight = 50,
CascadeLookupIndeterminate = 51,
LookupTableInputWeight = 52,
LookupTableOutputWeight = 53,
LookupTablePublicIndeterminate = 54,
U32LhsWeight = 55,
U32RhsWeight = 56,
U32CiWeight = 57,
U32ResultWeight = 58,
StandardInputTerminal = 59,
StandardOutputTerminal = 60,
LookupTablePublicTerminal = 61,
CompressedProgramDigest = 62,
}Expand description
A ChallengeId is a unique, symbolic identifier for a challenge used in Triton VM. The
ChallengeId enum works in tandem with the struct Challenges, which can be
instantiated to hold actual challenges that can be indexed by some ChallengeId.
Since almost all challenges relate to the Processor Table in some form, the words “Processor
Table” are usually omitted from the ChallengeId’s name.
Variants§
CompressProgramDigestIndeterminate = 0
The indeterminate for the Evaluation Argument compressing the program digest
into a single extension field element, i.e., CompressedProgramDigest.
Relates to program attestation.
StandardInputIndeterminate = 1
The indeterminate for the Evaluation Argument with standard input.
StandardOutputIndeterminate = 2
The indeterminate for the Evaluation Argument with standard output.
InstructionLookupIndeterminate = 3
The indeterminate for the instruction Lookup Argument between the Processor Table and the Program Table guaranteeing that the instructions and their arguments are copied correctly.
HashInputIndeterminate = 4
HashDigestIndeterminate = 5
SpongeIndeterminate = 6
OpStackIndeterminate = 7
RamIndeterminate = 8
JumpStackIndeterminate = 9
U32Indeterminate = 10
ClockJumpDifferenceLookupIndeterminate = 11
The indeterminate for the Lookup Argument between the Processor Table and all memory-like tables, i.e., the OpStack Table, the Ram Table, and the JumpStack Table, guaranteeing that all clock jump differences are directed forward.
RamTableBezoutRelationIndeterminate = 12
The indeterminate for the Contiguity Argument within the Ram Table.
ProgramAddressWeight = 13
A weight for linearly combining multiple elements. Applies to
Addressin the Program TableIPin the Processor Table
ProgramInstructionWeight = 14
A weight for linearly combining multiple elements. Applies to
Instructionin the Program TableCIin the Processor Table
ProgramNextInstructionWeight = 15
A weight for linearly combining multiple elements. Applies to
Instruction'(i.e., in the next row) in the Program TableNIAin the Processor Table
OpStackClkWeight = 16
OpStackIb1Weight = 17
OpStackPointerWeight = 18
OpStackFirstUnderflowElementWeight = 19
RamClkWeight = 20
RamPointerWeight = 21
RamValueWeight = 22
RamInstructionTypeWeight = 23
JumpStackClkWeight = 24
JumpStackCiWeight = 25
JumpStackJspWeight = 26
JumpStackJsoWeight = 27
JumpStackJsdWeight = 28
ProgramAttestationPrepareChunkIndeterminate = 29
The indeterminate for compressing a RATE-sized chunk of instructions into a
single extension field element.
Relates to program attestation.
Used by the evaluation argument PrepareChunkEvalArg and in the Hash Table.
ProgramAttestationSendChunkIndeterminate = 30
The indeterminate for the bus over which the RATE-sized chunks of instructions
are sent. Relates to program attestation.
Used by the evaluation arguments SendChunkEvalArg and
ReceiveChunkEvalArg. See also: ProgramAttestationPrepareChunkIndeterminate.
HashCIWeight = 31
HashStateWeight0 = 32
HashStateWeight1 = 33
HashStateWeight2 = 34
HashStateWeight3 = 35
HashStateWeight4 = 36
HashStateWeight5 = 37
HashStateWeight6 = 38
HashStateWeight7 = 39
HashStateWeight8 = 40
HashStateWeight9 = 41
HashStateWeight10 = 42
HashStateWeight11 = 43
HashStateWeight12 = 44
HashStateWeight13 = 45
HashStateWeight14 = 46
HashStateWeight15 = 47
HashCascadeLookupIndeterminate = 48
The indeterminate for the Lookup Argument between the Hash Table and the Cascade Table.
HashCascadeLookInWeight = 49
A weight for linearly combining multiple elements. Applies to
*LkInin the Hash Table, and2^16·LookInHi + LookInLoin the Cascade Table.
HashCascadeLookOutWeight = 50
A weight for linearly combining multiple elements. Applies to
*LkOutin the Hash Table, and2^16·LookOutHi + LookOutLoin the Cascade Table.
CascadeLookupIndeterminate = 51
The indeterminate for the Lookup Argument between the Cascade Table and the Lookup Table.
LookupTableInputWeight = 52
A weight for linearly combining multiple elements. Applies to
LkIn*in the Cascade Table, andLookInin the Lookup Table.
LookupTableOutputWeight = 53
A weight for linearly combining multiple elements. Applies to
LkOut*in the Cascade Table, andLookOutin the Lookup Table.
LookupTablePublicIndeterminate = 54
The indeterminate for the public Evaluation Argument establishing correctness of the Lookup Table.
U32LhsWeight = 55
U32RhsWeight = 56
U32CiWeight = 57
U32ResultWeight = 58
StandardInputTerminal = 59
The terminal for the EvaluationArgument with standard input.
Makes use of challenge StandardInputIndeterminate.
StandardOutputTerminal = 60
The terminal for the EvaluationArgument with standard output.
Makes use of challenge StandardOutputIndeterminate.
LookupTablePublicTerminal = 61
The terminal for the EvaluationArgument establishing correctness of the
Lookup Table.
Makes use of challenge LookupTablePublicIndeterminate.
CompressedProgramDigest = 62
The digest of the program to be executed, compressed into a single extension field element.
The compression happens using an EvaluationArgument under challenge
CompressProgramDigestIndeterminate.
Relates to program attestation.
Implementations§
Trait Implementations§
source§impl<'arbitrary> Arbitrary<'arbitrary> for ChallengeId
impl<'arbitrary> Arbitrary<'arbitrary> for ChallengeId
source§fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
Self from the given unstructured data. Read moresource§fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
Self from the entirety of the given
unstructured data. Read moresource§impl Clone for ChallengeId
impl Clone for ChallengeId
source§fn clone(&self) -> ChallengeId
fn clone(&self) -> ChallengeId
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for ChallengeId
impl Debug for ChallengeId
source§impl Display for ChallengeId
impl Display for ChallengeId
source§impl From<ChallengeId> for usize
impl From<ChallengeId> for usize
source§fn from(id: ChallengeId) -> Self
fn from(id: ChallengeId) -> Self
source§impl Hash for ChallengeId
impl Hash for ChallengeId
source§impl Index<ChallengeId> for Challenges
impl Index<ChallengeId> for Challenges
§type Output = XFieldElement
type Output = XFieldElement
source§impl IntoEnumIterator for ChallengeId
impl IntoEnumIterator for ChallengeId
type Iterator = ChallengeIdIter
fn iter() -> ChallengeIdIter ⓘ
source§impl PartialEq for ChallengeId
impl PartialEq for ChallengeId
source§fn eq(&self, other: &ChallengeId) -> bool
fn eq(&self, other: &ChallengeId) -> bool
self and other values to be equal, and is used
by ==.impl Copy for ChallengeId
impl Eq for ChallengeId
impl StructuralPartialEq for ChallengeId
Auto Trait Implementations§
impl Freeze for ChallengeId
impl RefUnwindSafe for ChallengeId
impl Send for ChallengeId
impl Sync for ChallengeId
impl Unpin for ChallengeId
impl UnwindSafe for ChallengeId
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more