pub fn prove<'a>(&'a self, pk: &'a SP1ProvingKey, stdin: &SP1Stdin) -> CpuProveBuilder<'a> {
        CpuProveBuilder {
            prover: self,
            mode: SP1ProofMode::Core,
            pk,
            stdin: stdin.clone(),
            context_builder: SP1ContextBuilder::default(),
            core_opts: SP1CoreOpts::default(),
            recursion_opts: SP1CoreOpts::recursion(),
            mock: self.mock,
        }
    }
Creates a new [`CpuProveBuilder`] for proving a program on the CPU.

# Details
The builder is used for only the [`crate::cpu::CpuProver`] client type.

# Example
```rust,no_run
use sp1_sdk::{include_elf, Prover, ProverClient, SP1Stdin};

let elf = &[1, 2, 3];
let stdin = SP1Stdin::new();

let client = ProverClient::builder().cpu().build();
let (pk, vk) = client.setup(elf);
let builder = client.prove(&pk, &stdin).core().run();
```
crates/sdk/src/cpu/mod.rs