A Lazy, Concurrent Convertibility Checker
summary
A convertibility algorithm that interleaves evaluation and comparison using lazy channels and concurrent processes, representing lazy values as channels and forcing as waits, so identical subcomputations are shared and different unfoldings are explored in parallel. It uses short-circuiting choice and a bias choice operator to stop as soon as a subproof decides, avoids redundant constant unfolding, and provides an explicit scheduler. Mechanized partial correctness proof and artifacts are available; worst-case complexity is exponential in the shortest-proof size but is near-linear in the authors’ experiments.
AI-written summary · about
chapters (24)
- 0:00Introduction to the talk
- 0:21Speaker introduction and motivation
- 1:03Why lazy evaluation matters for convertibility
- 2:34Drawbacks of existing convertibility strategies
- 4:23Formal problem statement and assumptions
- 5:26Textbook and standard convertibility tests
- 6:31Proposal for a concurrent convertibility checker
- 7:16Process calculus for lazy evaluation
- 9:07Concurrent convertibility test definition
- 10:11Weak head normal forms in the process model
- 11:15Pure lambda calculus convertibility rules
- 12:40Concurrent stack comparison and short-circuiting
- 13:25Handling constants in convertibility
- 14:54Bias choice operator for constant unfolding
- 15:36Complexity analysis and theoretical guarantees
- 16:44Formalization and correctness proof
- 17:28Additional optimizations and extensions
- 18:33Explicit scheduling algorithm
- 19:15Conclusion and future work
- 20:09Q&A: Exponential optimality gap
- 20:52Q&A: Relation to non-deterministic algorithms
- 21:54Q&A: Comparison with Coq's convertibility
- 22:58Q&A: Applicability to unification solvers
- 23:41Q&A: Efficiency vs breadth-first search
related talks
23mCorrect Compilation of Concurrent C Code
30mCalculating Compilers for Concurrency
31mCertification of Confluence- and Commutation-Proofs via Parallel Critical Pairs
29mClosure Conversion in Little Pieces
19mAutomated Verification of Fundamental Algebraic Laws
27mVeracity: Declarative Multicore Programming with Commutativity
31mPyrosome: A Framework for Modular, Extensible, Equivalence-Preserving Compilati...
19mFormally Verifying Optimizations with Block Simulations
