Crate aws_smt_ir
source ·Expand description
Intermediate representation for SMT-LIB formulas.
Re-exports
pub use smt2parser::concrete::Command as Smt2ParserCommand;
pub use smt2parser::concrete::SyntaxBuilder;
pub use smt2parser::CommandStream;
pub use logic::Logic;
pub use term::*;
pub use types::*;
Modules
- Traits for transforming
Term
s into other terms. - Representations of SMT-LIB logics.
- This crate provides a generic parser for SMT2 commands, as specified by the SMT-LIB-2 standard.
- Intermediate representation for SMT-LIB terms.
- Traits for visiting
Term
s.
Macros
- Creates a
SmallVec
containing the arguments. - Unwraps a
ControlFlow
or propagates itsBreak
value. This replaces theTry
implementation that would be used withstd::ops::ControlFlow
.
Structs
Ctx
tracks the global context of a script (e.g. defined sorts and functions), along with local context inside of terms (e.g. variables bound bylet
,forall
,exists
).Script
represents an entire SMT-LIB script i.e. sequence of commands.
Enums
Functions
- Applies
each
to each adjacent pair of arguments inargs
, corresponding to the:chainable
SMT-LIB attribute. - Applies
each
to each distinct pair of arguments inargs
, corresponding to the:pairwise
SMT-LIB attribute. - Parses an SMT-LIB file, returning an iterator of parsed SMT-LIB commands.
- Applies a fallible function to each adjacent pair of arguments in
args
, corresponding to the:chainable
SMT-LIB attribute. - Applies a fallible function to each distinct pair of arguments in
args
, corresponding to the:pairwise
SMT-LIB attribute.
Type Definitions
- An uninhabited type, useful for defining theories that contain no operations beyond those in SMT-LIB’s Core theory.