5 research outputs found
Combining typing and size constraints for checking the termination of higher-order conditional rewrite systems
http://dx.doi.org/10.1007/11916277_8International audienceIn a previous work, the first author extended to higher-order rewriting and dependent types the use of size annotations in types, a termination proof technique called type or size based termination and initially developed for ML-like programs. Here, we go one step further by considering conditional rewriting and explicit quantifications and constraints on size annotations. This allows to describe more precisely how the size of the output of a function depends on the size of its inputs. Hence, we can check the termination of more functions. We first give a general type-checking algorithm based on constraint solving. Then, we give a termination criterion with constraints in Presburger arithmetic. To our knowledge, this is the first termination criterion for higher-order conditional rewriting taking into account the conditions in termination
An operational interpretation of coinductive types
We introduce an operational rewriting-based semantics for strictly positive
nested higher-order (co)inductive types. The semantics takes into account the
"limits" of infinite reduction sequences. This may be seen as a refinement and
generalization of the notion of productivity in term rewriting to a setting
with higher-order functions and with data specified by nested higher-order
inductive and coinductive definitions. Intuitively, we interpret lazy data
structures in a higher-order functional language by potentially infinite terms
corresponding to their complete unfoldings.
We prove an approximation theorem which essentially states that if a term
reduces to an arbitrarily large finite approximation of an infinite object in
the interpretation of a coinductive type, then it infinitarily (i.e. in the
"limit") reduces to an infinite object in the interpretation of this type. We
introduce a sufficient syntactic correctness criterion, in the form of a type
system, for finite terms decorated with type information. Using the
approximation theorem, we show that each well-typed term has a well-defined
interpretation in our semantics
On Extensions of AF2 with Monotone and Clausular (Co)inductive Definitions
This thesis discusses some extensions of second-order logic AF2 with primitive constructors representing least and greatest fixed points of monotone operators, which allow to define predicates by induction and
coinduction. Though the expressive power of second-order logic has been well-known for a long time and suffices to define (co)inductive predicates by means of its (co)induction principles, it is more user-friendly to have a direct way of defining predicates inductively. Moreover recent applications in computer science oblige to consider also coinductive definitions useful for handling infinite objects, the most prominent example being the data type of streams or infinite lists. Main features of our approach are the use clauses in the (co)inductive definition mechanism, concept which simplifies the syntactic shape of the predicates, as well as the inclusion of not only (co)iteration but also primitive (co)recursion principles and in the case of coinductive definitions an inversion principle.
For sake of generality we consider full monotone, and not only positive definitions, after all positivity is only used to ensure monotonicity.
Working towards practical use of our systems we give them realizability interpretations where the systems of realizers are strongly normalizing extensions of the second-order polymorphic lambda calculus, system F in
Curry-style, with (co)inductive types corresponding directly to the logical systems via the Curry-Howard correspondence. Such realizability interpretations are therefore not reductive: the definition of realizability for a (co)inductive definition is again a (co)inductive definition. As main application of realizability we extend the so-called programming-with-proofs paradigm of Krivine and Parigot to our logics, by means of which a correct program of the lambda calculus can be extracted from a proof in the logic
Termination and Productivity Checking with Continuous Types
We analyze the interpretation of inductive and coinductive types as sets of strongly normalizing terms and isolate classes of types with certain continuity properties. Our result enables us to relax some side conditions on the shape of recursive de nitions which are accepted by the type-based termination calculus of Barthe, Frade, Gimenez, Pinto and Uustalu, thus enlarging its expressivity
Termination and Productivity Checking with Continuous Types
Abstract. We analyze the interpretation of inductive and coinductive types as sets of strongly normalizing terms and isolate classes of types with certain continuity properties. Our result enables us to relax some side conditions on the shape of recursive definitions which are accepted by the type-based termination calculus of Barthe, Frade, Giménez, Pinto and Uustalu, thus enlarging its expressivity. 1 Introduction and Related Work Interactive theorem provers like Coq [13], LEGO [20] and Twelf [18] support proofs by induction on finite-depth (inductive) structures (like natural numbers, lists, infinitely branching trees) and infinite-depth (coinductive) structures (like streams, processes, trees with infinite paths) in the form of recursive programs