🤖 AI Summary
In dependently typed systems, there exists a semantic gap between the theoretical treatment of pattern matching—based on eliminators—and practical programming—using native pattern syntax: the former is operationally unintuitive and syntactically verbose, while the latter lacks a rigorous, compositional semantic foundation.
Method: This paper introduces the first direct categorical semantics for pattern matching grounded in sheaf theory. It characterizes pattern coverage via canonical covers and saturation conditions, enabling unified, type-theoretically faithful modeling of nested patterns, absurd patterns, point patterns, and propositional equality.
Contribution/Results: The resulting semantics formalizes correctness and exhaustiveness of complex pattern combinations without eliminating into eliminators, thereby circumventing their operational overhead and expressive limitations. It supports principled reasoning about pattern validity and subsumption, and its coverage decidability strictly exceeds that of mainstream proof assistants—including Coq, Agda, and Lean—under standard assumptions.
📝 Abstract
Dependent pattern matching is a key feature in dependently typed programming. However, there is a theory-practice disconnect: while many proof assistants implement pattern matching as primitive, theoretical presentations give semantics to pattern matching by elaborating to eliminators. Though theoretically convenient, eliminators can be awkward and verbose, particularly for complex combinations of patterns. This work aims to bridge the theory-practice gap by presenting a direct categorical semantics for pattern matching, which does not elaborate to eliminators. This is achieved using sheaf theory to describe when sets of arrows (terms) can be amalgamated into a single arrow. We present a language with top-level dependent pattern matching, without specifying which sets of patterns are considered covering for a match. Then, we give a sufficient criterion for which pattern-sets admit a sound model: patterns should be in the canonical coverage for the category of contexts. Finally, we use sheaf-theoretic saturation conditions to devise some allowable sets of patterns. We are able to express and exceed the status quo, giving semantics for datatype constructors, nested patterns, absurd patterns, propositional equality, and dot patterns.