Papers by Santiago Escobar
This paper describes several classes of term rewriting systems (TRS's) where narrowing has a fini... more This paper describes several classes of term rewriting systems (TRS's) where narrowing has a finite search space and is still (strongly) complete as a mechanism for solving reachability goals. These classes do not assume confluence of the TRS. We also ascertain purely syntactic criteria that suffice to ensure the termination of narrowing and include several subclasses of popular TRS's such as right-linear TRS's, almost orthogonal TRS's, topmost TRS's, and left-flat TRS's. Our results improve and/or generalize previous criteria in the literature regarding narrowing termination.
We discuss the use of type systems in a non-strict sense when designing unication algorithms. We ... more We discuss the use of type systems in a non-strict sense when designing unication algorithms. We rst give a new (rule-based) algorithm for an equational theory which represents a property of El-Gamal signature schemes and show how a type system can be used to prove termination of the algorithm. Lastly, we reproduce a termination result for theory of partial exponentiation given earlier.
ACUOS: A System for Modular ACU Generalization with Subtyping and Inheritance
Constrained Narrowing for Conditional Equational Theories Modulo Axioms
Variants of variants and the finite variant property

An equational theory decomposed into a set B of equational axioms and a set ∆ of rewrite rules ha... more An equational theory decomposed into a set B of equational axioms and a set ∆ of rewrite rules has the finite variant (FV) property in the sense of Comon-Lundh and Delaune iff for each term t there is a finite set {t1, . . . , tn} of →∆,B-normalized instances of t so that any instance of t normalizes to an instance of some ti modulo B. This is a very useful property for cryptographic protocol analysis, and for solving both unification and disunification problems. Yet, at present the property has to be established by hand, giving a separate mathematical proof for each given theory: no checking algorithms seem to be known. In this paper we give both a necessary and a sufficient condition for FV from which we derive, both an algorithm ensuring the sufficient condition, and thus FV, and another disproving the necessary condition, and thus disproving FV. These algorithms can check automatically a number of examples and counterexamples of FV known in the literature.
This volume contains a selection of papers presented at LOPSTR 2005, the 15th International Sympo... more This volume contains a selection of papers presented at LOPSTR 2005, the 15th International Symposium on Logic-Based Program Synthesis and Transformation, held September 7-9, 2005.

In functional languages such as OBJ*, CafeOBJ, and Maude, symbols are given strategy annotations ... more In functional languages such as OBJ*, CafeOBJ, and Maude, symbols are given strategy annotations that specify (the order in) which subterms are evaluated. Syntactically, strategy annotations are given either as lists of natural numbers or as lists of integers associated to function symbols whose (absolute) values refer to the arguments of the corresponding symbol. A positive index prescribes the evaluation of an argument whereas a negative index means "evaluate on-demand". While strategy annotations containing only natural numbers have been implemented and investigated to some extent (regarding, e.g., termination and completeness), fully general annotations (also called on-demand strategy annotations), which have been proposed to support laziness in OBJ-like languages, are disappointingly under-explored to date. In this paper, we first point out a number of problems of current proposals for handling on-demand strategy annotations, such as undecidability of the reduction relation or inadequacy of the model. Then, we propose a solution to these problems by keeping an accurate track of annotations along evaluation sequences. This solution is defined as a suitable extension of the E-evaluation strategy of OBJ-like languages (which only considers annotations given as natural numbers) to on-demand strategy annotations. Our strategy overcomes the drawbacks of these previous proposals and also exhibits better computational properties. For instance, we show how to use it for computing (head-)normal forms. We also introduce a transformation for proving termination of the new evaluation strategy by using standard techniques. Finally, we present an interpreter of the new strategy together with some encouraging experiments.
UPV-Curry User's Manual
This report is organized as follows. Section 2 summarizes the essentials of UPV-Curry. Section 3 ... more This report is organized as follows. Section 2 summarizes the essentials of UPV-Curry. Section 3 introduces the UPV-Curry development system. Section 4 proposes some guidelines for working with the interpreter and different examples. Section 5 points out some differences between Curry and UPV-Curry. Section 6 summarizes some information sources for Curry and UPV-Curry. Appendix A and B show the BNF
Strategy annotations are used in rule-based programming languages such as OBJ2, OBJ3, CafeOBJ, an... more Strategy annotations are used in rule-based programming languages such as OBJ2, OBJ3, CafeOBJ, and Maude to improve efficiency and/or reduce the risk of nontermination. Syntactically, they are given either as lists of natural numbers or as lists of integers associated to function symbols whose (absolute) values refer to the arguments of the corresponding symbol. A positive index forces the evaluation of an argument whereas a negative index means "evaluate on-demand". In this paper, we present OnDemandOBJ, an implementation of strategy-guided on-demand evaluation, which improves previous mechanizations that were lacking satisfactory computational properties. c 2003 Published by Elsevier Science B. V.
Improving On-Demand Strategy Annotations
Lecture Notes in Computer Science, 2002
Abstract. In functional languages such as OBJ*, CafeOBJ, and Maude, symbols are given strategy an... more Abstract. In functional languages such as OBJ*, CafeOBJ, and Maude, symbols are given strategy annotations which specify (the order in) which subterms are evaluated. Syntactically, they are given either as lists of natural numbers ...

Building Fuzzy Inference Systems with the Interval Type-2 Fuzzy Logic Toolbox
Advances in Soft Computing, 2007
This paper presents the development and design of a graphical user interface and a command line p... more This paper presents the development and design of a graphical user interface and a command line programming Toolbox for construction, edition and simulation of Interval Type-2 Fuzzy Inference Systems. The Interval Type-2 Fuzzy Logic System Toolbox (IT2FLS), is an environment for interval type-2 fuzzy logic inference system development. Tools that cover the different phases of the fuzzy system design process, from the initial description phase, to the final implementation phase, constitute the Toolbox. The Toolbox’s best qualities are the capacity to develop complex systems and the flexibility that allows the user to extend the availability of functions for working with the use of type-2 fuzzy operators, linguistic variables, interval type-2 membership functions, defuzzification methods and the evaluation of Interval Type-2 Fuzzy Inference Systems.
International Conference on Logic Programming/Joint International Conference and Symposium on Logic Programming, 2008
In this work, we extend the dependency pair approach for automated proofs of termination in order... more In this work, we extend the dependency pair approach for automated proofs of termination in order to prove the termination of nar- rowing. Our extension of the dependency pair approach generalizes the standard notion of dependency pairs by taking specifically into account the dependencies between the left-hand side of a rewrite rule and its own argument subterms. We demonstrate that
Rewriting Techniques and Applications, 2007
Rewriting is a general and expressive way of specifying con- current systems, where concurrent tr... more Rewriting is a general and expressive way of specifying con- current systems, where concurrent transitions are axiomatized by rewrite rules. Narrowing is a complete symbolic method for model checking reachability properties. We show that this method can be reinterpreted as a lifting simulation relating the original system and the symbolic sys- tem associated to the narrowing transitions. Since the narrowing
Electronic Notes in Theoretical Computer Science, 2009
Narrowing is a well-known complete procedure for equational E-unification when E can be decompose... more Narrowing is a well-known complete procedure for equational E-unification when E can be decomposed as a union E = ) B with B a set of axioms for which a finitary unification algorithm exists, and a set of confluent, terminating, and B-coherent rewrite rules. How- ever, when B 6= ;, ecient narrowing strategies such as basic narrowing easily fail to
Asymmetric Unification: A New Unification Paradigm for Cryptographic Protocol Analysis
Lecture Notes in Computer Science, 2013
... Accepted by The 13th International ACM SIGPLAN Symposium on Principles and Practice of Declar... more ... Accepted by The 13th International ACM SIGPLAN Symposium on Principles and Practice of Declar-ative Programming, 2011. 6. Santiago Escobar, Catherine Meadows, and José Meseguer.Maude-NPA: Crypto-graphic protocol analysis modulo equational properties. ...
ACUOS: A System for Modular ACU Generalization with Subtyping and Inheritance
Lecture Notes in Computer Science, 2014

Lecture Notes in Computer Science, 2009
In this tutorial, we give an overview of the Maude-NRL Protocol Analyzer (Maude-NPA), a tool for ... more In this tutorial, we give an overview of the Maude-NRL Protocol Analyzer (Maude-NPA), a tool for the analysis of cryptographic protocols using functions that obey dierent equational theories. We show the reader how to use Maude-NPA, and how it works, and also give some of the theoretical background behind the tool. The earliest protocol analysis tools, such as the Interrogator [30] and the NRL Protocol Analyzer (NPA) [35], while not strictly speaking model checkers, relied on state exploration, and, in the case of NPA, could be used to verify security properties specied in a temporal logic language. Later, researchers used generic model checkers to analyze protocols, such as FDR [32] and later Murphi [40]. More recently the focus has been on special-purpose model-checkers developed specically for cryptographic protocol analysis, such as Blanchet's ProVerif [8], the AVISPA tool [3], and Maude-NPA itself [23].

Lecture Notes in Computer Science, 2009
In this paper we propose a certification technique for noninterference of Java programs based on ... more In this paper we propose a certification technique for noninterference of Java programs based on rewriting logic, a very general logical and semantic framework efficiently implemented in the high-level programming language Maude. Non-interference is a semantic program property that prevents illicit information flow to happen. Starting from a basic specification of the semantics of Java written in Maude, we develop an information-flow extension of this operational Java semantics which allows us to observe non-interference of Java programs. Then we develop in Maude an abstract, finite-state version of the information-flow operational semantics which supports finite program verification. As a by-product of the verification, a certificate of non-interference is delivered which consists of a set of (abstract) rewriting proofs that can be easily checked by the code consumer using a standard rewriting logic engine.
Uploads
Papers by Santiago Escobar