[klee-dev] Named Annotations in SMT-LIB2 expressions
Dan Liew
dan at su-root.co.uk
Wed Mar 25 13:55:43 GMT 2015
Hi Srijan,
> While '--smtlib-abbreviation-mode=named' had the desired effect, I also
> wanted the mapping of expressions to emitted annotations which I believe can
> be obtained from BindingMap in lib/Expr/ExprSMTLIBPrinter.cpp.
That is correct.
> Could someone shed more light on the same/ correct me if I'm wrong and give
> me a few pointers about how the bindings work. I'll be obliged by any help
> in this regard.
To understand how the printer is used you should take a look at
ExprSMTLIBPrinter.h [1]
which is very well documented.
The named bindings work by first traversing the Expr tree looking for
expressions that can
be abbreviated before doing any printing. You should look at
ExprSMTLIBPrinter::scanAll(...) [2] and
ExprSMTLIBPrinter::printExpression(...) [3]
[1] https://github.com/klee/klee/blob/master/include/klee/util/ExprSMTLIBPrinter.h
[2] https://github.com/klee/klee/blob/master/lib/Expr/ExprSMTLIBPrinter.cpp#L435-L447
[3] https://github.com/klee/klee/blob/master/lib/Expr/ExprSMTLIBPrinter.cpp#L167-L206
Hope that helps.
More information about the klee-dev
mailing list