3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-08 18:31:49 +00:00

bugfix to flatten-clases simplifier

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2023-01-05 20:59:28 -08:00
parent c07b6ab38f
commit 25112e47b4
3 changed files with 43 additions and 7 deletions

View file

@ -92,7 +92,7 @@ public:
if (decomposed) {
expr* na = mk_not(m, a);
for (expr* arg : *to_app(b))
m_fmls.add(dependent_expr(m, m.mk_or(na, arg), nullptr, de.dep()));
m_fmls.add(dependent_expr(m, m.mk_or(na, mk_not(m, arg)), nullptr, de.dep()));
m_fmls.update(idx, dependent_expr(m, m.mk_true(), nullptr, nullptr));
++m_num_flat;
continue;

View file

@ -7,13 +7,33 @@ Module Name:
Abstract:
Tactic for bounding unbounded variables.
Author:
Leonardo de Moura (leonardo) 2011-06-30.
Revision History:
Tactic Documentation:
## Tactic add-bounds
### Short Description
Tactic for bounding unbounded variables.
### Long Description
The tactic creates a stronger sub-goal by adding bounds to variables.
The new goal may not be satisfiable even if the original goal is.
### Example
```z3
(declare-const x Int)
(declare-const y Int)
(assert (> (+ x y) 10))
(apply add-bounds)
```
--*/
#pragma once

View file

@ -5,15 +5,31 @@ Module Name:
lia2pb_tactic.h
Abstract:
Reduce bounded LIA benchmark into 0-1 LIA benchmark.
Author:
Leonardo de Moura (leonardo) 2012-02-07.
Revision History:
Tactic Documentation:
## Tactic lia2pb
### Short Description
Reduce bounded LIA benchmark into 0-1 LIA benchmark.
### Example
```z3
(declare-const x Int)
(declare-const y Int)
(assert (<= 0 x))
(assert (<= x 5))
(assert (<= 0 y))
(assert (<= y 5))
(assert (>= (+ (* 2 x) y) 5))
(apply lia2pb)
```
--*/
#pragma once