Information Processing Letters - Special issue on the calculational method
Algebra of programming
A calculational approach to mathematical induction
Theoretical Computer Science
A formal semantics of patterns in XSLT and XPath
Markup Languages
EDBT '02 Proceedings of the Worshops XMLDM, MDDE, and YRWS on XML-Based Data Management and Multimedia Engineering-Revised Papers
Algebraic and coalgebraic methods in the mathematics of program construction
Algebraic and coalgebraic methods in the mathematics of program construction
Journal of Functional Programming
Query optimization in XML structured-document databases
The VLDB Journal — The International Journal on Very Large Data Bases
∂ for Data: Differentiating Data Structures
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2003, Selected Papers
Transformation of structure-shy programs: applied to XPath queries and strategic functions
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Efficient static analysis of XML paths and types
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.00 |
Navigating through tree structures is a core operation in tree processing programs. Most notably, XML processing programs intensively use XPath, the path specification language that locates particular nodes in a given document structure. This paper develops a theory for reasoning about equalities of tree navigation programs. In functional programming languages, tree navigation operations can be cleanly implemented as functions operating over the data structure known as Huet's zipper. The tree navigation functions are expected to have certain nice symmetric properties(e.g., a function going one-level down in the tree structure would be the inverse of another function coming back the other way around, and vice versa), but they are not indeed a perfect symmetry, due to partiality and non-injectivity of the functions. In order to fully exploit the symmetry indicated by tree navigation operations, we model them by relations, instead of functions. The relational specification allows us to derive useful equations by simple calculations. We apply the calculational method to derive certain equalities of XPath expressions. The point-free relational reasoning not only leads to a concise justification of some known results but also establishes equations for a larger class of tree navigation operations, including those specified with negative constraints and those beyond XPath expressibility.