Type Alias NonRootCommittedExe

Source
pub type NonRootCommittedExe = VmCommittedExe<SC>;

Aliased Type§

struct NonRootCommittedExe {
    pub exe: VmExe<MontyField31<BabyBearParameters>>,
    pub committed_program: CommittedTraceData<StarkConfig<TwoAdicFriPcs<MontyField31<BabyBearParameters>, Radix2DitParallel<MontyField31<BabyBearParameters>>, MerkleTreeMmcs<PackedMontyField31Neon<BabyBearParameters>, PackedMontyField31Neon<BabyBearParameters>, PaddingFreeSponge<Poseidon2<PackedMontyField31Neon<BabyBearParameters>, Poseidon2ExternalLayerMonty31<BabyBearParameters, 16>, Poseidon2InternalLayerMonty31<BabyBearParameters, 16, BabyBearInternalLayerParameters>, 16, 7>, 16, 8, 8>, TruncatedPermutation<Poseidon2<PackedMontyField31Neon<BabyBearParameters>, Poseidon2ExternalLayerMonty31<BabyBearParameters, 16>, Poseidon2InternalLayerMonty31<BabyBearParameters, 16, BabyBearInternalLayerParameters>, 16, 7>, 2, 8, 16>, 8>, ExtensionMmcs<MontyField31<BabyBearParameters>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, MerkleTreeMmcs<PackedMontyField31Neon<BabyBearParameters>, PackedMontyField31Neon<BabyBearParameters>, PaddingFreeSponge<Poseidon2<PackedMontyField31Neon<BabyBearParameters>, Poseidon2ExternalLayerMonty31<BabyBearParameters, 16>, Poseidon2InternalLayerMonty31<BabyBearParameters, 16, BabyBearInternalLayerParameters>, 16, 7>, 16, 8, 8>, TruncatedPermutation<Poseidon2<PackedMontyField31Neon<BabyBearParameters>, Poseidon2ExternalLayerMonty31<BabyBearParameters, 16>, Poseidon2InternalLayerMonty31<BabyBearParameters, 16, BabyBearInternalLayerParameters>, 16, 7>, 2, 8, 16>, 8>>>, FriLogUpPhase<MontyField31<BabyBearParameters>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, DuplexChallenger<MontyField31<BabyBearParameters>, Poseidon2<PackedMontyField31Neon<BabyBearParameters>, Poseidon2ExternalLayerMonty31<BabyBearParameters, 16>, Poseidon2InternalLayerMonty31<BabyBearParameters, 16, BabyBearInternalLayerParameters>, 16, 7>, 16, 8>>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, DuplexChallenger<MontyField31<BabyBearParameters>, Poseidon2<PackedMontyField31Neon<BabyBearParameters>, Poseidon2ExternalLayerMonty31<BabyBearParameters, 16>, Poseidon2InternalLayerMonty31<BabyBearParameters, 16, BabyBearInternalLayerParameters>, 16, 7>, 16, 8>>>,
}

Fields§

§exe: VmExe<MontyField31<BabyBearParameters>>

Raw executable.

§committed_program: CommittedTraceData<StarkConfig<TwoAdicFriPcs<MontyField31<BabyBearParameters>, Radix2DitParallel<MontyField31<BabyBearParameters>>, MerkleTreeMmcs<PackedMontyField31Neon<BabyBearParameters>, PackedMontyField31Neon<BabyBearParameters>, PaddingFreeSponge<Poseidon2<PackedMontyField31Neon<BabyBearParameters>, Poseidon2ExternalLayerMonty31<BabyBearParameters, 16>, Poseidon2InternalLayerMonty31<BabyBearParameters, 16, BabyBearInternalLayerParameters>, 16, 7>, 16, 8, 8>, TruncatedPermutation<Poseidon2<PackedMontyField31Neon<BabyBearParameters>, Poseidon2ExternalLayerMonty31<BabyBearParameters, 16>, Poseidon2InternalLayerMonty31<BabyBearParameters, 16, BabyBearInternalLayerParameters>, 16, 7>, 2, 8, 16>, 8>, ExtensionMmcs<MontyField31<BabyBearParameters>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, MerkleTreeMmcs<PackedMontyField31Neon<BabyBearParameters>, PackedMontyField31Neon<BabyBearParameters>, PaddingFreeSponge<Poseidon2<PackedMontyField31Neon<BabyBearParameters>, Poseidon2ExternalLayerMonty31<BabyBearParameters, 16>, Poseidon2InternalLayerMonty31<BabyBearParameters, 16, BabyBearInternalLayerParameters>, 16, 7>, 16, 8, 8>, TruncatedPermutation<Poseidon2<PackedMontyField31Neon<BabyBearParameters>, Poseidon2ExternalLayerMonty31<BabyBearParameters, 16>, Poseidon2InternalLayerMonty31<BabyBearParameters, 16, BabyBearInternalLayerParameters>, 16, 7>, 2, 8, 16>, 8>>>, FriLogUpPhase<MontyField31<BabyBearParameters>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, DuplexChallenger<MontyField31<BabyBearParameters>, Poseidon2<PackedMontyField31Neon<BabyBearParameters>, Poseidon2ExternalLayerMonty31<BabyBearParameters, 16>, Poseidon2InternalLayerMonty31<BabyBearParameters, 16, BabyBearInternalLayerParameters>, 16, 7>, 16, 8>>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, DuplexChallenger<MontyField31<BabyBearParameters>, Poseidon2<PackedMontyField31Neon<BabyBearParameters>, Poseidon2ExternalLayerMonty31<BabyBearParameters, 16>, Poseidon2InternalLayerMonty31<BabyBearParameters, 16, BabyBearInternalLayerParameters>, 16, 7>, 16, 8>>>

Committed program trace.

Implementations

Source§

impl<SC> VmCommittedExe<SC>

Source

pub fn commit( exe: VmExe<<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val>, pcs: &<SC as StarkGenericConfig>::Pcs, ) -> VmCommittedExe<SC>

Creates VmCommittedExe from VmExe by using pcs to commit to the program code as a cached trace matrix.

Source

pub fn get_program_commit( &self, ) -> <<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment

Source

pub fn compute_exe_commit( &self, memory_config: &MemoryConfig, ) -> <<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment

Computes a commitment to VmCommittedExe. This is a Merklelized hash of:

  • Program code commitment (commitment of the cached trace)
  • Merkle root of the initial memory
  • Starting program counter (pc_start)

The program code commitment is itself a commitment (via the proof system PCS) to the program code.

The Merklelization uses Poseidon2 as a cryptographic hash function (for the leaves) and a cryptographic compression function (for internal nodes).

Note: This function recomputes the Merkle tree for the initial memory image.

Trait Implementations

Source§

impl<SC> Clone for VmCommittedExe<SC>

Source§

fn clone(&self) -> VmCommittedExe<SC>

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<'de, SC> Deserialize<'de> for VmCommittedExe<SC>

Source§

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

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

impl<SC> Serialize for VmCommittedExe<SC>

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more