Skip to main content

Join Algorithms for the Theory of Uninterpreted Functions

  • Conference paper

Part of the Lecture Notes in Computer Science book series (LNCS,volume 3328)

Abstract

The join of two sets of facts, E 1 and E 2, is defined as the set of all facts that are implied independently by both E 1 and E 2. Congruence closure is a widely used representation for sets of equational facts in the theory of uninterpreted function symbols (UFS). We present an optimal join algorithm for special classes of the theory of UFS using the abstract congruence closure framework. Several known join algorithms, which work on a strict subclass, can be cast as specific instantiations of our generic procedure. We demonstrate the limitations of any approach for computing joins that is based on the use of congruence closure. We also mention some interesting open problems in this area.

Keywords

  • Decision Procedure
  • Abstract Interpretation
  • Congruence Class
  • Product Construction
  • Linear Arithmetic

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Research of the first and third authors was supported in part by NSF grants CCR-0081588, CCR-0085949, and CCR-0326577, and gifts from Microsoft Research. Research of the second author was supported in part by NSF grant CCR-0326540 and NASA Contract NAS1-20334.

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-3-540-30538-5_26
  • Chapter length: 13 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   109.00
Price excludes VAT (USA)
  • ISBN: 978-3-540-30538-5
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD   139.00
Price excludes VAT (USA)

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alpern, B., Wegman, M.N., Zadeck, F.K.: Detecting equality of variables in programs. In: 5th Annual ACM Symposium on POPL, pp. 1–11. ACM, New York (1988)

    Google Scholar 

  2. Bachmair, L., Tiwari, A., Vigneron, L.: Abstract congruence closure. J. of Automated Reasoning 31(2), 129–168 (2003)

    CrossRef  MATH  MathSciNet  Google Scholar 

  3. Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: A static analyzer for large safety-critical software. In: ACM PLDI 2003, pp. 196–207 (2003)

    Google Scholar 

  4. Briggs, P., Cooper, K.D., Simpson, L.T.: Value numbering. Software Practice and Experience 27(6), 701–724 (1997)

    CrossRef  Google Scholar 

  5. Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: 4th Annual ACM Symposium on Principles of Programming Languages, pp. 234–252 (1977)

    Google Scholar 

  6. Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among variables of a program. In: Fifth ACM Symposium on POPL, pp. 84–96 (1978)

    Google Scholar 

  7. Cytron, R., Ferrante, J., Rosen, B.K., Wegman, M.N., Zadeck, F.K.: Efficiently computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems 13(4), 451–490 (1990)

    CrossRef  Google Scholar 

  8. Gulwani, S., Necula, G.C.: A polynomial-time algorithm for global value numbering. In: Giacobazzi, R. (ed.) SAS 2004. LNCS, vol. 3148, pp. 212–227. Springer, Heidelberg (2004)

    CrossRef  Google Scholar 

  9. Kapur, D.: Shostak’s congruence closure as completion. In: Ganzinger, H. (ed.) RTA 1996. LNCS, vol. 1103, pp. 23–37. Springer, Heidelberg (1997)

    Google Scholar 

  10. Karr, M.: Affine relationships among variables of a program. In: Acta Informatica, pp. 133–151. Springer, Heidelberg (1976)

    Google Scholar 

  11. Kozen, D.: Partial automata and finitely generated congruences: an extension of Nerode’s theorem. In: Shore, R. (ed.) Proc. Conf. Logical Methods in Math. and Comp. Sci. (1992); Also Tech. Rep. PB-400, Comp. Sci. Dept., Aarhus Univ. (1992)

    Google Scholar 

  12. Muchnick, S.S.: Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco (2000)

    Google Scholar 

  13. Müller-Olm, M., Seidl, H.: Precise interprocedural analysis through linear algebra. In: 31st ACM Symposium on POPL, pp. 330–341. ACM, New York (2004)

    Google Scholar 

  14. Nelson, G., Oppen, D.: Simplification by cooperating decision procedures. ACM Transactions on Programming Languages and Systems 1(2), 245–257 (1979)

    CrossRef  MATH  Google Scholar 

  15. Nelson, G., Oppen, D.: Fast decision procedures based on congruence closure. Journal of the Association for Computing Machinery 27(2), 356–364 (1980)

    MATH  MathSciNet  Google Scholar 

  16. Reps, T., Horwitz, S., Sagiv, M.: Precise interprocedural dataflow analysis via graph reachability. In: 22nd ACM Symposium on POPL, pp. 49–61. ACM, New York (1995)

    Google Scholar 

  17. Rodriguez-Carbonell, E., Kapur, D.: An abstract interpretation approach for automatic generation of polynomial invariants. In: Giacobazzi, R. (ed.) SAS 2004. LNCS, vol. 3148, pp. 280–295. Springer, Heidelberg (2004)

    CrossRef  Google Scholar 

  18. Rüthing, O., Knoop, J., Steffen, B.: Detecting equalities of variables: Combining efficiency with precision. In: Cortesi, A., Filé, G. (eds.) SAS 1999. LNCS, vol. 1694, pp. 232–247. Springer, Heidelberg (1999)

    CrossRef  Google Scholar 

  19. Vagvolgyi, S.: Intersection of finitely generated congruences over term algebra. Theoretical Computer Science 300, 209–234 (2003)

    CrossRef  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Gulwani, S., Tiwari, A., Necula, G.C. (2004). Join Algorithms for the Theory of Uninterpreted Functions. In: Lodaya, K., Mahajan, M. (eds) FSTTCS 2004: Foundations of Software Technology and Theoretical Computer Science. FSTTCS 2004. Lecture Notes in Computer Science, vol 3328. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30538-5_26

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-30538-5_26

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-24058-7

  • Online ISBN: 978-3-540-30538-5

  • eBook Packages: Computer ScienceComputer Science (R0)