Skip to content

Commit 56690d1

Browse files
committed
remove incorrect order lemmas
Signed-off-by: Lev Nachmanson <[email protected]>
1 parent b0ffad9 commit 56690d1

File tree

3 files changed

+0
-92
lines changed

3 files changed

+0
-92
lines changed

src/math/lp/nla_order_lemmas.cpp

Lines changed: 0 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -212,24 +212,8 @@ bool order::order_lemma_on_ac_and_bc(const monic& rm_ac,
212212
// We try to find a monic n = cd, such that |b| = |d|
213213
// and get a lemma m R n & |b| = |d| => ab/|b| R cd /|d|, where R is a relation
214214
void order::order_lemma_on_factorization(const monic& m, const factorization& ab) {
215-
bool sign = m.rsign();
216-
for (factor f: ab)
217-
sign ^= _().canonize_sign(f);
218-
const rational rsign = sign_to_rat(sign);
219-
const rational fv = val(var(ab[0])) * val(var(ab[1]));
220-
const rational mv = rsign * var_val(m);
221-
TRACE("nla_solver",
222-
tout << "ab.size()=" << ab.size() << "\n";
223-
tout << "we should have sign*var_val(m):" << mv << "=(" << rsign << ")*(" << var_val(m) <<") to be equal to " << " val(var(ab[0]))*val(var(ab[1])):" << fv << "\n";);
224-
if (mv == fv)
225-
return;
226-
bool gt = mv > fv;
227-
SASSERT(mv != fv);
228215
TRACE("nla_solver", tout << "m="; _().print_monic_with_vars(m, tout); tout << "\nfactorization="; _().print_factorization(ab, tout););
229216
for (unsigned j = 0, k = 1; j < 2; j++, k--) {
230-
order_lemma_on_ab(m, rsign, var(ab[k]), var(ab[j]), gt);
231-
explain(ab); explain(m);
232-
TRACE("nla_solver", _().print_lemma(tout););
233217
order_lemma_on_ac_explore(m, ab, j == 1);
234218
}
235219
}
@@ -332,67 +316,5 @@ bool order::order_lemma_on_ac_and_bc_and_factors(const monic& ac,
332316
}
333317
return false;
334318
}
335-
/**
336-
\brief Add lemma:
337-
a > 0 & b <= value(b) => sign*ab <= value(b)*a if value(a) > 0
338-
a < 0 & b >= value(b) => sign*ab <= value(b)*a if value(a) < 0
339-
*/
340-
void order::order_lemma_on_ab_gt(const monic& m, const rational& sign, lpvar a, lpvar b) {
341-
SASSERT(sign * var_val(m) > val(a) * val(b));
342-
add_lemma();
343-
if (val(a).is_pos()) {
344-
TRACE("nla_solver", tout << "a is pos\n";);
345-
//negate a > 0
346-
mk_ineq(a, llc::LE);
347-
// negate b <= val(b)
348-
mk_ineq(b, llc::GT, val(b));
349-
// ab <= val(b)a
350-
mk_ineq(sign, m.var(), -val(b), a, llc::LE);
351-
} else {
352-
TRACE("nla_solver", tout << "a is neg\n";);
353-
SASSERT(val(a).is_neg());
354-
//negate a < 0
355-
mk_ineq(a, llc::GE);
356-
// negate b >= val(b)
357-
mk_ineq(b, llc::LT, val(b));
358-
// ab <= val(b)a
359-
mk_ineq(sign, m.var(), -val(b), a, llc::LE);
360-
}
361-
}
362-
// we need to deduce ab >= val(b)*a
363-
/**
364-
\brief Add lemma:
365-
a > 0 & b >= value(b) => sign*ab >= value(b)*a if value(a) > 0
366-
a < 0 & b <= value(b) => sign*ab >= value(b)*a if value(a) < 0
367-
*/
368-
void order::order_lemma_on_ab_lt(const monic& m, const rational& sign, lpvar a, lpvar b) {
369-
TRACE("nla_solver", tout << "sign = " << sign << ", m = "; c().print_monic(m, tout) << ", a = "; c().print_var(a, tout) <<
370-
", b = "; c().print_var(b, tout) << "\n";);
371-
SASSERT(sign * var_val(m) < val(a) * val(b));
372-
add_lemma();
373-
if (val(a).is_pos()) {
374-
//negate a > 0
375-
mk_ineq(a, llc::LE);
376-
// negate b >= val(b)
377-
mk_ineq(b, llc::LT, val(b));
378-
// ab <= val(b)a
379-
mk_ineq(sign, m.var(), -val(b), a, llc::GE);
380-
} else {
381-
SASSERT(val(a).is_neg());
382-
//negate a < 0
383-
mk_ineq(a, llc::GE);
384-
// negate b <= val(b)
385-
mk_ineq(b, llc::GT, val(b));
386-
// ab >= val(b)a
387-
mk_ineq(sign, m.var(), -val(b), a, llc::GE);
388-
}
389-
}
390-
391-
void order::order_lemma_on_ab(const monic& m, const rational& sign, lpvar a, lpvar b, bool gt) {
392-
if (gt)
393-
order_lemma_on_ab_gt(m, sign, a, b);
394-
else
395-
order_lemma_on_ab_lt(m, sign, a, b);
396-
}
397319

398320
}

src/math/lp/nla_order_lemmas.h

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,6 @@ class order: common {
4848

4949
void order_lemma_on_factorization(const monic& rm, const factorization& ab);
5050

51-
/**
52-
\brief Add lemma:
53-
a > 0 & b <= value(b) => sign*ab <= value(b)*a if value(a) > 0
54-
a < 0 & b >= value(b) => sign*ab <= value(b)*a if value(a) < 0
55-
*/
56-
void order_lemma_on_ab_gt(const monic& m, const rational& sign, lpvar a, lpvar b);
57-
// we need to deduce ab >= val(b)*a
58-
/**
59-
\brief Add lemma:
60-
a > 0 & b >= value(b) => sign*ab >= value(b)*a if value(a) > 0
61-
a < 0 & b <= value(b) => sign*ab >= value(b)*a if value(a) < 0
62-
*/
63-
void order_lemma_on_ab_lt(const monic& m, const rational& sign, lpvar a, lpvar b);
6451
void order_lemma_on_ab(const monic& m, const rational& sign, lpvar a, lpvar b, bool gt);
6552
void order_lemma_on_factor_binomial_explore(const monic& m, bool k);
6653
void order_lemma_on_factor_binomial_rm(const monic& ac, bool k, const monic& bd);

src/math/lp/nla_tangent_lemmas.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ struct imp {
6464
c().explain(m_x, exp);
6565
c().explain(m_y, exp);
6666
}
67-
void generate_simple_tangent_lemma(const monic& m, const factorization&);
6867
void tangent_lemma_on_bf() {
6968
get_tang_points();
7069
TRACE("nla_solver", tout << "tang domain = "; print_tangent_domain(tout) << std::endl;);

0 commit comments

Comments
 (0)