English
Related papers

Related papers: Nominal techniques as an Agda library

200 papers

The majority of industrial-strength object-oriented (OO) software is written using nominally-typed OO programming languages. Extant domain-theoretic models of OOP developed to analyze OO type systems miss, however, a crucial feature of…

Programming Languages · Computer Science 2018-01-23 Moez AbdelGawad , Robert Cartwright

We introduce Voevodsky's univalent foundations and univalent mathematics, and explain how to develop them with the computer system Agda, which is based on Martin-L\"of type theory. Agda allows us to write mathematical definitions,…

Logic in Computer Science · Computer Science 2022-09-05 Martín Hötzel Escardó

We give an accessible presentation to the foundations of nominal techniques, lying between Zermelo-Fraenkel set theory and Fraenkel-Mostowski set theory, and which has several nice properties including being consistent with the Axiom of…

Logic in Computer Science · Computer Science 2020-01-23 Murdoch J. Gabbay

When using interactive theorem provers based on dependent type theory to define and reason about languages involving binding constructs, we advocate the use of a well-scoped version of the locally nameless method of representing syntax.…

Logic in Computer Science · Computer Science 2026-05-12 Andrew M. Pitts

We investigate proving properties of Curry programs using Agda. First, we address the functional correctness of Curry functions that, apart from some syntactic and semantic differences, are in the intersection of the two languages. Second,…

Programming Languages · Computer Science 2017-01-04 Sergio Antoy , Michael Hanus , Steven Libby

Verification of AI is a challenge that has engineering, algorithmic and programming language components. For example, AI planners are deployed to model actions of autonomous agents. They comprise a number of searching algorithms that, given…

Artificial Intelligence · Computer Science 2021-07-22 Alasdair Hill , Ekaterina Komendantskaya , Matthew L. Daggitt , Ronald P. A. Petrick

The definitional equality of an intensional type theory is its test of type compatibility. Today's systems rely on ordinary evaluation semantics to compare expressions in types, frustrating users with type errors arising when evaluation…

Programming Languages · Computer Science 2013-06-18 Guillaume Allais , Pierre Boutillier , Conor McBride

The present work proposes and discusses the category of supported sets which provides a uniform foundation for nominal sets of various kinds, such as those for equality symmetry, for the order symmetry, and renaming sets. We show that all…

Formal Languages and Automata Theory · Computer Science 2022-10-06 Thorsten Wißmann

Logics and automata models for languages over infinite alphabets, such as Freeze LTL and register automata, serve the verification of processes or documents with data. They relate tightly to formalisms over nominal sets, such as…

Formal Languages and Automata Theory · Computer Science 2021-08-23 Daniel Hausmann , Stefan Milius , Lutz Schröder

Mechanical proofs by logical relations often involve tedious reasoning about substitution. In this paper, we show that this is not necessarily the case, by developing, in Agda, a proof that all simply typed lambda calculus expressions…

Programming Languages · Computer Science 2023-09-28 Emmanuel Suárez Acevedo , Stephanie Weirich

Nominalistic Logic (NL) is a new presentation of Paul Gilmore's Intensional Type Theory (ITT) as a sequent calculus together with a succinct nominalization axiom (N) that permits names of predicates as individuals in certain cases. The…

Logic in Computer Science · Computer Science 2008-12-31 Jørgen Villadsen

Formal languages over infinite alphabets serve as abstractions of structures and processes carrying data. Automata models over infinite alphabets, such as classical register automata or, equivalently, nominal orbit-finite automata, tend to…

Formal Languages and Automata Theory · Computer Science 2025-05-20 Florian Frank , Daniel Hausmann , Stefan Milius , Lutz Schröder , Henning Urbat

By operations on models we show how to relate completeness with respect to permissive-nominal models to completeness with respect to nominal models with finite support. Models with finite support are a special case of permissive-nominal…

Logic in Computer Science · Computer Science 2013-05-28 Murdoch J. Gabbay

The contribution of this paper is the development of the syntax and semantics of multi-sorted nominal abstract binding trees (abts), an extension of second order universal algebra to support symbol-indexed families of operators. Nominal…

Logic in Computer Science · Computer Science 2016-01-26 Jonathan Sterling , Darin Morrison

NOOP is a mathematical model of nominally-typed OOP that proves the identification of inheritance and subtyping in mainstream nominally-typed OO programming languages and the validity of this identification. This report gives an overview of…

Programming Languages · Computer Science 2018-01-01 Moez A. AbdelGawad

The Agda Universal Algebra Library (UALib) is a library of types and programs (theorems and proofs) we developed to formalize the foundations of universal algebra in dependent type theory using the Agda programming language and proof…

Logic in Computer Science · Computer Science 2021-03-17 William DeMeo

A sound and complete algorithm for nominal unification of higher-order expressions with a recursive let is described, and shown to run in non-deterministic polynomial time. We also explore specializations like nominal letrec-matching for…

Programming Languages · Computer Science 2023-03-14 Manfred Schmidt-Schauß , Temur Kutsia , Jordi Levy , Mateu Villaret

We are using the Agda programming language and proof assistant to formally verify the correctness of a Byzantine Fault Tolerant consensus implementation based on HotStuff / LibraBFT. The Agda implementation is a translation of our Haskell…

Logic in Computer Science · Computer Science 2022-05-19 Harold Carr , Christa Jenkins , Mark Moir , Victor Cacciari Miraldo , Lisandra Silva

Variable and function names are extremely important for program comprehension. It is therefore also important to study how developers select names. But controlled experiments on naming are hindered by the need to describe to experimental…

Software Engineering · Computer Science 2021-03-17 Omer Regev , Michael Soloveitchik , Dror G. Feitelson

Formalising the pi-calculus is an illuminating test of the expressiveness of logical frameworks and mechanised metatheory systems, because of the presence of name binding, labelled transitions with name extrusion, bisimulation, and…

Logic in Computer Science · Computer Science 2015-07-30 Roly Perera , James Cheney