3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-11-05 13:56:03 +00:00
z3/src/math
Jakob Rath c95ff56d2d slicing: change how values are tracked
Do not eagerly merge equivalence classes with the same constant value.

Reason:
- when we split a value slice, the subslice might already exist in the
  egraph and already have subslices itself, which breaks assumptions in
  split/split_core.
- introduces unnecessary splits

Now:
- wrap constants into fresh function symbol before creating the enode
- check value compatibility in on_merge callback instead
- track pointer to value_node for each enode, and update it in on_merge
2023-08-17 17:14:18 +02:00
..
automata Use = default for virtual constructors. 2022-08-05 18:11:46 +03:00
bigfix enable fixed propagation from inequalities 2021-08-14 11:58:19 -07:00
dd fixes 2023-07-26 09:09:23 +02:00
grobner fix #6260 2022-08-06 08:21:52 +03:00
hilbert Use = default for virtual constructors. 2022-08-05 18:11:46 +03:00
interval fix #6686 2023-04-12 20:13:24 -07:00
lp Merge branch 'master' of https://github.com/z3prover/z3 2023-07-07 17:23:08 -07:00
polynomial Reverted unintended changes 2022-12-27 08:47:27 +01:00
polysat slicing: change how values are tracked 2023-08-17 17:14:18 +02:00
realclosure use std::move 2022-10-02 21:34:17 +01:00
simplex Typo Fixes (#6803) 2023-07-09 11:56:10 -07:00
subpaving fix #6676 get rid of rem0 declare it to be mod0 semantics to simplify code paths 2023-04-11 16:46:43 -07:00