mirror of
https://github.com/Z3Prover/z3
synced 2025-11-05 13:56:03 +00:00
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 |
||
|---|---|---|
| .. | ||
| automata | ||
| bigfix | ||
| dd | ||
| grobner | ||
| hilbert | ||
| interval | ||
| lp | ||
| polynomial | ||
| polysat | ||
| realclosure | ||
| simplex | ||
| subpaving | ||