Frex: Free Extensions for Normalization-by-Evaluation
summary
Frex is a library that constructs free extension semantic domains to get normalization by evaluation for arbitrary algebraic theories; it ships solver specs for common structures (e.g. a commutative monoid) and is extensible so users add solvers for new operations. Implementations exist in Haskell and experimental Idris code; using it for partial evaluation yields a provable speedup (linear win in a staged matrix-multiply example) and produces sound, complete normal forms to unblock unification in type-checked modular equations, though the type-checker integration is work in progress.
AI-written summary · about
chapters (6)
- 0:00Start
- 3:50Indexing Modular Equations
- 5:20Define Alternating Lists
- 9:06Algebraic Laws
- 18:39What Is the Free Extension
- 29:25Summary
related talks
27mFrex: indexing modulo equations with free extensions (Extended Abstract)
35mPractical Normalization by Evaluation for EDSLs
35mModular Construction of Multi-sorted Free Extensions
27mLightweight Semantics Engineering with Redex
28mBridging Syntax and Semantics of Lean Expressions in E-Graphs
15mEquality Saturation Theory Exploration à la Carte
29mEfficient Evaluation with Controlled Definition Unfolding
32mVerifying Haskell's Rewrite Rules based on Polymorphic Rewriting Theory
