142 research outputs found
Relational Parametricity for Computational Effects
According to Strachey, a polymorphic program is parametric if it applies a
uniform algorithm independently of the type instantiations at which it is
applied. The notion of relational parametricity, introduced by Reynolds, is one
possible mathematical formulation of this idea. Relational parametricity
provides a powerful tool for establishing data abstraction properties, proving
equivalences of datatypes, and establishing equalities of programs. Such
properties have been well studied in a pure functional setting. Many programs,
however, exhibit computational effects, and are not accounted for by the
standard theory of relational parametricity. In this paper, we develop a
foundational framework for extending the notion of relational parametricity to
programming languages with effects.Comment: 31 pages, appears in Logical Methods in Computer Scienc
Parametric polymorphism - universally
In the 1980s, John Reynolds postulated that a parametrically polymorphic function is an ad-hoc polymorphic function satisfying a uniformity principle. This allowed him to prove that his set-theoretic semantics has a relational lifting which satisfies the Identity Extension Lemma and the Abstraction Theorem. However, his definition (and subsequent variants) have only been given for specific models. In contrast, we give a model-independent axiomatic treatment by characterising Reynolds' definition via a universal property, and show that the above results follow from this universal property in the axiomatic setting
Extracting Programs from Constructive HOL Proofs via IZF Set-Theoretic<br> Semantics
Church's Higher Order Logic is a basis for influential proof assistants --
HOL and PVS. Church's logic has a simple set-theoretic semantics, making it
trustworthy and extensible. We factor HOL into a constructive core plus axioms
of excluded middle and choice. We similarly factor standard set theory, ZFC,
into a constructive core, IZF, and axioms of excluded middle and choice. Then
we provide the standard set-theoretic semantics in such a way that the
constructive core of HOL is mapped into IZF. We use the disjunction, numerical
existence and term existence properties of IZF to provide a program extraction
capability from proofs in the constructive core.
We can implement the disjunction and numerical existence properties in two
different ways: one using Rathjen's realizability for IZF and the other using a
new direct weak normalization result for IZF by Moczydlowski. The latter can
also be used for the term existence property.Comment: 17 page
From parametricity to conservation laws, via Noether's Theorem
Invariance is of paramount importance in programming languages and in physics. In programming languages, John Reynolds' theory of relational parametricity demonstrates that parametric polymorphic programs are invariant under change of data representation, a property that yields "free" theorems about programs just from their types. In physics, Emmy Noether showed that if the action of a physical system is invariant under change of coordinates, then the physical system has a conserved quantity: a quantity that remains constant for all time. Knowledge of conserved quantities can reveal deep properties of physical systems. For example, the conservation of energy is by Noether's theorem a consequence of a system's invariance under time-shifting. In this paper, we link Reynolds' relational parametricity with Noether's theorem for deriving conserved quantities. We propose an extension of System Fω with new kinds, types and term constants for writing programs that describe classical mechanical systems in terms of their Lagrangians. We show, by constructing a relationally parametric model of our extension of Fω, that relational parametricity is enough to satisfy the hypotheses of Noether's theorem, and so to derive conserved quantities for free, directly from the polymorphic types of Lagrangians expressed in our system
- …