| 70 | vector<vector<const Node*>> nodes_eqs; // root -> equiv nodes |
| 71 | |
| 72 | unsigned get(Node &&n) { |
| 73 | auto [I, inserted] = nodes.try_emplace(std::move(n), 0); |
| 74 | if (inserted) { |
| 75 | I->second = uf.mk(); |
| 76 | nodes_eqs.emplace_back(1, &I->first); |
| 77 | } |
| 78 | return I->second; |
| 79 | } |
| 80 | |
| 81 | void decl_equivalent(Node &&node, unsigned n1) { |
| 82 | unsigned n2 = get(std::move(node)); |