S-Narrowing for Constructor Systems

Narrowing is a procedure that was conceived in the context of equational E-unification, and that has also been used in a wide range of applications. The classic completeness result due to Hullot states that any term rewriting derivation starting from an instance of an expression that has been obtained by using a normalized substitution can be 'lifted' to a narrowing derivation. Since then, several variants and extensions of narrowing have been developed in order to improve that result under certain assumptions or for particular classes of term rewriting systems. In this work we propose a new narrowing notion for constructor systems that is based on the novel notion of s-unifier, that essentially allows a variable to be bound to several expressions at the same time. A Maude-based implementation for this narrowing relation, using an adaptation of natural narrowing as on-demand evaluation strategy, is presented, and its use for symbolic reachability analysis applied to the verification of cryptographic protocols is also outlined.

[1]  José Meseguer,et al.  Symbolic reachability analysis using narrowing and its application to verification of cryptographic protocols , 2007, High. Order Symb. Comput..

[2]  Francisco Durán,et al.  Variants, Unification, Narrowing, and Symbolic Reachability in Maude 2.6 , 2011, RTA.

[3]  Tom Schrijvers,et al.  Functional and Logic Programming , 2012, Lecture Notes in Computer Science.

[4]  José Meseguer,et al.  Conditioned Rewriting Logic as a United Model of Concurrency , 1992, Theor. Comput. Sci..

[5]  Krzysztof R. Apt,et al.  Logic Programming , 1990, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[6]  J. G. A. 'andez A Fully Abstract Semantics for Constructor Systems , 2009 .

[7]  Juan Rodríguez-Hortalá,et al.  A Hierarchy of Semantics for Non-deterministic Term Rewriting Systems , 2008, FSTTCS.

[8]  Tobias Nipkow,et al.  Term rewriting and all that , 1998 .

[9]  Danny Dolev,et al.  On the security of public key protocols , 1981, 22nd Annual Symposium on Foundations of Computer Science (sfcs 1981).

[10]  Jean-Marie Hullot,et al.  Canonical Forms and Unification , 1980, CADE.

[11]  Franz Baader,et al.  Unification theory , 1986, Decis. Support Syst..

[12]  Aart Middeldorp,et al.  Completeness results for basic narrowing , 1994, Applicable Algebra in Engineering, Communication and Computing.

[13]  José Meseguer,et al.  Specification and proof in membership equational logic , 2000, Theor. Comput. Sci..

[14]  Paliath Narendran,et al.  Unification Theory , 2001, Handbook of Automated Reasoning.

[15]  Narciso Martí-Oliet,et al.  All About Maude - A High-Performance Logical Framework, How to Specify, Program and Verify Systems in Rewriting Logic , 2007, All About Maude.

[16]  Santiago Escobar Implementing Natural Rewriting and Narrowing Efficiently , 2004, FLOPS.

[17]  José Meseguer,et al.  Complete symbolic reachability analysis using back-and-forth narrowing , 2005, Theor. Comput. Sci..

[18]  Michael Hanus,et al.  Functional Logic Programming: From Theory to Curry , 2013, Programming Logics.

[19]  José Meseguer,et al.  The Rewriting Logic Semantics Project , 2006, Electron. Notes Theor. Comput. Sci..

[20]  Colin Runciman,et al.  Smallcheck and lazy smallcheck: automatic exhaustive testing for small values , 2008, Haskell '08.

[21]  Michael Hanus,et al.  Overlapping Rules and Logic Variables in Functional Logic Programs , 2006, ICLP.

[22]  Michael Hanus,et al.  Functional logic programming , 2010, CACM.