Abstract
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.
Preview
Unable to display preview. Download preview PDF.
References
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.
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.
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.
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.
F. M. Brown. Boolean Reasoning: The Logic of Boolean Equations. Kluwer Academic Publ., 1990.
R. Bryant. Symbolic Boolean manipulation with ordered binary-decision diagrams. ACM Computing Surveys 24 (3): 293–318, 1992.
K. Clark. Negation as failure. In H. Gallaire and J. Minker, editors, Logic and Databases, pages 293–322. Plenum Press, 1978.
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.
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.
P. Dart. Dependency Analysis and Query Interfaces for Deductive Databases. PhD thesis, The University of Melbourne, Australia, 1988.
P. Dart. On derived dependencies and connected databases. Journal of Logic Programming 11 (2): 163–188, 1991.
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.
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.
K. Marriott and H. Søndergaard. Notes for a tutorial on abstract interpretation of logic programs. North American Conf. Logic Programming, Cleveland, Ohio, 1989.
K. Marriott, H. Søndergaard, and N. D. Jones Denotational abstract interpretation of logic programs. To appear in ACM Trans. Programming Languages and Systems.
W. V. Quine. Methods of Logic. Harvard University Press, Fourth ed., 1982.
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.
J. Zobel. Analysis of Logic Programs. PhD Thesis, The University of Melbourne, 1990.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Armstrong, T., Marriott, K., Schachte, P., Søndergaard, H. (1994). Boolean functions for dependency analysis: Algebraic properties and efficient representation. In: Le Charlier, B. (eds) Static Analysis. SAS 1994. Lecture Notes in Computer Science, vol 864. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58485-4_46
Download citation
DOI: https://doi.org/10.1007/3-540-58485-4_46
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-58485-8
Online ISBN: 978-3-540-49005-0
eBook Packages: Springer Book Archive