3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-14 06:45:25 +00:00

slicing notes

This commit is contained in:
Jakob Rath 2023-07-27 15:33:36 +02:00
parent fe03918f6d
commit eb20b8971b
2 changed files with 18 additions and 1 deletions

View file

@ -225,6 +225,9 @@ namespace polysat {
using extract_map = map<extract_args, pvar, extract_args_hash, extract_args_eq>;
extract_map m_extract_dedup;
bool is_extract(pvar v) const;
bool is_extract(pvar v, pvar& out_src, pvar& out_hi, pvar& out_lo) const;
enum class trail_item : std::uint8_t {
add_var,
split_core,
@ -233,7 +236,7 @@ namespace polysat {
};
svector<trail_item> m_trail;
enode_vector m_split_trail;
svector<extract_args> m_extract_trail;
svector<extract_args> m_extract_trail; // TODO: expand to pvar -> extract_args? 1. for dependency tracking when sharing subslice trees; 2. for easily checking if a variable is an extraction of another.
unsigned_vector m_scopes;
struct concat_info {