Trait rsmt2::Solver
[−]
[src]
pub trait Solver<'kid, Parser: ParseSmt2 + 'static>: SolverPrims<'kid, Parser> { fn reset(&mut self) -> UnitSmtRes { ... } fn set_logic(&mut self, logic: &Logic) -> UnitSmtRes { ... } fn set_option<Value: Display>(&mut self, option: &str, value: Value) -> UnitSmtRes { ... } fn interactive_mode(&mut self) -> UnitSmtRes { ... } fn print_success(&mut self) -> UnitSmtRes { ... } fn produce_unsat_core(&mut self) -> UnitSmtRes { ... } fn exit(&mut self) -> UnitSmtRes { ... } fn push(&mut self, n: &u8) -> UnitSmtRes { ... } fn pop(&mut self, n: &u8) -> UnitSmtRes { ... } fn reset_assertions(&mut self) -> UnitSmtRes { ... } fn declare_sort<Sort: Sort2Smt>(&mut self, sort: &Sort, arity: &u8) -> UnitSmtRes { ... } fn define_sort<Sort: Sort2Smt, I, Expr1: Expr2Smt<I>, Expr2: Expr2Smt<I>>(&mut self, sort: &Sort, args: &[Expr1], body: &Expr2, info: &I) -> UnitSmtRes { ... } fn declare_fun<Sort: Sort2Smt, I, Sym: Sym2Smt<I>>(&mut self, symbol: &Sym, args: &[Sort], out: &Sort, info: &I) -> UnitSmtRes { ... } fn declare_const<Sort: Sort2Smt, I, Sym: Sym2Smt<I>>(&mut self, symbol: &Sym, out_sort: &Sort, info: &I) -> UnitSmtRes { ... } fn define_fun<I, Sort: Sort2Smt, Sym1: Sym2Smt<I>, Sym2: Sym2Smt<I>, Expr: Expr2Smt<I>>(&mut self, symbol: &Sym1, args: &[(Sym2, Sort)], out: &Sort, body: &Expr, info: &I) -> UnitSmtRes { ... } fn define_funs_rec<I, Sort: Sort2Smt, Sym: Sym2Smt<I>, Expr: Expr2Smt<I>>(&mut self, funs: &[(Sym, &[(Sym, Sort)], Sort, Expr)], info: &I) -> UnitSmtRes { ... } fn define_fun_rec<I, Sort: Sort2Smt, Sym: Sym2Smt<I>, Expr: Expr2Smt<I>>(&mut self, symbol: &Sym, args: &[(Sym, Sort)], out: &Sort, body: &Expr, info: &I) -> UnitSmtRes { ... } fn assert<I, Expr: Expr2Smt<I>>(&mut self, expr: &Expr, info: &I) -> UnitSmtRes { ... } fn get_info(&mut self, flag: &str) -> UnitSmtRes { ... } fn get_option(&mut self, option: &str) -> UnitSmtRes { ... } fn set_info(&mut self, attribute: &str) -> UnitSmtRes { ... } fn echo(&mut self, text: &str) -> UnitSmtRes { ... } fn parse_success(&mut self) -> SmtRes<()> { ... } }
Provides SMT-LIB commands that are not queries.
Provided Methods
fn reset(&mut self) -> UnitSmtRes
Resets the underlying solver. Restarts the kid process if no reset command is supported.
fn set_logic(&mut self, logic: &Logic) -> UnitSmtRes
Sets the logic.
fn set_option<Value: Display>(&mut self, option: &str, value: Value) -> UnitSmtRes
Set option command.
fn interactive_mode(&mut self) -> UnitSmtRes
Activates interactive mode.
fn print_success(&mut self) -> UnitSmtRes
Activates print success.
fn produce_unsat_core(&mut self) -> UnitSmtRes
Activates unsat core production.
fn exit(&mut self) -> UnitSmtRes
Shuts the solver down.
fn push(&mut self, n: &u8) -> UnitSmtRes
Pushes n
layers on the assertion stack.
fn pop(&mut self, n: &u8) -> UnitSmtRes
Pops n
layers off the assertion stack.
fn reset_assertions(&mut self) -> UnitSmtRes
Resets the assertions in the solver.
fn declare_sort<Sort: Sort2Smt>(&mut self, sort: &Sort, arity: &u8) -> UnitSmtRes
Declares a new sort.
fn define_sort<Sort: Sort2Smt, I, Expr1: Expr2Smt<I>, Expr2: Expr2Smt<I>>(&mut self, sort: &Sort, args: &[Expr1], body: &Expr2, info: &I) -> UnitSmtRes
Defines a new sort.
fn declare_fun<Sort: Sort2Smt, I, Sym: Sym2Smt<I>>(&mut self, symbol: &Sym, args: &[Sort], out: &Sort, info: &I) -> UnitSmtRes
Declares a new function symbol.
fn declare_const<Sort: Sort2Smt, I, Sym: Sym2Smt<I>>(&mut self, symbol: &Sym, out_sort: &Sort, info: &I) -> UnitSmtRes
Declares a new constant.
fn define_fun<I, Sort: Sort2Smt, Sym1: Sym2Smt<I>, Sym2: Sym2Smt<I>, Expr: Expr2Smt<I>>(&mut self, symbol: &Sym1, args: &[(Sym2, Sort)], out: &Sort, body: &Expr, info: &I) -> UnitSmtRes
Defines a new function symbol.
fn define_funs_rec<I, Sort: Sort2Smt, Sym: Sym2Smt<I>, Expr: Expr2Smt<I>>(&mut self, funs: &[(Sym, &[(Sym, Sort)], Sort, Expr)], info: &I) -> UnitSmtRes
Defines some new (possibily mutually) recursive functions.
fn define_fun_rec<I, Sort: Sort2Smt, Sym: Sym2Smt<I>, Expr: Expr2Smt<I>>(&mut self, symbol: &Sym, args: &[(Sym, Sort)], out: &Sort, body: &Expr, info: &I) -> UnitSmtRes
Defines a new recursive function.
fn assert<I, Expr: Expr2Smt<I>>(&mut self, expr: &Expr, info: &I) -> UnitSmtRes
Asserts an expression with some print information.
fn get_info(&mut self, flag: &str) -> UnitSmtRes
Get info command.
fn get_option(&mut self, option: &str) -> UnitSmtRes
Get option command.
fn set_info(&mut self, attribute: &str) -> UnitSmtRes
Set info command.
fn echo(&mut self, text: &str) -> UnitSmtRes
Echo command.
fn parse_success(&mut self) -> SmtRes<()>
Parse success.
Implementors
impl<'kid, Parser: ParseSmt2 + 'static> Solver<'kid, Parser> for PlainSolver<'kid, Parser>
impl<'kid, Parser: ParseSmt2 + 'static> Solver<'kid, Parser> for TeeSolver<'kid, Parser>