Monus, Factor, and Thinning Union Finds
Explores advanced union-find data structures with annotations like offsets and thinnings for e-graphs and de Bruijn index manipulation.
Philip Zucker is a physics and computer science enthusiast documenting ideas and experiments in a lab-notebook-style blog, focused on functional programming, compilers, formal methods, and scientific computation.
15 articles from this blog
Explores advanced union-find data structures with annotations like offsets and thinnings for e-graphs and de Bruijn index manipulation.
Introducing Knuckledragger, a Python tool for refinement modeling and verification of RISC-V assembly code using symbolic execution.
Explores the concept of 'thinnings' as witness data for sublist relationships, connecting them to programming and lambda calculus.
An update on the Knuckledragger theorem prover project, covering kernel changes, AI experiments, symbolic union, and future development plans.
Exploring the use of SMT solvers and the SMT-LIB language as an intermediate representation (IR) for compiler design and optimization.
Introducing a Python library for seamless interoperability with the Lean theorem prover, allowing Lean functions to be called directly from Python code.
An exploration of Ground Lexicographic Path Ordering (LPO) for term rewriting systems, including a Python implementation and property tests.
Explores generalizing term operations like unification and rewriting to advanced structures like AC terms and rational terms, with Python examples.
Explores contextual union finds for rewriting under assumptions in egraph systems, comparing dense and sparse implementations.
A developer's enthusiastic recap of a specialized workshop on egraphs and compilers, covering technical discussions, potential collaborations, and project ideas.
Explores combining SMT solvers CVC5 and Z3 using the Nelson-Oppen method, focusing on theory combination and purification.
Explores asymmetric completion, a union-find algorithm variant for inequality reasoning, with Python implementation insights.
Introducing a Lean-like syntax parser for the Knuckledragger theorem prover to improve formula readability over verbose Python/Z3Py syntax.
Exploring a semi-interactive proof system for verifying assembly code using Python, Z3, and Ghidra Pcode.
A technical exploration of building a toy DPLL SAT solver in Python, discussing its implementation and relation to SMT solvers.