pub struct BoogieOptions {
Show 29 fields pub boogie_exe: String, pub use_exp_boogie: bool, pub z3_exe: String, pub use_cvc4: bool, pub cvc4_exe: String, pub debug_trace: bool, pub boogie_flags: Vec<String>, pub use_array_theory: bool, pub generate_smt: bool, pub native_equality: bool, pub type_requires: String, pub stratification_depth: usize, pub aggressive_func_inline: String, pub func_inline: String, pub serialize_bound: usize, pub bench_repeat: usize, pub vector_using_sequences: bool, pub random_seed: usize, pub proc_cores: usize, pub vc_timeout: usize, pub keep_artifacts: bool, pub eager_threshold: usize, pub lazy_threshold: usize, pub stable_test_output: bool, pub num_instances: usize, pub sequential_task: bool, pub hard_timeout_secs: u64, pub vector_theory: VectorTheory, pub z3_trace_file: Option<String>,
}
Expand description

Boogie options.

Fields§

§boogie_exe: String

Path to the boogie executable.

§use_exp_boogie: bool

Use experimental boogie exe found via env var EXP_BOOGIE_EXE.

§z3_exe: String

Path to the z3 executable.

§use_cvc4: bool

Whether to use cvc4.

§cvc4_exe: String

Path to the cvc4 executable.

§debug_trace: bool

Whether to generate debug trace code.

§boogie_flags: Vec<String>

List of flags to pass on to boogie.

§use_array_theory: bool

Whether to use native array theory.

§generate_smt: bool

Whether to produce an SMT file for each verification problem.

§native_equality: bool

Whether native instead of stratified equality should be used.

§type_requires: String

A string determining the type of requires used for parameter type checks. Can be "requires" or "free requires“.

§stratification_depth: usize

The depth until which stratified functions are expanded.

§aggressive_func_inline: String

A string to be used to inline a function of medium size. Can be empty or {:inline}.

§func_inline: String

A string to be used to inline a function of small size. Can be empty or {:inline}.

§serialize_bound: usize

A bound to apply to the length of serialization results.

§bench_repeat: usize

How many times to call the prover backend for the verification problem. This is used for benchmarking.

§vector_using_sequences: bool

Whether to use the sequence theory as the internal representation for $Vector type.

§random_seed: usize

A seed for the prover.

§proc_cores: usize

The number of cores to use for parallel processing of verification conditions.

§vc_timeout: usize

A (soft) timeout for the solver, per verification condition, in seconds.

§keep_artifacts: bool

Whether Boogie output and log should be saved.

§eager_threshold: usize

Eager threshold for quantifier instantiation.

§lazy_threshold: usize

Lazy threshold for quantifier instantiation.

§stable_test_output: bool

Whether to use the new Boogie {:debug ..} attribute for tracking debug values.

§num_instances: usize

Number of Boogie instances to be run concurrently.

§sequential_task: bool

Whether to run Boogie instances sequentially.

§hard_timeout_secs: u64

A hard timeout for boogie execution; if the process does not terminate within this time frame, it will be killed. Zero for no timeout.

§vector_theory: VectorTheory

What vector theory to use.

§z3_trace_file: Option<String>

Whether to generate a z3 trace file and where to put it.

Implementations§

source§

impl BoogieOptions

source

pub fn derive_options(&mut self)

Derive options based on other set options.

source

pub fn get_boogie_command(&self, boogie_file: &str) -> Result<Vec<String>>

Returns command line to call boogie.

source

pub fn get_boogie_log_file(&self, boogie_file: &str) -> String

Returns name of file where to log boogie output.

source

pub fn adjust_timeout(&self, time: usize) -> usize

Adjust a timeout value, given in seconds, for the runtime environment.

source

pub fn check_tool_versions(&self) -> Result<()>

Checks whether the expected tool versions are installed in the environment.

Trait Implementations§

source§

impl Clone for BoogieOptions

source§

fn clone(&self) -> BoogieOptions

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BoogieOptions

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for BoogieOptions

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for BoogieOptionswhere BoogieOptions: Default,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for BoogieOptions

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere T: for<'de> Deserialize<'de>,