Joey Eremondi

dblp:136/0877 · also Joseph Eremondi · DBLP profile ↗
← Back
10ranked-venue papers
10as first author
3since 2021 · last 2025
0000-0002-9631-4826ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Theory of computation · 7 · 7 first-author · 1 since 2021Software engineering, systems software and programming languages · 4 · 4 first-author · 3 since 2021
YearPublicationVenuePosition
2025 Coverage Semantics for Dependent Pattern Matching
abstract
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.
Joey Eremondi, Ohad Kammar
ESOP (1)1
2024 Strictly Monotone Brouwer Trees for Well Founded Recursion over Multiple Arguments
abstract
Ordinals can be used to prove the termination of dependently typed programs. Brouwer trees are a particular ordinal notation that make it very easy to assign sizes to higher order data structures. They extend unary natural numbers with a limit constructor, so a function's size can be the least upper bound of the sizes of values from its image. These can then be used to define well-founded recursion: any recursive calls are allowed so long as they are on values whose sizes are strictly smaller than the current size.
Joey Eremondi
CPP1
2022 Propositional equality for gradual dependently typed programming
abstract
Gradual dependent types can help with the incremental adoption of dependently typed code by providing a principled semantics for imprecise types and proofs, where some parts have been omitted. Current theories of gradual dependent types, though, lack a central feature of type theory: propositional equality. Lennon-Bertrand et al. show that, when the reflexive proof refl is the only closed value of an equality type, a gradual extension of the Calculus of Inductive Constructions (CIC) with propositional equality violates static observational equivalences. Extensionally-equal functions should be indistinguishable at run time, but they can be distinguished using a combination of equality and type imprecision. This work presents a gradual dependently typed language that supports propositional equality. We avoid the above issues by devising an equality type of which refl is not the only closed inhabitant. Instead, each equality proof is accompanied by a term that is at least as precise as the equated terms, acting as a witness of their plausible equality. These witnesses track partial type information as a program runs, raising errors when that information shows that two equated terms are undeniably inconsistent. Composition of type information is internalized as a construct of the language, and is deferred for function bodies whose evaluation is blocked by variables. We thus ensure that extensionally-equal functions compose without error, thereby preventing contexts from distinguishing them. We describe the challenges of designing consistency and precision relations for this system, along with solutions to these challenges. Finally, we prove important metatheory: type safety, conservative embedding of CIC, weak canonicity, and the gradual guarantees of Siek et al., which ensure that reducing a program’s precision introduces no new static or dynamic errors.
Joey Eremondi, Ronald Garcia, Éric Tanter
Proc. ACM Program. Lang.1
2019 Insertion operations on deterministic reversal-bounded counter machines
Joey Eremondi, Oscar H. Ibarra, Ian McQuillan
J. Comput. Syst. Sci.1
2019 Approximate normalization for gradual dependent types
abstract
Dependent types help programmers write highly reliable code. However, this reliability comes at a cost: it can be challenging to write new prototypes in (or migrate old code to) dependently-typed programming languages. Gradual typing makes static type disciplines more flexible, so an appropriate notion of gradual dependent types could fruitfully lower this cost. However, dependent types raise unique challenges for gradual typing. Dependent typechecking involves the execution of program code, but gradually-typed code can signal runtime type errors or diverge. These runtime errors threaten the soundness guarantees that make dependent types so attractive, while divergence spoils the type-driven programming experience. This paper presents GDTL, a gradual dependently-typed language that emphasizes pragmatic dependently-typed programming. GDTL fully embeds both an untyped and dependently-typed language, and allows for smooth transitions between the two. In addition to gradual types we introduce gradual terms , which allow the user to be imprecise in type indices and to omit proof terms; runtime checks ensure type safety. To account for nontermination and failure, we distinguish between compile-time normalization and run-time execution: compile-time normalization is approximate but total, while runtime execution is exact , but may fail or diverge. We prove that GDTL has decidable typechecking and satisfies all the expected properties of gradual languages. In particular, GDTL satisfies the static and dynamic gradual guarantees: reducing type precision preserves typedness, and altering type precision does not change program behavior outside of dynamic type failures. To prove these properties, we were led to establish a novel normalization gradual guarantee that captures the monotonicity of approximate normalization with respect to imprecision.
Joey Eremondi, Éric Tanter, Ronald Garcia
Proc. ACM Program. Lang.1
2018 On the complexity and decidability of some problems involving shuffle
Joey Eremondi, Oscar H. Ibarra, Ian McQuillan
Inf. Comput.1
2017 Deletion operations on deterministic families of automata
Joey Eremondi, Oscar H. Ibarra, Ian McQuillan
Inf. Comput.1
2015 On the Density of Context-Free and Counter Languages
Joey Eremondi, Oscar H. Ibarra, Ian McQuillan
DLT1
2015 Insertion Operations on Deterministic Reversal-Bounded Counter Machines
Joey Eremondi, Oscar H. Ibarra, Ian McQuillan
LATA1
2015 Deletion Operations on Deterministic Families of Automata
Joey Eremondi, Oscar H. Ibarra, Ian McQuillan
TAMC1