Provide standard complient behaviour for a sequence of commands.
Provide standard complient behaviour for a sequence of commands.
This driver will properly understand the whole SMT-LIB 2.5 language, maintaining proper state and forwarding work to an underlying solver. The behaviour of this driver is to perfectly follow the standard, and properly abstract the peculiarities of the black box solvers so that they can be used with SMT-LIB 2.5 language.
One difficult in implementing the SMT-LIB standard is that the standard is designed for process interaction, relying on both a standard output and standard error channel. Standard output and error are part of the interface of the driver, and by default will be available on the driver. If one sets the :diagnostic-output-channel or :regular-output-channel options, that will redirect this behaviour and send the outputs to files. Basically: stdout and stderr are the iterator attached to this driver.
TODO: this is work in progress, not usable yet.
Provides an entry point to run a command line wrapper on a driver
provides drivers that adapt standard SMT-LIB to solver specific behaviour
In particula, some solvers only support a subset of SMT-LIB or an outdated version. The aim of the drivers are to simplify the interface for other tools. All the tools have to be concerned about is to follow the SMT-LIB standard, and the driver will take care of any peculiarity of the solver.