pub async fn run_async(mut self) -> Result<SP1ProofWithPublicValues> {
        // Check for deprecated environment variable
        if let Ok(val) = std::env::var("SKIP_SIMULATION") {
            eprintln!(
                "Warning: SKIP_SIMULATION environment variable is deprecated. Please use .skip_simulation() instead."
            );
            self.skip_simulation = matches!(val.to_lowercase().as_str(), "true" | "1");
        }

        sp1_dump(&self.pk.elf, &self.stdin);

        self.prover
            .prove_impl(
                self.pk,
                &self.stdin,
                self.mode,
                self.strategy,
                self.timeout,
                self.skip_simulation,
                self.cycle_limit,
                self.gas_limit,
                self.tee_2fa,
                self.min_auction_period,
                self.whitelist,
            )
            .await
    }
Run the prover with the built arguments asynchronously.

# Details
This method will run the prover with the built arguments asynchronously.

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

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

let client = ProverClient::builder().network().build();
let (pk, vk) = client.setup(elf);
let proof = client.prove(&pk, &stdin).run_async();
```
crates/sdk/src/network/prove.rs