Closed rainoftime closed 4 years ago
See Nikolaj's comment for https://github.com/Z3Prover/z3/issues/3902
@zhendongsu :lblpos and :named are different. The former one is introduced by Boogie, but :named is general in smt-lib2 (also supported by OpenSMT, etc)
There is a document http://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.0-r12.09.09.pdf (Page 25)
Okay, I see; thanks. Let's see what Nikolaj says about Z3's support regarding this.
the bug was not directly tied to named assumptions, but perhaps not too easy to trigger because it required that the variable used in division wasn't used elsewhere in arithmetical context.
The construct :named is supported for the standard.
The constructs :lblpos :lblneg is a "Rustan" feature. It was added in 2007 and never really touched. They may have sound denotational meanings, but the implementation is very narrowly tuned to Boogie use case. I am not willing to risk breaking Boogie uses because the z3 implementation of lblpos/lblneg is highly operational.
Hi, for the following formula,
z3 (commit dde0c514fa) gives an invalid model