Variations on the Common Subexpression Problem

Peter J. Downey, Ravi Sethi, Robert Endre Tarjan

Research output: Contribution to journalArticle

210 Citations (Scopus)

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 languageEnglish (US)
Pages (from-to)758-771
Number of pages14
JournalJournal of the ACM (JACM)
Volume27
Issue number4
DOIs
StatePublished - Oct 1 1980
Externally publishedYes

Fingerprint

Directed graphs

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

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

In: Journal of the ACM (JACM), Vol. 27, No. 4, 01.10.1980, p. 758-771.

Research output: Contribution to journalArticle

Downey, Peter J. ; Sethi, Ravi ; Tarjan, Robert Endre. / Variations on the Common Subexpression Problem. In: Journal of the ACM (JACM). 1980 ; Vol. 27, No. 4. pp. 758-771.
@article{d7cd984ae8c84c0cb4a0ffb340238a85,
title = "Variations on the Common Subexpression Problem",
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.",
keywords = "common subexpresslon, congruence closure, decision procedure, expression equivalence, graph algorithm, lossless join, relational database, theory of equality, unification, uniform word problem",
author = "Downey, {Peter J.} and Ravi Sethi and Tarjan, {Robert Endre}",
year = "1980",
month = "10",
day = "1",
doi = "10.1145/322217.322228",
language = "English (US)",
volume = "27",
pages = "758--771",
journal = "Journal of the ACM",
issn = "0004-5411",
publisher = "Association for Computing Machinery (ACM)",
number = "4",

}

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 -