The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
ACM Transactions on Programming Languages and Systems (TOPLAS)
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A completeness theorem for Kleene algebras and the algebra of regular events
Papers presented at the IEEE symposium on Logic in computer science
Rewriting extended regular expressions
Theoretical Computer Science
Partial derivatives of regular expressions and finite automaton constructions
Theoretical Computer Science
ACM Transactions on Programming Languages and Systems (TOPLAS)
PolyP—a polytypic programming language extension
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Coinductive axiomatization of recursive type equality and subtyping
Fundamenta Informaticae - Special issue: typed lambda-calculi and applications, selected papers
Derivatives of Regular Expressions
Journal of the ACM (JACM)
Two Complete Axiom Systems for the Algebra of Regular Events
Journal of the ACM (JACM)
A Procedure for Checking Equality of Regular Expressions
Journal of the ACM (JACM)
Oracle-based checking of untrusted software
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
A Complete System of B-Rational Identities
ICALP '90 Proceedings of the 17th International Colloquium on Automata, Languages and Programming
Action Logic and Pure Induction
JELIA '90 Proceedings of the European Workshop on Logics in AI
Automata and Coinduction (An Exercise in Coalgebra)
CONCUR '98 Proceedings of the 9th International Conference on Concurrency Theory
Rewriting Regular Inequalities (Extended Abstract)
FCT '95 Proceedings of the 10th International Symposium on Fundamentals of Computation Theory
Syntactic Considerations on Recursive Types
LICS '96 Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science
Mockingbird: Flexible Stub Compilation from Pairs of Declarations
ICDCS '99 Proceedings of the 19th IEEE International Conference on Distributed Computing Systems
Isomorphisms of generic recursive polynomial types
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Journal of Functional Programming
Parametric polymorphism for XML
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A coalgebraic approach to Kleene algebra with tests
Theoretical Computer Science - Selected papers of CMCS'03
Regular expression types for XML
ACM Transactions on Programming Languages and Systems (TOPLAS)
XHaskell --- Adding Regular Expression Types to Haskell
Implementation and Application of Functional Languages
Circular coinduction: a proof theoretical foundation
CALCO'09 Proceedings of the 3rd international conference on Algebra and coalgebra in computer science
Typed and unambiguous pattern matching on strings using regular expressions
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Subtyping recursive types modulo associative commutative products
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Using proofs by coinduction to find “traditional” proofs
CALCO'05 Proceedings of the First international conference on Algebra and Coalgebra in Computer Science
PLPV '12 Proceedings of the sixth workshop on Programming languages meets program verification
Efficient dynamic access analysis using JavaScript proxies
Proceedings of the 9th symposium on Dynamic languages
Two-Pass greedy regular expression parsing
CIAA'13 Proceedings of the 18th international conference on Implementation and Application of Automata
Hi-index | 0.00 |
We present a new sound and complete axiomatization of regular expression containment. It consists of the conventional axiomatization of concatenation, alternation, empty set and (the singleton set containing) the empty string as an idempotent semiring, the fixed- point rule E* = 1 + E × E* for Kleene-star, and a general coinduction rule as the only additional rule. Our axiomatization gives rise to a natural computational interpretation of regular expressions as simple types that represent parse trees, and of containment proofs as coercions. This gives the axiom- atization a Curry-Howard-style constructive interpretation: Containment proofs do not only certify a language-theoretic contain- ment, but, under our computational interpretation, constructively transform a membership proof of a string in one regular expression into a membership proof of the same string in another regular expression. We show how to encode regular expression equivalence proofs in Salomaa's, Kozen's and Grabmayer's axiomatizations into our containment system, which equips their axiomatizations with a computational interpretation and implies completeness of our axiomatization. To ensure its soundness, we require that the computational interpretation of the coinduction rule be a hereditarily total function. Hereditary totality can be considered the mother of syn- tactic side conditions: it "explains" their soundness, yet cannot be used as a conventional side condition in its own right since it turns out to be undecidable. We discuss application of regular expressions as types to bit coding of strings and hint at other applications to the wide-spread use of regular expressions for substring matching, where classical automata-theoretic techniques are a priori inapplicable. Neither regular expressions as types nor subtyping interpreted coercively are novel per se. Somewhat surprisingly, this seems to be the first investigation of a general proof-theoretic framework for the latter in the context of the former, however.