## std::crypto::stark::mod
| Procedure | Description |
| ----------- | ------------- |
| verify | Verifies a STARK proof.<br /><br />The purpose of the following verifier is to serve as a generic core around which a specific<br />verifier can be built. It expects the following parameters on the stack from the caller:<br /><br />1. `[D0, D1, D2, D3]` which are respectively the digests for dynamic execution of procedures<br />i. `compute_deep_composition_polynomial_queries`<br />ii. `execute_constraint_evaluation_check`<br />iii. `process_row_ood_evaluations`<br />iv. `process_public_inputs`<br />2. `num_constraints` which is the number of constraints in the AIR<br />3. `trace_info` which is a field element encoding the layout of the AIR<br />4. `num_fixed_len_pi` is the number of fixed length public inputs of the AIR<br /><br />In addition to the above parameters, the verifier expects the following auxiliary proof parameters:<br /><br />1. `log(trace_length)`, the logarithm base 2 of the trace length<br />2. `num_queries`, the number of FRI queries<br />3. `grinding`, the number of bits of grinding i.e., proof-of-work<br /><br />The following simplifying assumptions are currently made and hardcoded:<br /><br />- The blowup factor is set to 8.<br />- The maximal allowed degree of the remainder polynomial is 127.<br />- To boost soundness, the protocol is run on a quadratic extension field and this means that<br />the OOD evaluation frame is composed of elements in a quadratic extension field i.e. tuples.<br />Similarly, elements of the auxiliary trace are quadratic extension field elements. The random<br />values for computing random linear combinations are also in this extension field.<br /><br />Inputs: [D3, D2, D1, D0, log(trace_length), num_queries, grinding, num_constraints, trace_info, num_fixed_len_pi]<br />Outputs: []<br /> |