Skip to content
Discussion options

You must be logged in to vote

For z3 you can parse associative/commutative operators with any > 0 arguments in Z3. When they are given 1 argument, they are treated as no-ops. so (* x) is x, (+ x) is x, (bvmul x) is x etc.
The meaning of bvadd is idempotent on one argument. The simplifier/pre-processor eliminates this use of bvadd.
z3 strives to be able to process SMTLIB2 compliant input, but does not restrict itself to reject input that has unambiguous meaning.

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by depted
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants
Converted from issue

This discussion was converted from issue #6517 on January 04, 2023 20:10.