163 research outputs found
Termination of Narrowing: Automated Proofs and Modularity Properties
En 1936 Alan Turing demostro que el halting problem, esto es, el problema de decidir
si un programa termina o no, es un problema indecidible para la inmensa mayoria de
los lenguajes de programacion. A pesar de ello, la terminacion es un problema tan
relevante que en las ultimas decadas un gran numero de tecnicas han sido desarrolladas
para demostrar la terminacion de forma automatica de la maxima cantidad posible de
programas. Los sistemas de reescritura de terminos proporcionan un marco teorico
abstracto perfecto para el estudio de la terminacion de programas. En este marco, la
evaluaci on de un t ermino consiste en la aplicacion no determinista de un conjunto de
reglas de reescritura.
El estrechamiento (narrowing) de terminos es una generalizacion de la reescritura
que proporciona un mecanismo de razonamiento automatico. Por ejemplo, dado un
conjunto de reglas que denan la suma y la multiplicacion, la reescritura permite calcular
expresiones aritmeticas, mientras que el estrechamiento permite resolver ecuaciones
con variables. Esta tesis constituye el primer estudio en profundidad de las
propiedades de terminacion del estrechamiento. Las contribuciones son las siguientes.
En primer lugar, se identican clases de sistemas en las que el estrechamiento tiene
un comportamiento bueno, en el sentido de que siempre termina. Muchos metodos
de razonamiento automatico, como el analisis de la semantica de lenguajes de programaci
on mediante operadores de punto jo, se benefician de esta caracterizacion.
En segundo lugar, se introduce un metodo automatico, basado en el marco teorico
de pares de dependencia, para demostrar la terminacion del estrechamiento en un
sistema particular. Nuestro metodo es, por primera vez, aplicable a cualquier clase
de sistemas.
En tercer lugar, se propone un nuevo metodo para estudiar la terminacion del
estrechamiento desde un termino particular, permitiendo el analisis de la terminacion
de lenguajes de programacion. El nuevo metodo generaliza losIborra López, J. (2010). Termination of Narrowing: Automated Proofs and Modularity Properties [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/19251Palanci
Proving Confluence in the Confluence Framework with CONFident
This article describes the *Confluence Framework*, a novel framework for
proving and disproving confluence using a divide-and-conquer modular strategy,
and its implementation in CONFident. Using this approach, we are able to
automatically prove and disprove confluence of *Generalized Term Rewriting
Systems*, where (i) only selected arguments of function symbols can be
rewritten and (ii) a rather general class of conditional rules can be used.
This includes, as particular cases, several variants of rewrite systems such as
(context-sensitive) *term rewriting systems*, *string rewriting systems*, and
(context-sensitive) *conditional term rewriting systems*. The
divide-and-conquer modular strategy allows us to combine in a proof tree
different techniques for proving confluence, including modular decompositions,
checking joinability of (conditional) critical and variable pairs,
transformations, etc., and auxiliary tasks required by them, e.g., joinability
of terms, joinability of conditional pairs, etc
On the confluence of lambda-calculus with conditional rewriting
The confluence of untyped \lambda-calculus with unconditional rewriting is
now well un- derstood. In this paper, we investigate the confluence of
\lambda-calculus with conditional rewriting and provide general results in two
directions. First, when conditional rules are algebraic. This extends results
of M\"uller and Dougherty for unconditional rewriting. Two cases are
considered, whether \beta-reduction is allowed or not in the evaluation of
conditions. Moreover, Dougherty's result is improved from the assumption of
strongly normalizing \beta-reduction to weakly normalizing \beta-reduction. We
also provide examples showing that outside these conditions, modularity of
confluence is difficult to achieve. Second, we go beyond the algebraic
framework and get new confluence results using a restricted notion of
orthogonality that takes advantage of the conditional part of rewrite rules
Intensional properties of polygraphs
We present polygraphic programs, a subclass of Albert Burroni's polygraphs,
as a computational model, showing how these objects can be seen as first-order
functional programs. We prove that the model is Turing complete. We use
polygraphic interpretations, a termination proof method introduced by the
second author, to characterize polygraphic programs that compute in polynomial
time. We conclude with a characterization of polynomial time functions and
non-deterministic polynomial time functions.Comment: Proceedings of TERMGRAPH 2007, Electronic Notes in Computer Science
(to appear), 12 pages, minor changes from previous versio
Quasi-interpretation Synthesis by Decomposition : An application to higher-order programs
International audienceQuasi-interpretations have shown their interest to deal with resource analysis of first order functional programs. There are at least two reasons to study the question of modularity of quasi-interpretations. Firstly, modularity allows to decrease the complexity of the quasi-inter\-pretation search algorithms. Secondly, modularity allows to increase the intentionality of the quasi-interpretation method, that is the number of captured programs. In particular, we take advantage of modularity conditions to extend smoothly quasi-interpretations to higher order programs. In this paper, we study the modularity of quasi-interpretations through the notions of constructor-sharing and hierarchical unions. We show that in the case of constructor-sharing and hierarchical unions, the existence of quasi-interpretations is no longer a modular property. However, we can still certify the complexity of programs
Modularity of Convergence and Strong Convergence in Infinitary Rewriting
Properties of Term Rewriting Systems are called modular iff they are
preserved under (and reflected by) disjoint union, i.e. when combining two Term
Rewriting Systems with disjoint signatures. Convergence is the property of
Infinitary Term Rewriting Systems that all reduction sequences converge to a
limit. Strong Convergence requires in addition that redex positions in a
reduction sequence move arbitrarily deep. In this paper it is shown that both
Convergence and Strong Convergence are modular properties of non-collapsing
Infinitary Term Rewriting Systems, provided (for convergence) that the term
metrics are granular. This generalises known modularity results beyond metric
\infty
The Sigma-Semantics: A Comprehensive Semantics for Functional Programs
A comprehensive semantics for functional programs is presented, which generalizes the well-known call-by-value and call-by-name semantics. By permitting a separate choice between call-by value and call-by-name for every argument position of every function and parameterizing the semantics by this choice we abstract from the parameter-passing mechanism. Thus common and distinguishing features of all instances of the sigma-semantics, especially call-by-value and call-by-name semantics, are highlighted. Furthermore, a property can be validated for all instances of the sigma-semantics by a single proof. This is employed for proving the equivalence of the given denotational (fixed-point based) and two operational (reduction based) definitions of the sigma-semantics. We present and apply means for very simple proofs of equivalence with the denotational sigma-semantics for a large class of reduction-based sigma-semantics. Our basis are simple first-order constructor-based functional programs with patterns
The Sigma-Semantics: A Comprehensive Semantics for Functional Programs
A comprehensive semantics for functional programs is presented, which generalizes the well-known call-by-value and call-by-name semantics. By permitting a separate choice between call-by value and call-by-name for every argument position of every function and parameterizing the semantics by this choice we abstract from the parameter-passing mechanism. Thus common and distinguishing features of all instances of the sigma-semantics, especially call-by-value and call-by-name semantics, are highlighted. Furthermore, a property can be validated for all instances of the sigma-semantics by a single proof. This is employed for proving the equivalence of the given denotational (fixed-point based) and two operational (reduction based) definitions of the sigma-semantics. We present and apply means for very simple proofs of equivalence with the denotational sigma-semantics for a large class of reduction-based sigma-semantics. Our basis are simple first-order constructor-based functional programs with patterns
- …