Reference. Regular expression containment: Coinductive axiomatization and computational interpretation
Cite
Cited by (1)
Intrinsic Verification of Parsers and Formal Grammar Theory in Dependent Lambek Calculus intrinsic-verification-of-parsers
We present Dependent Lambek Calculus (Lambek), a domain-specific dependent type theory for verified parsing and formal grammar theory. In Lambek, linear types are used as a syntax for formal grammars, and parsers can be written as linear terms. The linear typing restriction provides a form of intrinsic verification that a parser yields only valid parse trees for the input string. We demonstrate the expressivity of this system by showing that the combination of inductive linear types and dependency on non-linear data can be used to encode commonly used grammar formalisms such as regular and context-free grammars as well as traces of various types of automata. Using these encodings, we define parsers for regular expressions using deterministic automata, as well as examples of verified parsers of context-free grammars.
We present a denotational semantics of our type theory that interprets the linear types as functions from strings to sets of abstract parse trees and terms as parse transformers. Based on this denotational semantics, we have made a prototype implementation of Lambek using a shallow embedding in the Agda proof assistant. All of our examples parsers have been implemented in this prototype implementation.
Cites 43 works (5 here)
With notes (5)
Greedy regular expression matching frischCardelli
Kleene algebra with tests kozen1997kleene
A Completeness Theorem for Kleene Algebras and the Algebra of Regular Events KOZEN1994366
Action logic and pure induction prattActionLogicPure1991
Derivatives of Regular Expressions brzozowskiDerivativesRegularExpressions1964
External (38)
- Typed and unambiguous pattern matching on strings using regular expressions (2010)
- Non-deterministic Kleene coalgebras (2010)
- Circular coinduction: A proof theoretical foundation (2009)
- On the coalgebraic theory of Kleene algebra with tests (2008)
- XHaskell – Adding Regular Expression Types to Haskell (2008)
- A coinductive axiomatization of XML subtyping (Nielsen, DIKU graduate project report) (2008)
- Subtyping Recursive Types Modulo Associative Commutative Products (2005)
- Using Proofs by Coinduction to Find “Traditional” Proofs (2005)
- Parametric polymorphism for XML (2005)
- Regular expression types for XML (2005)
- A coalgebraic approach to Kleene algebra with tests (2004)
- Isomorphisms of generic recursive polynomial types (2004)
- Rewriting regular inequalities (Lu & Sulzmann, APLAS 2004, as cited) (2004)
- Recursive subtyping revealed (2002)
- Oracle-based checking of untrusted software (2001)
- Circular coinduction (Rosu, Goguen; IJCAR 2000) (2000)
- Mockingbird: Flexible stub compilation from pairs of declarations (1999)
- Coinductive axiomatization of recursive type equality and subtyping (1998)
- Automata and coinduction (an exercise in coalgebra) (1998)
- PolyP—a polytypic programming language extension (1997)
- Partial derivatives of regular expressions and finite automaton constructions (1996)
- Syntactic considerations on recursive types (1996)
- A coinduction principle for recursive data types based on bisimulation (1996)
- Rewriting regular inequalities (Antimirov, FCT '95) (1995)
- Rewriting extended regular expressions (1995)
- Efficient recursive subtyping (1995)
- Subtyping recursive types (1993)
- The Formal Semantics of Programming Languages: An Introduction (Winskel) (1993)
- IEEE Standard for information technology — Portable Operating System Interface (POSIX) — Part 2 (Shell and Utilities), Section 2.8 (Regular expression notation) (1992)
- A complete system of B-rational identities (1990)
- A complete inference system for a class of regular behaviours (1984)
- Introduction to Automata Theory, Languages, and Computation (1979)
- Regular Algebra and Finite Machines (1971)
- A Procedure for Checking Equality of Regular Expressions (1967)
- Two Complete Axiom Systems for the Algebra of Regular Events (1966)
- On certain formal properties of grammars (1959)
- Representation of Events in Nerve Nets and Finite Automata (1956)
- Bzip (Seward, website)