mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-02 13:53:07 +00:00
Remove is_bootstrap_kernel column
This commit is contained in:
parent
683501cc67
commit
49d92cb8f1
@ -25,7 +25,6 @@ pub(crate) fn generate_bootstrap_kernel<F: Field>(state: &mut GenerationState<F>
|
||||
for chunk in &KERNEL.code.iter().enumerate().chunks(NUM_GP_CHANNELS) {
|
||||
let mut cpu_row = CpuColumnsView::default();
|
||||
cpu_row.clock = F::from_canonical_usize(state.traces.clock());
|
||||
cpu_row.is_bootstrap_kernel = F::ONE;
|
||||
|
||||
// Write this chunk to memory, while simultaneously packing its bytes into a u32 word.
|
||||
for (channel, (addr, &byte)) in chunk.enumerate() {
|
||||
@ -40,7 +39,6 @@ pub(crate) fn generate_bootstrap_kernel<F: Field>(state: &mut GenerationState<F>
|
||||
|
||||
let mut final_cpu_row = CpuColumnsView::default();
|
||||
final_cpu_row.clock = F::from_canonical_usize(state.traces.clock());
|
||||
final_cpu_row.is_bootstrap_kernel = F::ONE;
|
||||
final_cpu_row.is_keccak_sponge = F::ONE;
|
||||
// The Keccak sponge CTL uses memory value columns for its inputs and outputs.
|
||||
final_cpu_row.mem_channels[0].value[0] = F::ZERO; // context
|
||||
@ -66,8 +64,8 @@ pub(crate) fn eval_bootstrap_kernel<F: Field, P: PackedField<Scalar = F>>(
|
||||
let next_values: &CpuColumnsView<_> = vars.next_values.borrow();
|
||||
|
||||
// IS_BOOTSTRAP_KERNEL must have an init value of 1, a final value of 0, and a delta in {0, -1}.
|
||||
let local_is_bootstrap = local_values.is_bootstrap_kernel;
|
||||
let next_is_bootstrap = next_values.is_bootstrap_kernel;
|
||||
let local_is_bootstrap = P::ONES - local_values.op.into_iter().sum::<P>();
|
||||
let next_is_bootstrap = P::ONES - next_values.op.into_iter().sum::<P>();
|
||||
yield_constr.constraint_first_row(local_is_bootstrap - P::ONES);
|
||||
yield_constr.constraint_last_row(local_is_bootstrap);
|
||||
let delta_is_bootstrap = next_is_bootstrap - local_is_bootstrap;
|
||||
@ -113,8 +111,10 @@ pub(crate) fn eval_bootstrap_kernel_circuit<F: RichField + Extendable<D>, const
|
||||
let one = builder.one_extension();
|
||||
|
||||
// IS_BOOTSTRAP_KERNEL must have an init value of 1, a final value of 0, and a delta in {0, -1}.
|
||||
let local_is_bootstrap = local_values.is_bootstrap_kernel;
|
||||
let next_is_bootstrap = next_values.is_bootstrap_kernel;
|
||||
let local_is_bootstrap = builder.add_many_extension(local_values.op.into_iter());
|
||||
let local_is_bootstrap = builder.sub_extension(one, local_is_bootstrap);
|
||||
let next_is_bootstrap = builder.add_many_extension(next_values.op.into_iter());
|
||||
let next_is_bootstrap = builder.sub_extension(one, next_is_bootstrap);
|
||||
let constraint = builder.sub_extension(local_is_bootstrap, one);
|
||||
yield_constr.constraint_first_row(builder, constraint);
|
||||
yield_constr.constraint_last_row(builder, local_is_bootstrap);
|
||||
|
||||
@ -35,9 +35,6 @@ pub struct MemoryChannelView<T: Copy> {
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Copy, Eq, PartialEq, Debug)]
|
||||
pub struct CpuColumnsView<T: Copy> {
|
||||
/// Filter. 1 if the row is part of bootstrapping the kernel code, 0 otherwise.
|
||||
pub is_bootstrap_kernel: T,
|
||||
|
||||
/// If CPU cycle: Current context.
|
||||
// TODO: this is currently unconstrained
|
||||
pub context: T,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user