188 research outputs found
Boxes Go Bananas: Encoding Higher-Order Abstract Syntax With Parametric Polymorphism (Extended Version)
Higher-order abstract syntax is a simple technique for implementing languages with functional programming. Object variables and binders are implemented by variables and binders in the host language. By using this technique, one can avoid implementing common and tricky routines dealing with variables, such as capture-avoiding substitution. However, despite the advantages this technique provides, it is not commonly used because it is difficult to write sound elimination forms (such as folds or catamorphisms) for higher-order abstract syntax. To fold over such a datatype, one must either simultaneously define an inverse operation (which may not exist) or show that all functions embedded in the datatype are parametric.
In this paper, we show how first-class polymorphism can be used to guarantee the parametricity of functions embedded in higher-order abstract syntax. With this restriction, we implement a library of iteration operators over data-structures containing functionals. From this implementation, we derive fusion laws that functional programmers may use to reason about the iteration operator. Finally, we show how this use of parametric polymorphism corresponds to the Schürmann, Despeyroux and Pfenning method of enforcing parametricity through modal types. We do so by using this library to give a sound and complete encoding of their calculus into System Fω. This encoding can serve as a starting point for reasoning about higher-order structures in polymorphic languages
Constructing Infinitary Quotient-Inductive Types
This paper introduces an expressive class of quotient-inductive types, called
QW-types. We show that in dependent type theory with uniqueness of identity
proofs, even the infinitary case of QW-types can be encoded using the
combination of inductive-inductive definitions involving strictly positive
occurrences of Hofmann-style quotient types, and Abel's size types. The latter,
which provide a convenient constructive abstraction of what classically would
be accomplished with transfinite ordinals, are used to prove termination of the
recursive definitions of the elimination and computation properties of our
encoding of QW-types. The development is formalized using the Agda theorem
prover
A Typed Model for Linked Data
The term Linked Data is used to describe ubiquitous and emerging semi-structured data formats on the Web. URIs in Linked Data allow diverse data sources to link to each other, forming a Web of Data. A calculus which models concurrent queries and updates over Linked Data is presented. The calculus exhibits operations essential for declaring rich atomic actions. The operations recover emergent structure in the loosely structured Web of Data. The calculus is executable due to its operational semantics. A light type system ensures that URIs with a distinguished role are used consistently. The main theorem verifies that the light type system and operational semantics work at the same level of granularity, so are compatible. Examples show that a range of existing and emerging standards are captured. Data formats include RDF, named graphs and feeds. The primitives of the calculus model SPARQL Query and the Atom Publishing Protocol. The subtype system is based on RDFS, which improves interoperability. Examples focuss on the SPARQL Update proposal for which a fine grained operational semantics is developed. Further potential high level languages are outlined for exploiting Linked Data
High-level signatures and initial semantics
We present a device for specifying and reasoning about syntax for datatypes,
programming languages, and logic calculi. More precisely, we study a notion of
signature for specifying syntactic constructions.
In the spirit of Initial Semantics, we define the syntax generated by a
signature to be the initial object---if it exists---in a suitable category of
models. In our framework, the existence of an associated syntax to a signature
is not automatically guaranteed. We identify, via the notion of presentation of
a signature, a large class of signatures that do generate a syntax.
Our (presentable) signatures subsume classical algebraic signatures (i.e.,
signatures for languages with variable binding, such as the pure lambda
calculus) and extend them to include several other significant examples of
syntactic constructions.
One key feature of our notions of signature, syntax, and presentation is that
they are highly compositional, in the sense that complex examples can be
obtained by assembling simpler ones. Moreover, through the Initial Semantics
approach, our framework provides, beyond the desired algebra of terms, a
well-behaved substitution and the induction and recursion principles associated
to the syntax.
This paper builds upon ideas from a previous attempt by Hirschowitz-Maggesi,
which, in turn, was directly inspired by some earlier work of
Ghani-Uustalu-Hamana and Matthes-Uustalu.
The main results presented in the paper are computer-checked within the
UniMath system.Comment: v2: extended version of the article as published in CSL 2018
(http://dx.doi.org/10.4230/LIPIcs.CSL.2018.4); list of changes given in
Section 1.5 of the paper; v3: small corrections throughout the paper, no
major change
- …