minor: use explicit builder.assert_zero for readability (#1293)

This commit is contained in:
Robin Salen 2023-10-16 08:53:59 -04:00 committed by GitHub
parent c9391be024
commit 29fdd3e372
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 19 deletions

View File

@ -819,12 +819,11 @@ where
// Connect intermediary values for gas_used and bloom filters to the block's final values. We only plug on the right, so there is no need to check the left-handside block. // Connect intermediary values for gas_used and bloom filters to the block's final values. We only plug on the right, so there is no need to check the left-handside block.
Self::connect_final_block_values_to_intermediary(builder, rhs); Self::connect_final_block_values_to_intermediary(builder, rhs);
let zero = builder.zero();
let has_not_parent_block = builder.sub(one, has_parent_block.target); let has_not_parent_block = builder.sub(one, has_parent_block.target);
// Check that the genesis block number is 0. // Check that the genesis block number is 0.
let gen_block_constr = builder.mul(has_not_parent_block, rhs.block_metadata.block_number); let gen_block_constr = builder.mul(has_not_parent_block, rhs.block_metadata.block_number);
builder.connect(gen_block_constr, zero); builder.assert_zero(gen_block_constr);
// Check that the genesis block has the predetermined state trie root in `ExtraBlockData`. // Check that the genesis block has the predetermined state trie root in `ExtraBlockData`.
Self::connect_genesis_block(builder, rhs, has_not_parent_block); Self::connect_genesis_block(builder, rhs, has_not_parent_block);
@ -837,7 +836,6 @@ where
) where ) where
F: RichField + Extendable<D>, F: RichField + Extendable<D>,
{ {
let zero = builder.zero();
for (&limb0, limb1) in x for (&limb0, limb1) in x
.trie_roots_before .trie_roots_before
.state_root .state_root
@ -846,7 +844,7 @@ where
{ {
let mut constr = builder.sub(limb0, limb1); let mut constr = builder.sub(limb0, limb1);
constr = builder.mul(has_not_parent_block, constr); constr = builder.mul(has_not_parent_block, constr);
builder.connect(constr, zero); builder.assert_zero(constr);
} }
} }
@ -879,16 +877,15 @@ where
where where
F: RichField + Extendable<D>, F: RichField + Extendable<D>,
{ {
let zero = builder.constant(F::ZERO);
// The initial number of transactions is 0. // The initial number of transactions is 0.
builder.connect(x.extra_block_data.txn_number_before, zero); builder.assert_zero(x.extra_block_data.txn_number_before);
// The initial gas used is 0. // The initial gas used is 0.
builder.connect(x.extra_block_data.gas_used_before[0], zero); builder.assert_zero(x.extra_block_data.gas_used_before[0]);
builder.connect(x.extra_block_data.gas_used_before[1], zero); builder.assert_zero(x.extra_block_data.gas_used_before[1]);
// The initial bloom filter is all zeroes. // The initial bloom filter is all zeroes.
for t in x.extra_block_data.block_bloom_before { for t in x.extra_block_data.block_bloom_before {
builder.connect(t, zero); builder.assert_zero(t);
} }
// The transactions and receipts tries are empty at the beginning of the block. // The transactions and receipts tries are empty at the beginning of the block.

View File

@ -619,14 +619,11 @@ fn add_data_write<F: RichField + Extendable<D>, const D: usize>(
debug_assert!(val.len() <= VALUE_LIMBS); debug_assert!(val.len() <= VALUE_LIMBS);
let len = core::cmp::min(val.len(), VALUE_LIMBS); let len = core::cmp::min(val.len(), VALUE_LIMBS);
let zero = builder.zero();
let one = builder.one();
let row = builder.add_virtual_targets(13); let row = builder.add_virtual_targets(13);
// is_read // is_read = false
builder.connect(row[0], zero); builder.assert_zero(row[0]);
// context // context = 0
builder.connect(row[1], zero); builder.assert_zero(row[1]);
// segment // segment
builder.connect(row[2], segment); builder.connect(row[2], segment);
// virtual // virtual
@ -635,14 +632,16 @@ fn add_data_write<F: RichField + Extendable<D>, const D: usize>(
// values // values
for j in 0..len { for j in 0..len {
// connect the actual value limbs
builder.connect(row[4 + j], val[j]); builder.connect(row[4 + j], val[j]);
} }
for j in len..VALUE_LIMBS { for j in len..VALUE_LIMBS {
builder.connect(row[4 + j], zero); // assert that the remaining limbs are 0
builder.assert_zero(row[4 + j]);
} }
// timestamp // timestamp = 1
builder.connect(row[12], one); builder.assert_one(row[12]);
let combined = challenge.combine_base_circuit(builder, &row); let combined = challenge.combine_base_circuit(builder, &row);
builder.mul(running_product, combined) builder.mul(running_product, combined)