## miden::core::sys::vm
| Procedure | Description |
| ----------- | ------------- |
| verify_proof | Verifies a STARK proof attesting to the correct execution of a program in the Miden VM.<br /><br />Security parameters (num_queries, query_pow_bits, deep_pow_bits, folding_pow_bits) are<br />loaded from the advice stack, validated against the acceptable security policy, and<br />stored in memory for use by the generic verifier.<br /><br />- The public inputs are composed of the input and output stacks, of fixed size equal to 16, as<br />well as the program and the kernel procedures digests.<br />- There are two trace segments, main and auxiliary. It is assumed that the main trace segment<br />is 73 columns wide while the auxiliary trace segment is 8 columns wide. Note that we pad the main<br />trace to the next multiple of 8.<br />- The OOD evaluation frame is composed of two concatenated rows, current and next, each composed<br />of 73 elements representing the main trace portion and 8 elements for the auxiliary trace one.<br />Note that, due to the padding of the main trace columns, the number of OOD evaluations per row<br />is 80 for the main trace.<br /><br />The kernel-procedure digests and the stack i/o (FLPI) are read from caller memory at the<br />supplied `kernel_ptr` and `stack_io_ptr`; the program digest is supplied as an operand word; the<br />transcript state (DEFERRED) is loaded from the advice stack. `verify_proof` stages the<br />reduced-inputs block (kernel_H \| program_digest \| transcript_state \| pad) before the transcript<br />starts.<br /><br />Inputs: [kernel_ptr, num_kernel_digests, stack_io_ptr, PROG0, PROG1, PROG2, PROG3,<br />log(core_trace_length), log(chiplets_trace_length)]<br />Outputs: []<br /> |