From e55ddbe623b887c90523ed38c1c9399c8bf514cb Mon Sep 17 00:00:00 2001 From: Robin Salen Date: Tue, 9 Jul 2024 18:20:53 -0400 Subject: [PATCH] Rename --- docs/arithmetization/tables/cpu.tex | 2 +- docs/arithmetization/zkevm.pdf | Bin 315971 -> 315933 bytes .../src/cpu/columns/general.rs | 9 ++++----- evm_arithmetization/src/cpu/control_flow.rs | 8 ++------ evm_arithmetization/src/cpu/cpu_stark.rs | 2 +- evm_arithmetization/src/witness/operation.rs | 2 +- 6 files changed, 9 insertions(+), 14 deletions(-) diff --git a/docs/arithmetization/tables/cpu.tex b/docs/arithmetization/tables/cpu.tex index b3f1be65a..590b95668 100644 --- a/docs/arithmetization/tables/cpu.tex +++ b/docs/arithmetization/tables/cpu.tex @@ -71,5 +71,5 @@ \subsubsection{CPU columns} before) the instruction. \texttt{stack\_len\_bounds\_ aux} is used to check that the stack doesn't overflow in user mode. We use the last four columns to prevent conflicts with the other general columns. See \ref{stackhandling} for more details. \label{push_general_view} - \item \texttt{Push}: \texttt{push\_prover\_input\_not\_kernel} is used to skip range-checking the output of a PUSH operation when we are in privileged mode, as the kernel code is known and trusted. + \item \texttt{Push}: \texttt{is\_not\_kernel} is used to skip range-checking the output of a PUSH operation when we are in privileged mode, as the kernel code is known and trusted. \end{itemize} diff --git a/docs/arithmetization/zkevm.pdf b/docs/arithmetization/zkevm.pdf index 5a9d91dd6fc35da569c68be68c780bd40075fecf..d1986f70dc03445408cdda6eef82dcd320c6afaf 100644 GIT binary patch delta 4452 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 diff --git a/evm_arithmetization/src/cpu/columns/general.rs b/evm_arithmetization/src/cpu/columns/general.rs index 8affe6f08..64b7e4ce5 100644 --- a/evm_arithmetization/src/cpu/columns/general.rs +++ b/evm_arithmetization/src/cpu/columns/general.rs @@ -193,15 +193,14 @@ pub(crate) struct CpuStackView { pub(crate) stack_len_bounds_aux: T, } -/// View of the first `CpuGeneralColumn` storing the product of the negated -/// `is_kernel_mode` flag with the `push_prover_input` combined op flag, to -/// filter out `PUSH` instructions from being range-checked when happening in -/// the KERNEL context. +/// View of the first `CpuGeneralColumn` storing the negation of +/// `is_kernel_mode` flag, to filter out `PUSH` instructions from being +/// range-checked when happening in the KERNEL context. #[repr(C)] #[derive(Copy, Clone)] pub(crate) struct CpuPushView { /// Product of `push_prover_input` with the negated `is_kernel_mode` flag. - pub(crate) push_prover_input_not_kernel: T, + pub(crate) is_not_kernel: T, /// Reserve the unused columns. _padding_columns: [T; NUM_SHARED_COLUMNS - 1], } diff --git a/evm_arithmetization/src/cpu/control_flow.rs b/evm_arithmetization/src/cpu/control_flow.rs index 18aeb65ba..a88576456 100644 --- a/evm_arithmetization/src/cpu/control_flow.rs +++ b/evm_arithmetization/src/cpu/control_flow.rs @@ -82,8 +82,7 @@ pub(crate) fn eval_packed_generic( // it is set to 0 if the operation is a `PROVER_INPUT`, as the latter is a // kernel-only instruction. This is enforced in the `decode` module. yield_constr.constraint( - lv.op.push_prover_input - * ((lv.is_kernel_mode + lv.general.push().push_prover_input_not_kernel) - P::ONES), + lv.op.push_prover_input * ((lv.is_kernel_mode + lv.general.push().is_not_kernel) - P::ONES), ); // If a non-CPU cycle row is followed by a CPU cycle row, then: @@ -152,10 +151,7 @@ pub(crate) fn eval_ext_circuit, const D: usize>( // it is set to 0 if the operation is a `PROVER_INPUT`, as the latter is a // kernel-only instruction. This is enforced in the `decode` module. { - let temp = builder.add_extension( - lv.is_kernel_mode, - lv.general.push().push_prover_input_not_kernel, - ); + let temp = builder.add_extension(lv.is_kernel_mode, lv.general.push().is_not_kernel); let constr = builder.mul_sub_extension(lv.op.push_prover_input, temp, lv.op.push_prover_input); yield_constr.constraint(builder, constr); diff --git a/evm_arithmetization/src/cpu/cpu_stark.rs b/evm_arithmetization/src/cpu/cpu_stark.rs index a30306afb..55a3bf2d4 100644 --- a/evm_arithmetization/src/cpu/cpu_stark.rs +++ b/evm_arithmetization/src/cpu/cpu_stark.rs @@ -265,7 +265,7 @@ pub(crate) fn ctl_data_byte_packing_push() -> Vec> { pub(crate) fn ctl_filter_byte_packing_push() -> Filter { Filter::new( vec![( - Column::single(COL_MAP.general.push().push_prover_input_not_kernel), + Column::single(COL_MAP.general.push().is_not_kernel), Column::single(COL_MAP.op.push_prover_input), )], vec![], diff --git a/evm_arithmetization/src/witness/operation.rs b/evm_arithmetization/src/witness/operation.rs index 233e47ff6..07d48819b 100644 --- a/evm_arithmetization/src/witness/operation.rs +++ b/evm_arithmetization/src/witness/operation.rs @@ -388,7 +388,7 @@ pub(crate) fn generate_push>( // This is necessary to filter out PUSH instructions from the BytePackingStark // CTl when happening in the KERNEL context. - row.general.push_mut().push_prover_input_not_kernel = F::ONE - row.is_kernel_mode; + row.general.push_mut().is_not_kernel = F::ONE - row.is_kernel_mode; if code_context != KERNEL_CONTEXT { byte_packing_log(state, base_address, bytes);