Struct isla_axiomatic::axiomatic::model::Model[][src]

pub struct Model<'s, 'ev, B> { /* fields omitted */ }

A model, as parsed from the SMT solver output, contains a list of function declarations (which can have arity 0 for constants) for each declare-const and declare-fun in the model. A model can also be parameterised by a set of events. The two lifetime parameters correspond to the underlying smtlib model 's and the events 'ev.

Implementations

impl<'s, 'ev, B: BV> Model<'s, 'ev, B>[src]

pub fn parse(events: &[&'ev str], model: &'s str) -> Option<Self>[src]

Parse a model from a string of the form (model (define-fun …) (define-fun …) …)

pub fn interpret(
    &mut self,
    f: &str,
    args: &[SexpVal<'ev, B>]
) -> Result<SexpVal<'ev, B>, InterpretError>
[src]

Interprets a function in the model

pub fn interpret_rel(
    &mut self,
    rel: &str,
    events: &[&'ev str]
) -> Result<Vec<(&'ev str, &'ev str)>, InterpretError>
[src]

Inteprets a relation (an Event * Event -> Bool function) over a set of events. Note that all events in this set must have been used to parameterise the model in Model::parse.

pub fn interpret_bits(&mut self, val: &Val<B>) -> Result<B, InterpretError>[src]

Interpret either a bitvector symbol in the model, or just return the bitvector directory if the val is concrete

Auto Trait Implementations

impl<'s, 'ev, B> RefUnwindSafe for Model<'s, 'ev, B> where
    B: RefUnwindSafe

impl<'s, 'ev, B> Send for Model<'s, 'ev, B> where
    B: Send

impl<'s, 'ev, B> Sync for Model<'s, 'ev, B> where
    B: Sync

impl<'s, 'ev, B> Unpin for Model<'s, 'ev, B> where
    B: Unpin

impl<'s, 'ev, B> UnwindSafe for Model<'s, 'ev, B> where
    B: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.