fix: incorrect equivalence classes
- `propagate_equality` transformation did not compute equality classes correctly, its 'merge' function was completely wrong: it tried to add intersection of classes to a another class, instead of doing union - to merge classes correctly we must do it when we add a new pair of equal expressions: otherwise later there will too many classes that contain common elements, so 'merge' function was removed and 'insert' now merges two classes that contain common elements - Also this logic is now covered by tests
Showing
Please register or sign in to comment