350 research outputs found
Discriminating Lambda-Terms Using Clocked Boehm Trees
As observed by Intrigila, there are hardly techniques available in the
lambda-calculus to prove that two lambda-terms are not beta-convertible.
Techniques employing the usual Boehm Trees are inadequate when we deal with
terms having the same Boehm Tree (BT). This is the case in particular for fixed
point combinators, as they all have the same BT. Another interesting equation,
whose consideration was suggested by Scott, is BY = BYS, an equation valid in
the classical model P-omega of lambda-calculus, and hence valid with respect to
BT-equality but nevertheless the terms are beta-inconvertible. To prove such
beta-inconvertibilities, we employ `clocked' BT's, with annotations that convey
information of the tempo in which the data in the BT are produced. Boehm Trees
are thus enriched with an intrinsic clock behaviour, leading to a refined
discrimination method for lambda-terms. The corresponding equality is strictly
intermediate between beta-convertibility and Boehm Tree equality, the equality
in the model P-omega. An analogous approach pertains to Levy-Longo and
Berarducci Trees. Our refined Boehm Trees find in particular an application in
beta-discriminating fixed point combinators (fpc's). It turns out that Scott's
equation BY = BYS is the key to unlocking a plethora of fpc's, generated by a
variety of production schemes of which the simplest was found by Boehm, stating
that new fpc's are obtained by postfixing the term SI, also known as Smullyan's
Owl. We prove that all these newly generated fpc's are indeed new, by
considering their clocked BT's. Even so, not all pairs of new fpc's can be
discriminated this way. For that purpose we increase the discrimination power
by a precision of the clock notion that we call `atomic clock'.Comment: arXiv admin note: substantial text overlap with arXiv:1002.257
Functional Big-step Semantics
When doing an interactive proof about a piece of software, it is important that the underlying programming language’s semantics does not make the proof unnecessarily difficult or unwieldy. Both smallstep and big-step semantics are commonly used, and the latter is typically given by an inductively defined relation. In this paper, we consider an alternative: using a recursive function akin to an interpreter for the language. The advantages include a better induction theorem, less duplication, accessibility to ordinary functional programmers, and the ease of doing symbolic simulation in proofs via rewriting. We believe that this style of semantics is well suited for compiler verification, including proofs of divergence preservation. We do not claim the invention of this style of semantics: our contribution here is to clarify its value, and to explain how it supports several language features that might appear to require a relational or small-step approach. We illustrate the technique on a simple imperative language with C-like for-loops and a break statement, and compare it to a variety of other approaches. We also provide ML and lambda-calculus based examples to illustrate its generality
Fixed point combinators as fixed points of higher-order fixed point generators
Corrado B\"ohm once observed that if is any fixed point combinator (fpc),
then is again fpc. He thus discovered the first "fpc
generating scheme" -- a generic way to build new fpcs from old. Continuing this
idea, define an to be any sequence of terms
such that
In this contribution, we take first steps in studying the structure of (weak)
fpc generators. We isolate several robust classes of such generators, by
examining their elementary properties like injectivity and (weak) constancy. We
provide sufficient conditions for existence of fixed points of a given
generator : an fpc such that . We
conjecture that weak constancy is a necessary condition for existence of such
(higher-order) fixed points. This statement generalizes Statman's conjecture on
non-existence of "double fpcs": fixed points of the generator discovered by B\"ohm.
Finally, we define and make a few observations about the monoid of (weak) fpc
generators. This enables us to formulate new a conjecture about their
structure
Recommended from our members
Modal dependent type theory and dependent right adjoints
In recent years we have seen several new models of dependent type theory
extended with some form of modal necessity operator, including nominal type
theory, guarded and clocked type theory, and spatial and cohesive type theory.
In this paper we study modal dependent type theory: dependent type theory with
an operator satisfying (a dependent version of) the K-axiom of modal logic. We
investigate both semantics and syntax. For the semantics, we introduce
categories with families with a dependent right adjoint (CwDRA) and show that
the examples above can be presented as such. Indeed, we show that any finite
limit category with an adjunction of endofunctors gives rise to a CwDRA via the
local universe construction. For the syntax, we introduce a dependently typed
extension of Fitch-style modal lambda-calculus, show that it can be interpreted
in any CwDRA, and build a term model. We extend the syntax and semantics with
universes
Modal dependent type theory and dependent right adjoints
In recent years we have seen several new models of dependent type theory
extended with some form of modal necessity operator, including nominal type
theory, guarded and clocked type theory, and spatial and cohesive type theory.
In this paper we study modal dependent type theory: dependent type theory with
an operator satisfying (a dependent version of) the K-axiom of modal logic. We
investigate both semantics and syntax. For the semantics, we introduce
categories with families with a dependent right adjoint (CwDRA) and show that
the examples above can be presented as such. Indeed, we show that any finite
limit category with an adjunction of endofunctors gives rise to a CwDRA via the
local universe construction. For the syntax, we introduce a dependently typed
extension of Fitch-style modal lambda-calculus, show that it can be interpreted
in any CwDRA, and build a term model. We extend the syntax and semantics with
universes
Ticking clocks as dependent right adjoints: Denotational semantics for clocked type theory
Clocked Type Theory (CloTT) is a type theory for guarded recursion useful for
programming with coinductive types, allowing productivity to be encoded in
types, and for reasoning about advanced programming language features using an
abstract form of step-indexing. CloTT has previously been shown to enjoy a
number of syntactic properties including strong normalisation, canonicity and
decidability of the equational theory. In this paper we present a denotational
semantics for CloTT useful, e.g., for studying future extensions of CloTT with
constructions such as path types.
The main challenge for constructing this model is to model the notion of
ticks on a clock used in CloTT for coinductive reasoning about coinductive
types. We build on a category previously used to model guarded recursion with
multiple clocks. In this category there is an object of clocks but no object of
ticks, and so tick-assumptions in a context can not be modelled using standard
tools. Instead we model ticks using dependent right adjoint functors, a
generalisation of the category theoretic notion of adjunction to the setting of
categories with families. Dependent right adjoints are known to model
Fitch-style modal types, but in the case of CloTT, the modal operators
constitute a family indexed internally in the type theory by clocks. We model
this family using a dependent right adjoint on the slice category over the
object of clocks. Finally we show how to model the tick constant of CloTT using
a semantic substitution.
This work improves on a previous model by the first two named authors which
not only had a flaw but was also considerably more complicated.Comment: 31 pages. Second version is a minor revision. arXiv admin note: text
overlap with arXiv:1804.0668
- …