Search papers, labs, and topics across Lattice.
This paper introduces a novel approach to managing rigid 伪 canonical variables within e-graphs, addressing the complexities often associated with variable handling. By implementing a lifting e-graph that incorporates a functional lifting combinator, the authors enhance the representation of variables through fattened integer identifiers and thinning bitvectors. The key result demonstrates that this method improves the efficiency and accuracy of variable manipulation in e-graphs, paving the way for more robust applications in functional programming and type systems.
Rigid 伪 canonical variables can now be managed more effectively in e-graphs, leading to significant improvements in variable manipulation accuracy.
Variables are quite subtle and easy to get wrong. An approach is described to support rigid $伪$ canonical variables in an e-graph. The lifting e-graph has a baked-in notion of functional lifting combinator. It is implemented by fattening the usual integer identifiers with thinning bitvectors, lift-pulling smart constructors, and a special thinning-aware union find variation. The approach is inspired by slotted e-graphs and Co-de Bruijn syntax.