| 441 | self.register3(a, b, f, dep) |
| 442 | |
| 443 | def add_eq4(self, a: str, b: str, c: str, d: str, dep: pr.Dependency) -> None: |
| 444 | # a - b = c - d |
| 445 | self.record_eq(a, b, c, d) |
| 446 | self.record_eq(a, c, b, d) |
| 447 | |
| 448 | expr = list(minus({a: 1, b: -1}, {c: 1, d: -1}).items()) |
| 449 | |
| 450 | if not self.add_expr(expr): |
| 451 | return [] |
| 452 | |
| 453 | self.register4(a, b, c, d, dep) |
| 454 | self.groups, _, _ = update_groups( |
| 455 | self.groups, [{(a, b), (c, d)}, {(b, a), (d, c)}] |
| 456 | ) |
| 457 | |
| 458 | def pairs(self) -> Generator[list[tuple[str, str]], None, None]: |
| 459 | for v1, v2 in perm2(list(self.v2e.keys())): # pylint: disable=g-builtin-op |