Proving Cypher Query Equivalence
Lei Tang, Wensheng Dou, Yingying Zheng, Lijie Xu, Wei Wang, Jun Wei, Tao Huang
TL;DR
GraphQE addresses the challenge of proving Cypher query equivalence on property graphs by introducing a graph-native algebra based on U-semiring, called G-expressions. It converts Cypher queries into G-expressions and reduces equivalence to SMT-solved constraints, using a LIA*-enhanced approach to handle unbounded sums. The authors construct CyEqSet, a dataset of 148 equivalent Cypher query pairs, and demonstrate that GraphQE proves 138 pairs with an average runtime of 38 ms, highlighting strong practical potential and remaining limitations. This work provides a foundation for automated graph-query optimization and reliability checks, with explicit pathways to extend the framework to other graph query languages.
Abstract
Graph database systems store graph data as nodes and relationships, and utilize graph query languages (e.g., Cypher) for efficiently querying graph data. Proving the equivalence of graph queries is an important foundation for optimizing graph query performance, ensuring graph query reliability, etc. Although researchers have proposed many SQL query equivalence provers for relational database systems, these provers cannot be directly applied to prove the equivalence of graph queries. The difficulty lies in the fact that graph query languages (e.g., Cypher) adopt significantly different data models (property graph model vs. relational model) and query patterns (graph pattern matching vs. tabular tuple calculus) from SQL. In this paper, we propose GraphQE, an automated prover to determine whether two Cypher queries are semantically equivalent. We design a U-semiring based Cypher algebraic representation to model the semantics of Cypher queries. Our Cypher algebraic representation is built on the algebraic structure of unbounded semirings, and can sufficiently express nodes and relationships in property graphs and complex Cypher queries. Then, determining the equivalence of two Cypher queries is transformed into determining the equivalence of the corresponding Cypher algebraic representations, which can be verified by SMT solvers. To evaluate the effectiveness of GraphQE, we construct a dataset consisting of 148 pairs of equivalent Cypher queries. Among them, we have successfully proven 138 pairs of equivalent Cypher queries, demonstrating the effectiveness of GraphQE.
