Boolean functions for dependency analysis: Algebraic properties and efficient representation

  • Tania Armstrong
  • Kim Marriott
  • Peter Schachte
  • Harald Søndergaard
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 864)


Many analyses for logic programming languages use Boolean functions to express dependencies between variables or argument positions. Examples include groundness analysis, arguably the most important analysis for logic programs, finiteness analysis and functional dependency analysis. We identify two classes of Boolean functions that have been used: positive and definite functions, and we systematically investigate these classes and their efficient implementation for dependency analyses. We provide syntactic characterizations and study their algebraic properties. In particular, we show that both classes are closed under existential quantification. We investigate representations for these classes based on: reduced ordered binary decision diagrams (ROBDDs), disjunctive normal form, conjunctive normal form, Blake canonical form, dual Blake canonical form, and a form specific to definite functions. We give an empirical comparison of these different representations for groundness analysis.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    T. Armstrong, K. Marriott, P. Schachte, and H. Søndergaard. Two Classes of Boolean Functions for Dependency Analysis. Technical Report 94/10, Dept. of Computer Science, The University of Melbourne, Australia, 1994.Google Scholar
  2. 2.
    N. Baker and H. Søndergaard. Definiteness analysis for CLP(-280-01). In G. Gupta, G. Mohay and R. Topor, editors, Proc. Sixteenth Australian Computer Science Conf., pages 321–332. Brisbane, Qld., January 1993.Google Scholar
  3. 3.
    P. Bigot, S. Debray and K. Marriott. Understanding finiteness analysis using abstract interpretation. In K. Apt, editor, Logic Programming: Proc. Joint Int. Conf. Symp., pages 735–749. MIT Press, 1992.Google Scholar
  4. 4.
    K. Brace, R. Rudell and R. Bryant. Efficient implementation of a BDD package. Proc. 27th ACM/IEEE Design Automation Conf., pages 40–45. IEEE Comp. Soc. Press, 1990.Google Scholar
  5. 5.
    F. M. Brown. Boolean Reasoning: The Logic of Boolean Equations. Kluwer Academic Publ., 1990.Google Scholar
  6. 6.
    R. Bryant. Symbolic Boolean manipulation with ordered binary-decision diagrams. ACM Computing Surveys 24 (3): 293–318, 1992.CrossRefGoogle Scholar
  7. 7.
    K. Clark. Negation as failure. In H. Gallaire and J. Minker, editors, Logic and Databases, pages 293–322. Plenum Press, 1978.Google Scholar
  8. 8.
    M. Codish and B. Demoen. Analysing logic programs using “Prop”-ositional logic programs and a magic wand. In D. Miller, editor, Logic Programming: Proc. 1993 Int. Symp., pages 114–129. MIT Press, 1993.Google Scholar
  9. 9.
    A. Cortesi, G. Filé and W. Winsborough. Prop revisited: Propositional formula as abstract domain for groundness analysis. Proc. Sixth Ann. IEEE Symp. Logic in Computer Science, pages 322–327. Amsterdam, The Netherlands, 1991.Google Scholar
  10. 10.
    P. Dart. Dependency Analysis and Query Interfaces for Deductive Databases. PhD thesis, The University of Melbourne, Australia, 1988.Google Scholar
  11. 11.
    P. Dart. On derived dependencies and connected databases. Journal of Logic Programming 11 (2): 163–188, 1991.CrossRefGoogle Scholar
  12. 12.
    W. Dowling, and J. Gallier. Linear-time algorithms for testing the satisfiability of propositional Horn formulae. Journal of Logic Programming 1 (3): 267–284, 1984.CrossRefGoogle Scholar
  13. 13.
    B. Le Charlier and P. Van Hentenryck. Groundness analysis for Prolog: Implementation and evaluation of the domain Prop. Proc. ACM Symp. Partial Evaluation and Semantics-Based Program Manipulation, pages 99–110, Copenhagen, Denmark, June 1993.Google Scholar
  14. 14.
    K. Marriott and H. Søndergaard. Notes for a tutorial on abstract interpretation of logic programs. North American Conf. Logic Programming, Cleveland, Ohio, 1989.Google Scholar
  15. 15.
    K. Marriott, H. Søndergaard, and N. D. Jones Denotational abstract interpretation of logic programs. To appear in ACM Trans. Programming Languages and Systems.Google Scholar
  16. 16.
    W. V. Quine. Methods of Logic. Harvard University Press, Fourth ed., 1982.Google Scholar
  17. 17.
    R. Ramakrishnan, F. Bancilhon and A. Silberschatz. Safety of recursive Horn clauses with infinite relations. Proc. Sixth A CM Symp. Principles of Database Systems, pages 328–339. ACM Press, 1987.Google Scholar
  18. 18.
    J. Zobel. Analysis of Logic Programs. PhD Thesis, The University of Melbourne, 1990.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Tania Armstrong
    • 1
  • Kim Marriott
    • 1
  • Peter Schachte
    • 2
  • Harald Søndergaard
    • 2
  1. 1.Dept. of Computer ScienceMonash UniversityClaytonAustralia
  2. 2.Dept. of Computer ScienceThe University of MelbourneParkvilleAustralia

Personalised recommendations