pub trait DeferralCircuitProver<SC: StarkProtocolConfig> {
// Required methods
fn get_vk(&self) -> Arc<MultiStarkVerifyingKey<SC>>;
fn get_pk(&self) -> Arc<DeferralCircuitProverKey<SC>>;
fn from_pk(encoded_pk: DeferralCircuitProverKey<SC>) -> Self
where Self: Sized;
fn prove(&self, input_bytes: &[u8]) -> Proof<SC>;
fn get_def_idx(&self) -> usize;
// Provided method
fn cached_commits(&self) -> Vec<CommitBytes> { ... }
}