quantrs2_circuit/verifier/
config.rs

1//! Configuration types for the quantum circuit verifier
2
3use serde::{Deserialize, Serialize};
4use std::time::Duration;
5
6/// Verification configuration options
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct VerifierConfig {
9    /// Enable property verification
10    pub enable_property_verification: bool,
11    /// Enable invariant checking
12    pub enable_invariant_checking: bool,
13    /// Enable theorem proving
14    pub enable_theorem_proving: bool,
15    /// Enable model checking
16    pub enable_model_checking: bool,
17    /// Enable symbolic execution
18    pub enable_symbolic_execution: bool,
19    /// Maximum verification depth
20    pub max_verification_depth: usize,
21    /// Timeout for verification tasks
22    pub verification_timeout: Duration,
23    /// Precision level for numerical verification
24    pub numerical_precision: f64,
25    /// Enable statistical verification
26    pub enable_statistical_verification: bool,
27    /// Confidence level for statistical tests
28    pub confidence_level: f64,
29    /// Maximum number of samples for statistical verification
30    pub max_samples: usize,
31    /// Enable parallel verification
32    pub enable_parallel_verification: bool,
33}
34
35impl Default for VerifierConfig {
36    fn default() -> Self {
37        Self {
38            enable_property_verification: true,
39            enable_invariant_checking: true,
40            enable_theorem_proving: true,
41            enable_model_checking: true,
42            enable_symbolic_execution: true,
43            max_verification_depth: 1000,
44            verification_timeout: Duration::from_secs(300),
45            numerical_precision: 1e-12,
46            enable_statistical_verification: true,
47            confidence_level: 0.99,
48            max_samples: 10000,
49            enable_parallel_verification: true,
50        }
51    }
52}