mirror of
https://github.com/Z3Prover/z3
synced 2025-05-10 17:25:47 +00:00
add placeholder for simplification
This commit is contained in:
parent
d80b375ac3
commit
30a2c32c3b
7 changed files with 96 additions and 20 deletions
54
src/math/polysat/simplify.cpp
Normal file
54
src/math/polysat/simplify.cpp
Normal file
|
@ -0,0 +1,54 @@
|
|||
/*++
|
||||
Copyright (c) 2021 Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
Simplification
|
||||
|
||||
Author:
|
||||
|
||||
Jakob Rath, Nikolaj Bjorner (nbjorner) 2021-12-12
|
||||
|
||||
Notes:
|
||||
|
||||
This is a place holder for simplification.
|
||||
|
||||
- Replace literals of the form p < 1 (which is ~(p >= 1)) by p <= 0
|
||||
|
||||
- Rewrite clauses using factoring and normalization rules
|
||||
|
||||
- p*q <= 0 or C
|
||||
-> p <= 0 or C, q <= 0 or C
|
||||
|
||||
- ovfl(1, x) or C
|
||||
-> C
|
||||
|
||||
- Drop redundant literals from lemmas.
|
||||
|
||||
- Generalize lemmas by replacing equalities or destructive resolution.
|
||||
|
||||
- x = k => C[x]
|
||||
- C[k]
|
||||
|
||||
- x = k & y = k' => ax + by <= c
|
||||
- lo <= x <= k & lo' <= y <= k' => ax + by <= c
|
||||
|
||||
|
||||
--*/
|
||||
#pragma once
|
||||
#include "math/polysat/solver.h"
|
||||
#include "math/polysat/simplify.h"
|
||||
|
||||
namespace polysat {
|
||||
|
||||
simplify::simplify(solver& s):
|
||||
s(s)
|
||||
{}
|
||||
|
||||
bool simplify::should_apply() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
void simplify::operator()() {}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue