Skip to content

Yices2 produces invalid SMTLIB output when dumping formulas #402

Open
@daniel-raffler

Description

@daniel-raffler

Hello everyone,
yices2 does not apply correct quotes while dumping SMTLIB formulas. An example for this can be seen in VariableNamesTest.testBoolVariableDump() where the formula for a (boolean) variable named "(" produces the following output:

(declare-fun |(| () Bool)
(assert ()

The correct output should use quotes for the "(" in the assertion:

(declare-fun |(| () Bool)
(assert |(|)

Without the quotes the SMTLIB string is invalid and will cause an exception during post-processing. (Which is why the test was temporarily disabled for yices2)

The problem is with the yices2 function yices_term_to_string(), which fails to apply the quotes while printing the formula. We should report this to the yices2 developers and wait for a fix. If this is not an option we may want to handle quoting on our end by overloading `Yices2FormulaManager.makeVariable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Blocked by Solver Supportsolver does not yet support this feature OR there was not yet any public release of the solverYices2solver

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions