Skip to content

Commit 240e724

Browse files
moodlezoupclaude
andcommitted
fix: adapt to jolt-witness API changes
Mechanical adaptation to the prover-stack/09-jolt-witness API tightening: - WitnessDimensions::new takes only log_rows; .dimensions.rows is now the derived rows() method. - OracleViewRequest was folded into ViewRequirement: oracle_view / try_evaluate_oracle_view take the requirement directly. - try_collect_ra_family_cycle_indices moved to the RaFamilyCycleIndexSource capability trait: bound added on collect_ra_cycle_indices, the materialize_sumcheck_ra_pushforward / stage7_hamming_state trait methods and their cpu impls, plus an empty impl for the RaPushforwardTestWitness mock. - WitnessBuilder was removed: the e2e harnesses construct TraceBackedJoltVmWitness::new(config, inputs) directly. Verified: jolt-backends + jolt-witness compile clean and pass 114/114 tests. jolt-prover's adaptation is compile-blocked by pre-existing tracer and jolt-blindfold breakage on this branch (unrelated to these changes). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 09e3b63 commit 240e724

11 files changed

Lines changed: 111 additions & 119 deletions

File tree

crates/jolt-backends/src/cpu/commitments/mod.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ where
173173
slot: item.slot,
174174
oracle: item.requirement.oracle,
175175
id: committed_id(item.requirement.oracle.kind),
176-
polynomial_rows: item.descriptor.dimensions.rows,
176+
polynomial_rows: item.descriptor.dimensions.rows(),
177177
layout: item.commitment_layout(core_fast_path_layout),
178178
mode: item.mode,
179179
}
@@ -214,7 +214,7 @@ where
214214
let result = stream::commit_streamed_witness::<F, PCS, N>(
215215
item.slot,
216216
item.requirement.oracle,
217-
item.descriptor.dimensions.rows,
217+
item.descriptor.dimensions.rows(),
218218
layout,
219219
item.mode,
220220
stream.as_mut(),
@@ -268,7 +268,7 @@ impl<N: WitnessNamespace> ResolvedCommitmentRequest<N> {
268268
if matches!(
269269
self.descriptor.encoding,
270270
PolynomialEncoding::Dense | PolynomialEncoding::Compact
271-
) && self.descriptor.dimensions.rows == embedding.trace_rows
271+
) && self.descriptor.dimensions.rows() == embedding.trace_rows
272272
&& matches!(
273273
self.requirement.retention,
274274
RetentionHint::ThroughStage8 | RetentionHint::ThroughBlindFold
@@ -342,7 +342,7 @@ fn infer_core_fast_path_layout<N: WitnessNamespace>(
342342
PolynomialEncoding::Dense | PolynomialEncoding::Compact
343343
)
344344
})
345-
.map(|item| item.descriptor.dimensions.rows)
345+
.map(|item| item.descriptor.dimensions.rows())
346346
.min()?;
347347

348348
let one_hot_rows = resolved
@@ -351,7 +351,7 @@ fn infer_core_fast_path_layout<N: WitnessNamespace>(
351351
item.requirement.retention == RetentionHint::ThroughStage8
352352
&& item.descriptor.encoding == PolynomialEncoding::OneHot
353353
})
354-
.map(|item| item.descriptor.dimensions.rows)
354+
.map(|item| item.descriptor.dimensions.rows())
355355
.max()?;
356356

357357
if trace_rows == 0

crates/jolt-backends/src/cpu/openings/mod.rs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
66
use jolt_field::Field;
77
use jolt_openings::CommitmentScheme;
8-
use jolt_witness::{OracleViewRequest, WitnessNamespace, WitnessProvider};
8+
use jolt_witness::{WitnessNamespace, WitnessProvider};
99
use rayon::prelude::*;
1010

1111
use crate::{
@@ -57,16 +57,17 @@ where
5757
let mut expected_rows = None;
5858
for (component_index, component) in request.components.iter().enumerate() {
5959
let context = format!("{} component {component_index}", request.label);
60-
let view = witness
61-
.oracle_view(OracleViewRequest::new(component.view))
62-
.map_err(|error| BackendError::InvalidRequest {
63-
backend,
64-
task: RLC_MATERIALIZATION_TASK,
65-
reason: format!(
66-
"{context} materialize {:?} failed: {error}",
67-
component.view.oracle.kind
68-
),
69-
})?;
60+
let view =
61+
witness
62+
.oracle_view(component.view)
63+
.map_err(|error| BackendError::InvalidRequest {
64+
backend,
65+
task: RLC_MATERIALIZATION_TASK,
66+
reason: format!(
67+
"{context} materialize {:?} failed: {error}",
68+
component.view.oracle.kind
69+
),
70+
})?;
7071
let descriptor = view.descriptor();
7172
if descriptor.reference.kind != component.view.oracle.kind {
7273
return Err(BackendError::InvalidRequest {

crates/jolt-backends/src/cpu/sumcheck/mod.rs

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use std::collections::{HashMap, HashSet};
1010
use jolt_field::{Field, RingAccumulator, WithAccumulator};
1111
use jolt_poly::{boolean_index_msb, EqPolynomial, TensorEqTable};
1212
use jolt_witness::{
13-
OracleViewRequest, PolynomialChunk, PolynomialView,
13+
PolynomialChunk, PolynomialView, RaFamilyCycleIndexSource,
1414
RaFamilyCycleIndices as WitnessRaCycleIndices, WitnessNamespace, WitnessProvider,
1515
};
1616

@@ -986,7 +986,7 @@ where
986986
witness: &W,
987987
) -> Result<Vec<Vec<F>>, BackendError>
988988
where
989-
W: WitnessProvider<F, N>,
989+
W: WitnessProvider<F, N> + RaFamilyCycleIndexSource<F, N>,
990990
{
991991
materialize_sumcheck_ra_pushforward(self.name(), request, witness)
992992
}
@@ -997,7 +997,7 @@ where
997997
witness: &W,
998998
) -> Result<SumcheckStage7HammingState<F>, BackendError>
999999
where
1000-
W: WitnessProvider<F, N>,
1000+
W: WitnessProvider<F, N> + RaFamilyCycleIndexSource<F, N>,
10011001
{
10021002
materialize_sumcheck_stage7_hamming_state(self.name(), request, witness)
10031003
}
@@ -1288,10 +1288,7 @@ where
12881288
}
12891289

12901290
if let Some(value) = witness
1291-
.try_evaluate_oracle_view(
1292-
OracleViewRequest::new(view_request.requirement),
1293-
&view_request.point,
1294-
)
1291+
.try_evaluate_oracle_view(view_request.requirement, &view_request.point)
12951292
.map_err(|error| BackendError::InvalidRequest {
12961293
backend,
12971294
task: EVALUATION_TASK,
@@ -1473,7 +1470,7 @@ fn materialize_sumcheck_ra_pushforward<F, N, W>(
14731470
where
14741471
F: Field,
14751472
N: WitnessNamespace,
1476-
W: WitnessProvider<F, N>,
1473+
W: WitnessProvider<F, N> + RaFamilyCycleIndexSource<F, N>,
14771474
{
14781475
let k_chunk = 1usize << request.log_k_chunk;
14791476
let indices = collect_ra_cycle_indices(
@@ -1504,7 +1501,7 @@ fn materialize_sumcheck_stage7_hamming_state<F, N, W>(
15041501
where
15051502
F: Field,
15061503
N: WitnessNamespace,
1507-
W: WitnessProvider<F, N>,
1504+
W: WitnessProvider<F, N> + RaFamilyCycleIndexSource<F, N>,
15081505
{
15091506
let k_chunk = 1usize << request.log_k_chunk;
15101507
let num_polys = request.num_polys();
@@ -1728,7 +1725,7 @@ fn collect_ra_cycle_indices<F, N, W>(
17281725
where
17291726
F: Field,
17301727
N: WitnessNamespace,
1731-
W: WitnessProvider<F, N>,
1728+
W: WitnessProvider<F, N> + RaFamilyCycleIndexSource<F, N>,
17321729
{
17331730
let instruction_chunks = instruction_ids.len();
17341731
let bytecode_chunks = bytecode_ids.len();
@@ -1988,7 +1985,7 @@ where
19881985
),
19891986
});
19901987
}
1991-
if descriptor.dimensions.rows == 0 {
1988+
if descriptor.dimensions.rows() == 0 {
19921989
return Err(BackendError::InvalidRequest {
19931990
backend,
19941991
task,
@@ -2020,14 +2017,14 @@ where
20202017
reason: format!("{context} did not materialize a concrete view"),
20212018
});
20222019
};
2023-
if values.len() != descriptor.dimensions.rows {
2020+
if values.len() != descriptor.dimensions.rows() {
20242021
return Err(BackendError::InvalidRequest {
20252022
backend,
20262023
task,
20272024
reason: format!(
20282025
"{context} materialized {} rows, expected {}",
20292026
values.len(),
2030-
descriptor.dimensions.rows
2027+
descriptor.dimensions.rows()
20312028
),
20322029
});
20332030
}
@@ -2048,7 +2045,7 @@ where
20482045
W: WitnessProvider<F, N>,
20492046
{
20502047
let view = witness
2051-
.oracle_view(OracleViewRequest::new(requirement))
2048+
.oracle_view(requirement)
20522049
.map_err(|error| BackendError::InvalidRequest {
20532050
backend,
20542051
task,

0 commit comments

Comments
 (0)