Yices Input Language
The language grammar is shown below
command ::= ( define-type <symbol> ) | ( define-type <symbol>typedef
) | ( define <symbol> ::type
) | ( define <symbol> ::type
expr
) | ( assertexpr
) | ( assertexpr
<symbol> ) | ( exit ) | ( check ) | ( check-assumingassumptions
) | ( ef-solve ) | ( push ) | ( pop ) | ( reset ) | ( show-model ) | ( show-reduced-model ) | ( show-implicant ) | ( show-unsat-core ) | ( show-unsat-assumptions ) | ( evalexpr
) | ( echo <string> ) | ( include <string> ) | ( set-param <symbol>immediatevalue
) | ( show-param <symbol> ) | ( show-params ) | ( show-stats ) | ( reset-stats ) | ( set-timeoutnumber
) | ( show-timeout ) | ( export-to-dimacs <string> ) | ( dump-context ) | ( help ) | ( help <symbol> ) | ( help <string> ) typedef ::=type
| ( scalar <symbol> ... <symbol> ) type ::= <symbol> | ( tupletype
...type
) | ( ->type
...type
type
) | ( bitvector <rational> ) | int | bool | real expr ::= true | false | <symbol> |number
| <binarybv> | <hexabv> | ( forall (var_decl
...var_decl
)expr
) | ( exists (var_decl
...var_decl
)expr
) | ( lambda (var_decl
...var_decl
)expr
) | ( let (binding
...binding
)expr
) | ( updateexpr
(expr
...expr
)expr
) | (function
expr
...expr
) function ::= <function-keyword> |expr
var_decl ::= <symbol> ::type
binding ::= ( <symbol>expr
) immediatevalue ::= true | false |number
| <symbol> number ::= <rational> | <float> assumptions ::= | <symbol>assumptions
| ( not <symbol> )assumptions