Far too many pointless contraints remain without being fulfilled.
>>> cct.parse("(join_key (select (eq) (lTopo (deify (merge (pi2 (test x)))) (merge (pi2 (test x)))) (in)) (groupby (get) (test x)))")
R3(Loc, _1110, Reg) | R2(Reg, _1110) @ [R2(Reg, _1110)] | R2(_1110, Reg) @ [R2(_1110, Reg)] | R2(_1110, Reg) @ [R2(_1110, Reg)]
├─R2(Reg, _1110) ** R3(Loc, _1110, Reg) | R2(Reg, _1110) @ [R2(Reg, _1110)] | R2(_1110, Reg) @ [R2(_1110, Reg)] | R2(_1110, Reg) @ [R2(_1110, Reg)]
│ ├─╼ join_key : R3(Loc, _1107, Reg) ** R2(Reg, _1110) ** R3(Loc, _1110, Reg) | _1107 >= Nom | R2(Reg, _1110) @ [R2(Reg, _1110)] | R2(_1110, Reg) @ [R2(_1110, Reg)] | R2(_1110, Reg) @ [R2
(_1110, Reg)]
│ └─R3(Loc, Nom, Reg)
│ ├─Val ** R3(Loc, Nom, Reg)
│ │ ├─R3(Loc, Nom, Reg) ** Val ** R3(Loc, Nom, Reg)
│ │ │ ├─╼ select : (_1111 ** Val ** Bool) ** R3(Loc, Nom, Reg) ** Val ** R3(Loc, Nom, Reg) | _1111 <= Val | R3(Loc, Nom, Reg) @ [R3(_1111, _, _), R3(_, _1111, _), R3(_, _, _1111)]
│ │ │ └─╼ eq : Val ** Val ** Bool
│ │ └─R3(Loc, Nom, Reg)
│ │ ├─Reg ** R3(Loc, Nom, Reg)
│ │ │ ├─╼ lTopo : R1(Loc) ** Reg ** R3(Loc, Nom, Reg)
│ │ │ └─R1(Loc)
│ │ │ ├─╼ deify : Reg ** R1(Loc)
│ │ │ └─Reg
│ │ │ ├─╼ merge : R1(Reg) ** Reg
│ │ │ └─R1(Reg)
│ │ │ ├─╼ pi2 : R2(_1110, Reg) ** R1(Reg) | R2(Reg, _1110) @ [R2(Reg, _1110)] | R2(_1110, Reg) @ [R2(_1110, Reg)] | R2(_1110, Reg) @ [R2(_1110, Reg)]
│ │ │ └─╼ test x : R2(_1110, Reg) | R2(Reg, _1110) @ [R2(Reg, _1110)] | R2(_1110, Reg) @ [R2(_1110, Reg)] | R2(_1110, Reg) @ [R2(_1110, Reg)]
│ │ └─Reg
│ │ ├─╼ merge : R1(Reg) ** Reg
│ │ └─R1(Reg)
│ │ ├─╼ pi2 : R2(_1110, Reg) ** R1(Reg) | R2(Reg, _1110) @ [R2(Reg, _1110)] | R2(_1110, Reg) @ [R2(_1110, Reg)] | R2(_1110, Reg) @ [R2(_1110, Reg)]
│ │ └─╼ test x : R2(_1110, Reg) | R2(Reg, _1110) @ [R2(Reg, _1110)] | R2(_1110, Reg) @ [R2(_1110, Reg)] | R2(_1110, Reg) @ [R2(_1110, Reg)]
│ └─╼ in : Nom
└─R2(Reg, _1110) | R2(Reg, _1110) @ [R2(Reg, _1110)] | R2(_1110, Reg) @ [R2(_1110, Reg)] | R2(_1110, Reg) @ [R2(_1110, Reg)]
├─R2(_1110, Reg) ** R2(Reg, _1110) | R2(Reg, _1110) @ [R2(Reg, _1110)] | R2(_1110, Reg) @ [R2(_1110, Reg)] | R2(_1110, Reg) @ [R2(_1110, Reg)]
│ ├─╼ groupby : (R1(_1110) ** _1110) ** R2(_1110, Reg) ** R2(Reg, _1110) | R2(Reg, _1110) @ [R2(Reg, _1110)] | R2(_1110, Reg) @ [R2(_1110, Reg)] | R2(_1110, Reg) @ [R2(_1110, Reg)]
│ └─╼ get : R1(_1110) ** _1110 | R2(Reg, _1110) @ [R2(Reg, _1110)] | R2(_1110, Reg) @ [R2(_1110, Reg)] | R2(_1110, Reg) @ [R2(_1110, Reg)]
└─╼ test x : R2(_1110, Reg) | R2(Reg, _1110) @ [R2(Reg, _1110)] | R2(_1110, Reg) @ [R2(_1110, Reg)] | R2(_1110, Reg) @ [R2(_1110, Reg)]