### Abstract

Let G be a directed graph such that for each vertex v in G, the successors of v are ordered Let C be any equivalence relation on the vertices of G. The congruence closure C* of C is the finest equivalence relation containing C and such that any two vertices having corresponding successors equivalent under C* are themselves equivalent under C* Efficient algorithms are described for computing congruence closures in the general case and in the following two special cases. 0) G under C* is acyclic, and (it) G is acychc and C identifies a single pair of vertices. The use of these algorithms to test expression eqmvalence (a problem central to program verification) and to test losslessness of joins in relational databases is described.

Original language | English (US) |
---|---|

Pages (from-to) | 758-771 |

Number of pages | 14 |

Journal | Journal of the ACM (JACM) |

Volume | 27 |

Issue number | 4 |

DOIs | |

State | Published - Oct 1 1980 |

Externally published | Yes |

### Fingerprint

### Keywords

- common subexpresslon
- congruence closure
- decision procedure
- expression equivalence
- graph algorithm
- lossless join
- relational database
- theory of equality
- unification
- uniform word problem

### ASJC Scopus subject areas

- Control and Systems Engineering
- Software
- Information Systems
- Hardware and Architecture
- Artificial Intelligence

### Cite this

*Journal of the ACM (JACM)*,

*27*(4), 758-771. https://doi.org/10.1145/322217.322228

**Variations on the Common Subexpression Problem.** / Downey, Peter J.; Sethi, Ravi; Tarjan, Robert Endre.

Research output: Contribution to journal › Article

*Journal of the ACM (JACM)*, vol. 27, no. 4, pp. 758-771. https://doi.org/10.1145/322217.322228

}

TY - JOUR

T1 - Variations on the Common Subexpression Problem

AU - Downey, Peter J.

AU - Sethi, Ravi

AU - Tarjan, Robert Endre

PY - 1980/10/1

Y1 - 1980/10/1

N2 - Let G be a directed graph such that for each vertex v in G, the successors of v are ordered Let C be any equivalence relation on the vertices of G. The congruence closure C* of C is the finest equivalence relation containing C and such that any two vertices having corresponding successors equivalent under C* are themselves equivalent under C* Efficient algorithms are described for computing congruence closures in the general case and in the following two special cases. 0) G under C* is acyclic, and (it) G is acychc and C identifies a single pair of vertices. The use of these algorithms to test expression eqmvalence (a problem central to program verification) and to test losslessness of joins in relational databases is described.

AB - Let G be a directed graph such that for each vertex v in G, the successors of v are ordered Let C be any equivalence relation on the vertices of G. The congruence closure C* of C is the finest equivalence relation containing C and such that any two vertices having corresponding successors equivalent under C* are themselves equivalent under C* Efficient algorithms are described for computing congruence closures in the general case and in the following two special cases. 0) G under C* is acyclic, and (it) G is acychc and C identifies a single pair of vertices. The use of these algorithms to test expression eqmvalence (a problem central to program verification) and to test losslessness of joins in relational databases is described.

KW - common subexpresslon

KW - congruence closure

KW - decision procedure

KW - expression equivalence

KW - graph algorithm

KW - lossless join

KW - relational database

KW - theory of equality

KW - unification

KW - uniform word problem

UR - http://www.scopus.com/inward/record.url?scp=84976799536&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84976799536&partnerID=8YFLogxK

U2 - 10.1145/322217.322228

DO - 10.1145/322217.322228

M3 - Article

AN - SCOPUS:84976799536

VL - 27

SP - 758

EP - 771

JO - Journal of the ACM

JF - Journal of the ACM

SN - 0004-5411

IS - 4

ER -