Salvador LucasUniversitat Politècnica de València | UPV · Department of Computer Systems and Computation
Salvador Lucas
PhD in Computer Science
About
255
Publications
29,427
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
2,536
Citations
Introduction
I got my PhD in Computer Science in 1998. My alma mater is the Technical University of Valencia (UPV). As a PhD student, I spent ten months at the CS Department of the Technical University of Aachen (RWTH Aachen). As a postdoc, I visited the Laboratory of Informatics (LIX) of the École Polytechnique during four months. Recently, I enjoyed a sabbatical year at the Formal Methods and Declarative Languages Laboratory of the University of Illinois at Urbana-Champaign (UIUC).
Additional affiliations
August 2013 - July 2014
January 1994 - present
Education
September 1994 - October 1998
September 1987 - June 1994
Publications
Publications (255)
We investigate termination of *Generalized Term Rewriting Systems GTRSs)*, which extend *Conditional Term Rewriting Systems* by considering replacement restrictions on selected arguments of function symbols, as in *Context-Sensitive Rewriting*, and conditional rewriting rules whose conditional part may include not only a mix of the usual (reachabil...
Orthogonality plays an important role in the analysis of confluence of term rewriting systems, and also in related subfields like optimality, strategic rewriting, etc. However, the term "orthogonality" was introduced by Dershowitz and Jouannaud in 1990 after more than 20 years of developments, often "hidden" under terminologies which are not used a...
There are different definitions of orthogonality of conditional term rewriting systems. This paper collects concepts, denominations, notions, and notations which have been important in their development, together with the main works that introduced them.
We introduce the notion of V-orthogonality for Generalized Term Rewriting Systems (GTRSs), which generalize Conditional Term Rewriting Systems by (i) restricting rewrit-ings on arguments of function symbols and (ii) allowing for more general conditions in rules, namely, atoms defined by a set of Horn clauses. The usual left-linearity requirement fo...
Slides of the presentation of the paper "From Subtree Replacement Systems to Term Rewriting Systems: A roadmap to orthogonality" at IWC 2024
Slides of the presentation of the paper "A Roadmap to Orthogonality of Conditional Term Rewriting Systems" at IWC 2024
Slides of the talk about "Orthogonality of Generalized Term Rewriting Systems" presented at IWC 2024
Slides of a presentation of the JLAMP 2024 paper Local confluence of conditional and generalized term rewriting systems, https://doi.org/10.1016/j.jlamp.2023.100926
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 functio...
Confluence of Conditional Rewriting Modulo
We investigate confluence of rewriting with Equational Generalized Term Rewriting Systems R, consisting of Horn clauses, some of them defining conditional equations s = t ⇐ c and rewriting rules ℓ → r ⇐ c. In both cases, c is a sequence of atoms, possibly defined by using additional Horn clauses. Such systems include Equational Term Rewriting Syste...
Reduction-based systems are used as a basis for the implementation of programming languages, automated reasoning systems, mathematical analysis tools, etc. In such inherently non-deterministic systems, guaranteeing that diverging steps can be eventually rejoined is crucial for a faithful use in most applications. This property of reduction systems...
Presentation of the main results of the JLAMP 2022 paper "Proving and disproving confluence of context-sensitive rewriting"
This paper describes CONFident, a tool which is able to automatically prove and disprove confluence of variants of rewrite systems: term rewriting systems, conditional term rewriting systems (using join, oriented, or semi-equational semantics), and context-sensitive term rewriting systems. We introduce a new proof framework to generate proof trees...
Slides of the presentation of the JLAMP 2021 paper https://doi.org/10.1016/j.jlamp.2021.100687
Slides of the presentation of the PROLE 2022 paper
Local confluence of conditional term rewriting systems is characterized as the joinability of a set of conditional pairs including the usual conditional critical pairs and a new kind of pairs we call conditional variable pairs.
We characterize local confluence of conditional rewrite systems as the joinability of a set of conditional pairs including the usual conditional critical pairs and a new kind of pairs we call conditional variable pairs.
Slides of the presentation of the paper "On local confluence of conditional rewriting" at IWC 2022
Context-sensitive rewriting is a restriction of term rewriting where reductions are allowed on specific arguments of function symbols only, and then in particular positions of terms. Confluence is an abstract property of reduction relations guaranteeing that two diverging reduction sequences can always be joined into a common reduct. In this paper...
Slides of the presentation of the FSTTCS 2021 paper "Confluence of Conditional Rewriting in Logic Form"
Context-sensitive rewriting is a restriction of rewriting where reduction steps are allowed on specific arguments µ(f) ⊆ {1,. .. , k} of k-ary function symbols f only. Terms which cannot be further rewritten in this way are called µ-normal forms. For left-linear Term Rewriting Systems (TRSs), the so-called normalization via µ-normalization procedur...
We characterize conditional rewriting as satisfiability in a Herbrand-like model of terms where variables are also included as fresh constant symbols extending the original signature. Confluence of conditional rewriting and joinability of conditional critical pairs is characterized similarly. Joinability of critical pairs is then translated into co...
CONFident 1.0 is a tool for checking the confluence or non-confluence of systems based on rewriting by means of its logical representation. The tool is available here: http://zenon. dsic.upv.es/confident/. It is written in Haskell following a DP-framework structure, i.e., by defining problems and processors: • problems are tuples ⌧ = (T, G), where...
The formulation and undecidability proof of the halting problem is usually attributed to Turing's 1936 landmark paper. In 2004, though, Copeland noticed that it was so named and, apparently, first stated in a 1958 book by Martin Davis. Indeed, in his paper Turing paid no attention to halting machines. Words (or prefixes) like "halt(ing)", "stop" or...
The halting problem is a prominent example of undecidable problem and its formulation and undecidability proof is usually attributed to Turing’s 1936 landmark paper. Copeland noticed in 2004, though, that it was so named and, apparently, first stated in a 1958 book by Martin Davis. We provide additional arguments partially supporting this claim as...
Context-sensitive rewriting is a restriction of term rewriting which is obtained by imposing replacement restrictions on the arguments of function symbols. It has proven useful to analyze computational properties of programs written in sophisticated rewriting-based programming languages such as CafeOBJ, Haskell, Maude, OBJ*, etc. Also, a number of...
The semantics of computational systems (e.g., relational and knowledge data bases, query-answering systems, programming languages, etc.) can often be expressed as (the specification of) a logical theory Th. Queries, goals, and claims about the behavior or features of the system can be expressed as formulas φ which should be checked with respect to...
Slides of my course on termination analysis. Termination of rewrite systems using dependency pairs
Slides of my course on termination analysis. Termination of rewrite systems using the dependency pair framework
Slides of my course on termination analysis. Synthesis of reduction pairs for the dependency pair framework using polynomial interpretations
Proving termination of programs in 'real-life' rewriting-based languages like CafeOBJ, Haskell, Maude, etc., is an important subject of research. To advance this goal, faithfully capturing the impact in the termination behavior of the main language features (e.g., conditions in program rules) is essential. In Part I of this work, we have introduced...
The appropriate selection of the arguments of functions that *can be evaluated* in function calls is often useful to improve efficiency, speed, termination behavior, etc. This is essential, e.g., in the conditional if-then-else operator. We can specify this by just associating a set mu(f) of indices of *evaluable arguments* to each function symbol...
The semantics of computational systems (e.g., relational and knowledge data bases, query-answering systems, programming languages, etc.) can often be expressed as (the specification of) a logical theory Th. Queries, goals, and claims about the behavior or features of the system can be expressed as formulas φ which should be checked with respect to...
We report on the new version of mu-term, a tool for proving termination properties of variants of rewrite systems, including conditional, context-sensitive, equational, and order-sorted rewrite systems. We follow a unified, logic-based approach to describe rewriting computations. The automatic generation of logical models for suitable first-order t...
In the realm of term rewriting, given terms s and t, a reachability condition s ->* t is called *feasible* if there is a substitution \sigma such that sigma(s) rewrites into sigma(t) in zero or more steps; otherwise, it is called *infeasible*. Checking infeasibility of (sequences of) reachability conditions is important in the analysis of computati...
infChecker 1.0 is a tool for checking (in)feasibility of goals.The tool is available here: http://zenon.dsic.upv.es/infChecker/.
In this paper, we study operational termination, a proof theoretical notion for capturing the termination behavior of computational systems. We prove that operational termination can be characterized at different levels by means of well- founded relations on specific formulas which can be obtained from the considered system. We show how to obtain s...
The semantics of computational systems (e.g., relational and knowledge data bases, query-answering systems, programming languages, etc.) can often be expressed as (the specification of) a logical theory Th. Queries, goals, and claims about the behavior or features of the system can be expressed as formulas φ which should be checked with respect to...
We describe a new tool, AGES, which can be used to automatically generate models for order-sorted first-order theories. The tool uses linear algebra techniques to associate finite or infinite domains to the different sorts. Function and predicate symbols are then interpreted by means of piecewise interpretations with matrix-based expressions and in...
Given a Conditional Term Rewriting System (CTRS) R and terms s and t, we say that the reachability condition s → * t is feasible if there is a substitution σ instantiating the variables in s and t such that the reachability test σ (s) → * R σ (t) succeeds; otherwise, we call it infeasible. Checking infeasibility of such (sequences of) reachability...
Los ordenadores son tan omnipresentes en nuestra vida diaria que los utilizamos sin saber muy bien qué hacemos. Sabemos que ejecutan aplicaciones, pero no sabemos muy bien en qué consisten o cómo se relacionan con el aparato que, poblado de circuitos y otros dispositivos hardware, permiten el pequeño milagro de su uso.
Pero es todavía más curioso...
Given a Conditional Term Rewriting System (CTRS) R and terms s and t, we say that the reachability condition s → * t is feasible if there is a substitution σ instantiating the variables in s and t such that the reachability test σ(s) → * R σ(t) succeeds; otherwise, we call it infeasible. Checking infeasibility of such (sequences of) reachability co...
Invited talk at the School of Informatics of the EHU-UPV (San Sebastián, Spain).
Dedicated to the memory of Zohar Manna, on the occasion of the 50th anniversary of his PhD thesis "Termination of algorithms", the first PhD thesis devoted to termination.
A theory S in a logic supplied with an inference system is operationally terminating if no goal has an infinite well-formed proof tree. Well-formed proof trees are those which an interpreter would incrementally build when trying to solve a condition at a time from left to right. For this reason, infinite well-formed proof trees have a unique infini...
Program semantics can often be expressed as a (many-sorted) first-order theory S, and program properties as sentences $\varphi$ which are intended to hold in the *canonical model* of such a theory, which is often incomputable. Recently, we have shown that properties $\varphi$ expressed as the existential closure of a boolean combination of atoms ca...
1 Overview mu-term 5.18 is a tool which can be used to verify termination and operational termination of variants of Term Rewriting Systems (TRSs) using dierent variants of the Dependency Pair (DP) Framework: Termination and innermost termination of TRSs using the DP Framework for TRSs [4]. This framework is also used to prove termination of String...
We prove that operational termination of declarative programs can be characterized by means of well-founded relations between specific formulas which can be obtained from the program. We show how to generate such relations by means of logical models where the interpretation of some binary predicates are required to be well-founded relations. Such l...
Computational systems based on a first-order language that can be given a *canonical model* which captures provability in the corresponding calculus can often be seen as first-order theories S, and computational properties of such systems can be formulated as first-order sentences $\varphi$ that hold in such a canonical model of S. In this setting,...
Computational systems based on a first-order language that can be given a canonical model which captures provability in the corresponding calculus can often be seen as first-order theories \(\mathcal{S}\), and computational properties of such systems can be formulated as first-order sentences \(\varphi \) that hold in such a canonical model of \(\m...
Different termination properties of conditional term rewriting systems have been recently described emphasizing the bidimensional nature of the termination behavior of conditional rewriting. The absence of infinite sequences of rewriting steps (termination in the usual sense), provides the horizontal dimension. The absence of infinitely many attemp...
Given a (Conditional) Rewrite System R and terms s and t, we consider the following problem: is there a substitution σ instantiating the variables in s and t such that the reachability test σ(s) → * R σ(t) succeeds? If such a substitution does not exist, we say that the problem is infeasible; otherwise, we call it feasible. Similarly, we can consid...
In program analysis, the *synthesis of models* of logical theories representing the program semantics is often useful to prove program properties. We use *Order-Sorted First-Order Logic* as an appropriate framework to describe the semantics and properties of programs as given theories. Then we investigate the \emph{automatic synthesis} of models fo...
Invited talk at the Seminaire du Laboratorie d’Informatique et de Mathématiques. Université de la Reunión
Properties expressed as the provability of a first-order sentence can be disproved by just finding a model of the negation of the sentence. This fact, however, is meaningful in restricted cases only, depending on the shape of the sentence and the class of systems at stake. In this paper we show that a number of interesting properties of rewriting-b...
Properties expressed as the provability of a first-order sentence can be disproved by just finding a model of the negation of the sentence. This fact, however, is meaningful in restricted cases only, depending on the shape of the sentence and the class of systems at stake. In this paper we show that a number of interesting properties of rewriting-b...
Given a Conditional Term Rewriting System R, a sequence s1 ->* t1 ,..., sn ->* tn is R-feasible if there is a substitution \sigma such that for all i, 1 ≤ i ≤ n, \sigma(si) ->* \sigma(ti). Otherwise, it is called R-infeasible. In this paper we use a semantic approach to the analysis of R-infeasibility. An R-infeasibility problem is translated into...
A declarative programming language is based on some logic L and its operational semantics is given by a proof calculus which is often presented in a natural deduction style by means of inference rules. Declarative programs are theories S of L and executing a program is proving goals φ in the inference system I (S ) associated to S as a particulariz...
In programming languages design, a clear rule to select the arguments of functions that are evaluated in function calls is essential to understand the program behavior. From the implementation point of view, such a rule is also important to improve the evaluation of function calls in a number of different ways: efficiency, speed, termination behavi...
The notion of operational termination provides a logic-based definition of termination of computational systems as the absence of infinite inferences in the computational logic describing the operational semantics of the system. For Conditional Term Rewriting Systems we show that operational termination is characterized as the conjunction of two te...
The soul is defined as a ’distinguishing mark of living things, responsible for planning and practical thinking’. Logic has been present in the origin and many important developments in Computer Science. Hilbert’s quest for effective methods to mechanically prove theorems stimulated some of the brightest minds of the 20th century to prove it unfeas...
Slides of the keynote conference "From Logic to Computers. From Programs to Logic" at the 6th Iberian Meeting on Mathematics, IMM 2016, October 7, 2016, Santiago de Compostela (Spain).
Logic is in the origin of computer science. Hilbert's quest for " effective methods " to mechanically prove mathematical theorems stimulated some of the brightest minds of the 20th century to find a solution or proving it unfeasible. The second option won. Eigthy years ago, Church and Turing advanced the thesis that lambda calculus and a-machines (...
Semantics-based program analysis guarantees that the obtained knowledge about focused program features matches the real behaviour of the program. Automation of the analyses requires abstraction mechanisms to approximate the (usually undecidable) program semantics and targeted properties. In this setting, the logical notions of interpretation of a l...
Conditional Term Rewriting Systems (CTRSs) extend Term Rewriting Systems (TRSs) conditional part c to each rewrite rule → r, thus obtaining a conditional rewrite rule → r ⇐ c. The addition of such conditional parts c substantially increases the expressiveness of programming languages that use them and often clarifies the purpose of the rules to mak...
A declarative programming language is based on some logic L and its operational semantics is given by a proof calculus which is often presented in a natural deduction style by means of inference rules. Declarative programs are theories S of L and executing a program is proving goals ϕ in the inference system I(S) associated to S as a particulariza-...
Los dos trabajos que marcaron el origen de la informática acaban de cumplir 80 años. Hoy, sus hallazgos siguen guiando la investigación en ingeniería y análisis de programas. http://www.investigacionyciencia.es/revistas/investigacion-y-ciencia/numero/479/lo-que-church-y-turing-ya-saban-sobre-mi-porttil-14405
Alan Turing desbarató el proyecto de Hilbert, pero nos dio mucho a cambio…
http://tecnologia.elpais.com/tecnologia/2016/05/23/actualidad/1463991942_813287.html
Termination is a classical problem in Computer Science, Programming, and Software Engineering. In the late 40’s, Alan Turing considered termination analysis and proposed the idea of mapping computations into decreasing quantities which ``vanish when the machine stops’’ in order to verify program termination. In the 60’s, Floyd championed the use of...
We present several new concepts and results on conditional term rewriting within the general framework of order-sorted rewrite theories (OSRTs), which support types, subtypes and rewriting modulo axioms, and contains the more restricted framework of conditional term rewriting systems (CTRSs) as a special case. The concepts shed light on several sub...
Recent developments in termination analysis for declarative programs
emphasize the use of appropriate models for the logical theory representing the
program at stake as a generic approach to prove termination of declarative
programs. In this setting, Order-Sorted First-Order Logic provides a powerful
framework to represent declarative programs. It...
Termination of programs, i.e., the absence of infinite computations, ensures
the existence of normal forms for all initial expressions, thus providing an
essential ingredient for the definition of a normalization semantics for
functional programs. In lazy functional languages, though, infinite data
structures are often delivered as the outcome of c...
Context-sensitive rewriting (CSR) is a variant of rewriting where only selected arguments of function symbols can be rewritten. Consequently, the subterm positions of a term are classified as either active, i.e., positions of subterms that can be rewritten; or frozen, i.e., positions that cannot. Frozen positions can be used to denote subexpres-sio...
Termination of programs, i.e., the absence of infinite computations, ensures the existence of normal forms for *all* initial expressions, thus providing an essential ingredient for the definition of a *normalization semantics* for functional programs. In *lazy* functional languages, though, *infinite data structures* are often delivered as the *out...
Computations are often viewed as proofs of specific sentences in some *computational logic* describing the operational semantics of the programming language or computational system. Since the semantics of programs (i.e., the set of such specific sentences that are provable in the logic) is usually incomputable, and most program properties undecidab...
Termination can be thought of as the property of programs ensuring that every input is given an output in finite time. There are many programming languages, with different features and expressive resources and programs of different shapes. Is a common formal definition of termination of programs in any (or most) of these programming languages possi...
Context-sensitive rewriting (CSR) is a variant of rewriting where only selected arguments of function symbols can be rewritten. Consequently, the subterm positions of a term are classified as either active, i.e., positions of subterms that can be rewritten; or frozen, i.e., positions that cannot. Frozen positions can be used to denote subexpres-sio...
Recently, a new dependency pair framework for proving operational termination of Conditional Term Rewriting Systems (CTRSs) has been introduced. We call it 2D Dependency Pair (DP) Framework for CTRSs because it makes explicit and exploits the bidimensional nature of the termination behavior of conditional rewriting, where rewriting steps s → t and...
Termination can be thought of as the property of programs ensuring that every input is given an answer in finite time. There are, however, many different (combinations of) programming paradigms and languages for these paradigms. Is a common *formal* definition of termination of programs in any (or most) of these programming languages possible? The...
Questions
Questions (3)
The term was apparently introduced by John Alan Robinson in a 1970 paper in the Proceedings of the Sixth Annual Machine Intelligence Workshop, Edinburgh, 1970, entitled "Computational Logic: The Unification Computation" (Machine Intelligence 6:63-72, Edinburgh University Press, 1971). The expression is used in the second paragraph with a footnote claiming that *computational logic* (the emphasis is in the paper) is "surely a better phrase than 'theorem proving', for the branch of artificial intelligence which deals with how to make machines do deduction efficiently". This sounds like coining the term; no reference to a previous use is mentioned. Is anybody aware of a previous use of "computational logic" by someone else?
In my opinion, writing programs is not only a good intellectual and practical exercise but also funny. Having children in primary and secondary school, I would like to attract them to programming, but I'm dubious about the most appropriate programming language and environment they could use to start. Do you have any concrete suggestion and/or experience to share?