1,882 research outputs found
Towards Correctness of Program Transformations Through Unification and Critical Pair Computation
Correctness of program transformations in extended lambda calculi with a
contextual semantics is usually based on reasoning about the operational
semantics which is a rewrite semantics. A successful approach to proving
correctness is the combination of a context lemma with the computation of
overlaps between program transformations and the reduction rules, and then of
so-called complete sets of diagrams. The method is similar to the computation
of critical pairs for the completion of term rewriting systems. We explore
cases where the computation of these overlaps can be done in a first order way
by variants of critical pair computation that use unification algorithms. As a
case study we apply the method to a lambda calculus with recursive
let-expressions and describe an effective unification algorithm to determine
all overlaps of a set of transformations with all reduction rules. The
unification algorithm employs many-sorted terms, the equational theory of
left-commutativity modelling multi-sets, context variables of different kinds
and a mechanism for compactly representing binding chains in recursive
let-expressions.Comment: In Proceedings UNIF 2010, arXiv:1012.455
Contextual equivalence in lambda-calculi extended with letrec and with a parametric polymorphic type system
This paper describes a method to treat contextual equivalence in polymorphically typed lambda-calculi, and also how to transfer equivalences from the untyped versions of lambda-calculi to their typed variant, where our specific calculus has letrec, recursive types and is nondeterministic. An addition of a type label to every subexpression is all that is needed, together with some natural constraints for the consistency of the type labels and well-scopedness of expressions. One result is that an elementary but typed notion of program transformation is obtained and that untyped contextual equivalences also hold in the typed calculus as long as the expressions are well-typed. In order to have a nice interaction between reduction and typing, some reduction rules have to be accompanied with a type modification by generalizing or instantiating types
Nominal Unification of Higher Order Expressions with Recursive Let
A sound and complete algorithm for nominal unification of higher-order
expressions with a recursive let is described, and shown to run in
non-deterministic polynomial time. We also explore specializations like nominal
letrec-matching for plain expressions and for DAGs and determine the complexity
of corresponding unification problems.Comment: Pre-proceedings paper presented at the 26th International Symposium
on Logic-Based Program Synthesis and Transformation (LOPSTR 2016), Edinburgh,
Scotland UK, 6-8 September 2016 (arXiv:1608.02534
Investigations on a Pedagogical Calculus of Constructions
In the last few years appeared pedagogical propositional natural deduction
systems. In these systems, one must satisfy the pedagogical constraint: the
user must give an example of any introduced notion. First we expose the reasons
of such a constraint and properties of these "pedagogical" calculi: the absence
of negation at logical side, and the "usefulness" feature of terms at
computational side (through the Curry-Howard correspondence). Then we construct
a simple pedagogical restriction of the calculus of constructions (CC) called
CCr. We establish logical limitations of this system, and compare its
computational expressiveness to Godel system T. Finally, guided by the logical
limitations of CCr, we propose a formal and general definition of what a
pedagogical calculus of constructions should be.Comment: 18 page
Deciding subset relationship of co-inductively defined set constants
Static analysis of different non-strict functional programming languages makes use of set constants like Top, Inf, and Bot denoting all expressions, all lists without a last Nil as tail, and all non-terminating programs, respectively. We use a set language that permits union, constructors and recursive definition of set constants with a greatest fixpoint semantics. This paper proves decidability, in particular EXPTIMEcompleteness, of subset relationship of co-inductively defined sets by using algorithms and results from tree automata. This shows decidability of the test for set inclusion, which is required by certain strictness analysis algorithms in lazy functional programming languages
Labelled Lambda-calculi with Explicit Copy and Erase
We present two rewriting systems that define labelled explicit substitution
lambda-calculi. Our work is motivated by the close correspondence between
Levy's labelled lambda-calculus and paths in proof-nets, which played an
important role in the understanding of the Geometry of Interaction. The
structure of the labels in Levy's labelled lambda-calculus relates to the
multiplicative information of paths; the novelty of our work is that we design
labelled explicit substitution calculi that also keep track of exponential
information present in call-by-value and call-by-name translations of the
lambda-calculus into linear logic proof-nets
- âŚ