openvm_recursion_circuit/gkr/
bus.rs1use openvm_recursion_circuit_derive::AlignedBorrow;
2use openvm_stark_sdk::config::baby_bear_poseidon2::D_EF;
3
4use crate::define_typed_per_proof_permutation_bus;
5
6#[repr(C)]
7#[derive(AlignedBorrow, Debug, Clone)]
8pub struct GkrXiSamplerMessage<T> {
9 pub idx: T,
10 pub tidx: T,
11}
12
13define_typed_per_proof_permutation_bus!(GkrXiSamplerBus, GkrXiSamplerMessage);
14
15#[repr(C)]
17#[derive(AlignedBorrow, Debug, Clone)]
18pub struct GkrLayerInputMessage<T> {
19 pub tidx: T,
20 pub q0_claim: [T; D_EF],
21}
22
23define_typed_per_proof_permutation_bus!(GkrLayerInputBus, GkrLayerInputMessage);
24
25#[repr(C)]
27#[derive(AlignedBorrow, Debug, Clone)]
28pub struct GkrLayerOutputMessage<T> {
29 pub tidx: T,
30 pub layer_idx_end: T,
31 pub input_layer_claim: [[T; D_EF]; 2],
32}
33
34define_typed_per_proof_permutation_bus!(GkrLayerOutputBus, GkrLayerOutputMessage);
35
36#[repr(C)]
38#[derive(AlignedBorrow, Debug, Clone)]
39pub struct GkrSumcheckInputMessage<T> {
40 pub layer_idx: T,
42 pub is_last_layer: T,
43 pub tidx: T,
45 pub claim: [T; D_EF],
47}
48
49define_typed_per_proof_permutation_bus!(GkrSumcheckInputBus, GkrSumcheckInputMessage);
50
51#[repr(C)]
53#[derive(AlignedBorrow, Debug, Clone)]
54pub struct GkrSumcheckOutputMessage<T> {
55 pub layer_idx: T,
57 pub tidx: T,
59 pub claim_out: [T; D_EF],
61 pub eq_at_r_prime: [T; D_EF],
63}
64
65define_typed_per_proof_permutation_bus!(GkrSumcheckOutputBus, GkrSumcheckOutputMessage);
66
67#[repr(C)]
69#[derive(AlignedBorrow, Debug, Clone)]
70pub struct GkrSumcheckChallengeMessage<T> {
71 pub layer_idx: T,
73 pub sumcheck_round: T,
75 pub challenge: [T; D_EF],
77}
78
79define_typed_per_proof_permutation_bus!(GkrSumcheckChallengeBus, GkrSumcheckChallengeMessage);