3
0
Fork 0
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:
Nikolaj Bjorner 2021-12-12 14:52:09 -08:00
parent d80b375ac3
commit 30a2c32c3b
7 changed files with 96 additions and 20 deletions

View 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()() {}
}