Skip to content

Commit d572c40

Browse files
chore: PairingProverExt is vacuous (#1907)
`PairingProverExt` is backend agnostic because it is vacuous and the pairing extension only consists of phantom sub-executors. Also changed a trait bound from `PrimeField32` to just `Field`
1 parent a62e015 commit d572c40

File tree

4 files changed

+16
-32
lines changed

4 files changed

+16
-32
lines changed

benchmarks/execute/benches/execute.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use openvm_ecc_transpiler::EccTranspilerExtension;
2525
use openvm_keccak256_circuit::{Keccak256, Keccak256CpuProverExt, Keccak256Executor};
2626
use openvm_keccak256_transpiler::Keccak256TranspilerExtension;
2727
use openvm_pairing_circuit::{
28-
PairingCpuProverExt, PairingCurve, PairingExtension, PairingExtensionExecutor,
28+
PairingCurve, PairingExtension, PairingExtensionExecutor, PairingProverExt,
2929
};
3030
use openvm_pairing_guest::bn254::BN254_COMPLEX_STRUCT_NAME;
3131
use openvm_pairing_transpiler::PairingTranspilerExtension;
@@ -176,11 +176,7 @@ where
176176
&config.weierstrass,
177177
inventory,
178178
)?;
179-
VmProverExtension::<E, _, _>::extend_prover(
180-
&PairingCpuProverExt,
181-
&config.pairing,
182-
inventory,
183-
)?;
179+
VmProverExtension::<E, _, _>::extend_prover(&PairingProverExt, &config.pairing, inventory)?;
184180
Ok(chip_complex)
185181
}
186182
}

crates/sdk/src/config/global.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use openvm_native_circuit::{
2424
CastFExtension, CastFExtensionExecutor, Native, NativeCpuProverExt, NativeExecutor,
2525
};
2626
use openvm_native_transpiler::LongFormTranspilerExtension;
27-
use openvm_pairing_circuit::{PairingCpuProverExt, PairingExtension, PairingExtensionExecutor};
27+
use openvm_pairing_circuit::{PairingExtension, PairingExtensionExecutor, PairingProverExt};
2828
use openvm_pairing_transpiler::PairingTranspilerExtension;
2929
use openvm_rv32im_circuit::{
3030
Rv32I, Rv32IExecutor, Rv32ImCpuProverExt, Rv32Io, Rv32IoExecutor, Rv32M, Rv32MExecutor,
@@ -274,7 +274,7 @@ where
274274
VmProverExtension::<E, _, _>::extend_prover(&AlgebraCpuProverExt, fp2, inventory)?;
275275
}
276276
if let Some(pairing) = &config.pairing {
277-
VmProverExtension::<E, _, _>::extend_prover(&PairingCpuProverExt, pairing, inventory)?;
277+
VmProverExtension::<E, _, _>::extend_prover(&PairingProverExt, pairing, inventory)?;
278278
}
279279
if let Some(ecc) = &config.ecc {
280280
VmProverExtension::<E, _, _>::extend_prover(&EccCpuProverExt, ecc, inventory)?;

extensions/pairing/circuit/src/config.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,7 @@ where
100100
&config.weierstrass,
101101
inventory,
102102
)?;
103-
VmProverExtension::<E, _, _>::extend_prover(
104-
&PairingCpuProverExt,
105-
&config.pairing,
106-
inventory,
107-
)?;
103+
VmProverExtension::<E, _, _>::extend_prover(&PairingProverExt, &config.pairing, inventory)?;
108104
Ok(chip_complex)
109105
}
110106
}

extensions/pairing/circuit/src/pairing_extension.rs

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use num_traits::{FromPrimitive, Zero};
44
use openvm_circuit::{
55
arch::{
66
AirInventory, AirInventoryError, ChipInventory, ChipInventoryError,
7-
ExecutorInventoryBuilder, ExecutorInventoryError, RowMajorMatrixArena, VmCircuitExtension,
8-
VmExecutionExtension, VmProverExtension,
7+
ExecutorInventoryBuilder, ExecutorInventoryError, VmCircuitExtension, VmExecutionExtension,
8+
VmProverExtension,
99
},
1010
system::phantom::PhantomExecutor,
1111
};
@@ -19,12 +19,7 @@ use openvm_pairing_guest::{
1919
bn254::{BN254_ECC_STRUCT_NAME, BN254_MODULUS, BN254_ORDER, BN254_XI_ISIZE},
2020
};
2121
use openvm_pairing_transpiler::PairingPhantom;
22-
use openvm_stark_backend::{
23-
config::{StarkGenericConfig, Val},
24-
engine::StarkEngine,
25-
p3_field::{Field, PrimeField32},
26-
prover::cpu::{CpuBackend, CpuDevice},
27-
};
22+
use openvm_stark_backend::{config::StarkGenericConfig, engine::StarkEngine, p3_field::Field};
2823
use serde::{Deserialize, Serialize};
2924
use strum::FromRepr;
3025

@@ -74,7 +69,7 @@ pub enum PairingExtensionExecutor<F: Field> {
7469
Phantom(PhantomExecutor<F>),
7570
}
7671

77-
impl<F: PrimeField32> VmExecutionExtension<F> for PairingExtension {
72+
impl<F: Field> VmExecutionExtension<F> for PairingExtension {
7873
type Executor = PairingExtensionExecutor<F>;
7974

8075
fn extend_execution(
@@ -95,18 +90,15 @@ impl<SC: StarkGenericConfig> VmCircuitExtension<SC> for PairingExtension {
9590
}
9691
}
9792

98-
pub struct PairingCpuProverExt;
99-
impl<E, SC, RA> VmProverExtension<E, RA, PairingExtension> for PairingCpuProverExt
93+
pub struct PairingProverExt;
94+
impl<E, RA> VmProverExtension<E, RA, PairingExtension> for PairingProverExt
10095
where
101-
SC: StarkGenericConfig,
102-
E: StarkEngine<SC = SC, PB = CpuBackend<SC>, PD = CpuDevice<SC>>,
103-
RA: RowMajorMatrixArena<Val<SC>>,
104-
Val<SC>: PrimeField32,
96+
E: StarkEngine,
10597
{
10698
fn extend_prover(
10799
&self,
108100
_: &PairingExtension,
109-
_inventory: &mut ChipInventory<SC, RA, CpuBackend<SC>>,
101+
_inventory: &mut ChipInventory<E::SC, RA, E::PB>,
110102
) -> Result<(), ChipInventoryError> {
111103
Ok(())
112104
}
@@ -132,14 +124,14 @@ pub(crate) mod phantom {
132124
pairing::{FinalExp, MultiMillerLoop},
133125
};
134126
use openvm_rv32im_circuit::adapters::{memory_read, read_rv32_register};
135-
use openvm_stark_backend::p3_field::PrimeField32;
127+
use openvm_stark_backend::p3_field::Field;
136128
use rand::rngs::StdRng;
137129

138130
use super::PairingCurve;
139131

140132
pub struct PairingHintSubEx;
141133

142-
impl<F: PrimeField32> PhantomSubExecutor<F> for PairingHintSubEx {
134+
impl<F: Field> PhantomSubExecutor<F> for PairingHintSubEx {
143135
fn phantom_execute(
144136
&self,
145137
memory: &GuestMemory,
@@ -156,7 +148,7 @@ pub(crate) mod phantom {
156148
}
157149
}
158150

159-
fn hint_pairing<F: PrimeField32>(
151+
fn hint_pairing<F: Field>(
160152
memory: &GuestMemory,
161153
hint_stream: &mut VecDeque<F>,
162154
rs1: u32,

0 commit comments

Comments
 (0)