3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00

additional str/re operators, remove encoding option from zstring

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-05-17 05:08:36 -07:00
parent b2bfb1faea
commit 34cc60410f
9 changed files with 210 additions and 44 deletions

View file

@ -50,10 +50,11 @@ void monotone::monotonicity_lemma(monic const& m) {
Example:
0 >= x >= -2 & 0 <= y <= 3 => x*y >= -6
0 >= x >= -2 & 0 <= y <= 3 => x*x*y <= 12
*/
void monotone::monotonicity_lemma_gt(const monic& m) {
new_lemma lemma(c(), __FUNCTION__);
new_lemma lemma(c(), "monotonicity > ");
rational product(1);
for (lpvar j : m.vars()) {
auto v = c().val(j);
@ -75,7 +76,7 @@ void monotone::monotonicity_lemma_gt(const monic& m) {
x <= -2 & y >= 3 => x*y <= -6
*/
void monotone::monotonicity_lemma_lt(const monic& m) {
new_lemma lemma(c(), __FUNCTION__);
new_lemma lemma(c(), "monotonicity <");
rational product(1);
for (lpvar j : m.vars()) {
auto v = c().val(j);

View file

@ -289,6 +289,7 @@ void order::generate_ol(const monic& ac,
lemma |= ineq(c.var(), val(c.var()).is_neg() ? llc::GE : llc::LE, 0);
_().negate_var_relation_strictly(lemma, ac.var(), bc.var());
_().negate_var_relation_strictly(lemma, a.var(), b.var());
lemma &= ac;
lemma &= a;
lemma &= bc;