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

accumulate scalars when simplifying

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2019-09-26 10:11:22 -07:00
parent 4e2cd2c8de
commit c076c17df9
3 changed files with 46 additions and 18 deletions

View file

@ -85,19 +85,23 @@ void test_simplify() {
);
enable_trace("nla_cn");
enable_trace("nla_cn_details");
nex_var* a = cn.get_nex_creator().mk_var(0);
nex_var* b = cn.get_nex_creator().mk_var(1);
nex_var* c = cn.get_nex_creator().mk_var(2);
auto & r = cn.get_nex_creator();
auto m = r.mk_mul(); m->add_child_in_power(c, 2);
auto & creator = cn.get_nex_creator();
nex_var* a = creator.mk_var(0);
nex_var* b = creator.mk_var(1);
nex_var* c = creator.mk_var(2);
auto m = creator.mk_mul(); m->add_child_in_power(c, 2);
TRACE("nla_cn", tout << "m = " << *m << "\n";);
auto n = r.mk_mul(a);
auto n = creator.mk_mul(a);
n->add_child_in_power(b, 7);
n->add_child(creator.mk_scalar(rational(3)));
n->add_child_in_power(creator.mk_scalar(rational(4)), 2);
n->add_child(creator.mk_scalar(rational(1)));
TRACE("nla_cn", tout << "n = " << *n << "\n";);
m->add_child_in_power(n, 3);
n->add_child_in_power(creator.mk_scalar(rational(1, 3)), 2);
TRACE("nla_cn", tout << "m = " << *m << "\n";);
nex * e = r.mk_sum(a, r.mk_sum(b, m));
nex * e = creator.mk_sum(a, creator.mk_sum(b, m));
TRACE("nla_cn", tout << "e = " << *e << "\n";);
e->simplify(&e);
TRACE("nla_cn", tout << "simplified e = " << *e << "\n";);