Table of Contents
Fetching ...

Non-Ground Congruence Closure

Hendrik Leidinger, Christoph Weidenbach

TL;DR

The paper tackles the exponential grounding bottleneck in congruence closure by introducing CC($\mathcal{X}$), a non-ground congruence closure that reason over a finite ground term set $\mathcal{M}$ using constrained terms. It formalizes a complete, sound calculus with Merge and Deduction rules, augmented by subsumption and condensation to guarantee termination and manage redundancy. The authors provide implementation refinements and an extensive evaluation showing CC($\mathcal{X}$) often outperforms classical ground CC, especially when the ground term set is large or the problem has many ground instances. The work has practical impact for SMT and related equality reasoning tasks by delaying grounding and leveraging finite ground terms, enabling scalable reasoning about non-ground equations. Future directions include handling inputs with fewer constants, optimizing class copying, and extending equality checks for non-ground terms.

Abstract

Congruence closure on ground equations is a well-established and efficient algorithm for deciding ground equalities. It constructs an explicit representation of ground equivalence classes based on a given set of input equations, allowing ground equalities to be decided by membership. In many applications, these ground equations originate from grounding non-ground equations. We propose an algorithm that directly computes a non-ground representation of ground congruence classes for non-ground equations. Our approach is sound and complete with respect to the corresponding ground congruence classes. Experimental results demonstrate that computing non-ground congruence classes often outperforms the classical ground congruence closure algorithm in efficiency.

Non-Ground Congruence Closure

TL;DR

The paper tackles the exponential grounding bottleneck in congruence closure by introducing CC(), a non-ground congruence closure that reason over a finite ground term set using constrained terms. It formalizes a complete, sound calculus with Merge and Deduction rules, augmented by subsumption and condensation to guarantee termination and manage redundancy. The authors provide implementation refinements and an extensive evaluation showing CC() often outperforms classical ground CC, especially when the ground term set is large or the problem has many ground instances. The work has practical impact for SMT and related equality reasoning tasks by delaying grounding and leveraging finite ground terms, enabling scalable reasoning about non-ground equations. Future directions include handling inputs with fewer constants, optimizing class copying, and extending equality checks for non-ground terms.

Abstract

Congruence closure on ground equations is a well-established and efficient algorithm for deciding ground equalities. It constructs an explicit representation of ground equivalence classes based on a given set of input equations, allowing ground equalities to be decided by membership. In many applications, these ground equations originate from grounding non-ground equations. We propose an algorithm that directly computes a non-ground representation of ground congruence classes for non-ground equations. Our approach is sound and complete with respect to the corresponding ground congruence classes. Experimental results demonstrate that computing non-ground congruence classes often outperforms the classical ground congruence closure algorithm in efficiency.

Paper Structure

This paper contains 10 sections, 28 theorems, 19 equations, 3 figures, 5 algorithms.

Key Result

Lemma 8

Let $A$ be a $\mathcal{M}$-constrained class. Then $\operatorname{gnd}(A)\in \mathcal{P}(\mathcal{M})$, the powerset of $\mathcal{M}$.

Figures (3)

  • Figure 1: Benchmark results for a nesting depth of 6.
  • Figure 2: Benchmark results for a nesting depth of 8.
  • Figure 3: Benchmark results for a nesting depth of 2 on the SMT UF examples.

Theorems & Definitions (58)

  • Definition 1
  • Definition 2: Congruence Class
  • Definition 3
  • Definition 4: Congruence Class Semantics
  • Example 5
  • Definition 6: Normal Class
  • Definition 7: Subsumption
  • Definition 8
  • Lemma 8: Constraint Semantics matches $\mathcal{M}$
  • Lemma 8: Constraint Semantics matches $\mathcal{M}$
  • ...and 48 more