Symbolic constraint handling through unification in finite algebras

  • Wolfram Büttner
  • Klaus Estenfeld
  • Richard Schmid
  • Hans-Albert Schneider
  • Erik Tidén


The constraint satisfaction problem (CSP) over finite domains is reduced to unification in finite algebras. A CSP defines a unification problem with a most general unifier that naturally expresses the solution of the given CSP in symbolic form. The approach is based on a unitary unification algorithm for arbitrary finite algebras, which is presented. The unification algorithm has been incorporated in the experimental Prolog system PROLOG-XT, which has been successfully applied to the verification of large combinatorial digital circuits, and is now in use in an industrial circuit development environment.


Constraint handling Prolog Unification Finite algebra 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Balbes, R., Dwinger, P.: Distributive lattices. Columbia: University of Missouri Press 1974Google Scholar
  2. 2.
    Bryant, R.: Graph-based algorithms for Boolean function manipulation. IEEE Trans. Comput.C-35, 677–691 (1986)Google Scholar
  3. 3.
    Büttner, W.: Implementing complex domains of application in an extended prolog system. Int. J. Gen. Syst.15, 129–139 (1989)Google Scholar
  4. 4.
    Büttner, W.: Unification in finite algebras is unitary (?). In: Lusk, E., Overbeek, R. (eds.) 9th International Conference on Automated Deduction. Lecture Notes in Comp. Sc. Vol. 310. Berlin, Heidelberg, New York: Springer 1988Google Scholar
  5. 5.
    Büttner, W., Simonis, H.: Embedding Boolean expressions into logic programming. J. Symb. Comput.4, 191–205 (1987)Google Scholar
  6. 6.
    Cohn, A.: The notion of proof in hardware verification. J. Autom. Reasoning5, 74–86 (1989)Google Scholar
  7. 7.
    Colmerauer, A.: Note sur PROLOG III. In: Actes du séminaire 1986 — programmation en logique. Tech. report, CNET, Tregastel, France (1986)Google Scholar
  8. 8.
    deKleer, J., Brown, J.: A qualitative physics based on confluences. Artif. Intell.24, 7–83 (1984)Google Scholar
  9. 9.
    Dincbas, M., Van Hentenryck, P.: Constraints and logic programming. Tech. report TR-LP-9, ECRC, FRG (1986)Google Scholar
  10. 10.
    Dincbas, M., Simonis, H., Van Hentenryck, P.: Solving large combinatorial problems in logic programming. Tech. report TR-LP-21, ECRC, FRG (1987)Google Scholar
  11. 11.
    Filkorn, T.: Unifikation in endlichen Algebren und ihre Integration in Prolog. Diploma thesis, Technische Universität München, FRG (1988)Google Scholar
  12. 12.
    Grätzer, G.: Universal Algebra. Berlin, Heidelberg, New York: Springer 1988Google Scholar
  13. 13.
    Hayes, J. P.: Pseudo-Boolean logic circuits. IEEE Trans. Comput.C-35, 602–612 (1986)Google Scholar
  14. 14.
    Hunt, W. A. Jr.: FM8501: A verified microprocessor. Tech. report 47, University of Texas, USA (1985)Google Scholar
  15. 15.
    Jaffar, J., Michaylov, S.: Methodology and Implementation of a CLP System. In: Lassez, J.-L. (ed.) Fourth International Conference on Logic Programming, Cambridge (Mass). London: MIT Press 1987Google Scholar
  16. 16.
    Jaffar, J., Lassez, J.-L.: Constraint logic programming. In: 14th Symposium on Principles of Programming Languages. New York: ACM 1987Google Scholar
  17. 17.
    Nipkow, T.: Unification in primal algebras. In: Dauchet, M., Nivat, M. (eds.). 13th Colloquium on Trees in Algebra and Programming. Lecture Notes in Comp. Sc. Vol. 299. Berlin, Heidelberg, New York: Springer 1988Google Scholar
  18. 18.
    Plotkin, G.: Building-in equational theories. Machine Intell.7, 73–90 (1972)Google Scholar
  19. 19.
    Reeves, D. S., Irwin, M. J.: Fast methods for switch-level verification of MOS circuits. IEEE Trans. Comput. Aided Design of Integr. Circuits Syst.CAD-6, 766–779 (1987)Google Scholar
  20. 20.
    Siekmann, J.: Unification Theory. In: Du Boulay, B. Hogg, D., Steels, L. (eds.). Advances in artificial intelligence-II. Amsterdam New York Oxford Tokyo: North-Holland 1987Google Scholar
  21. 21.
    Simonis, H., Dincbas, M.: Using an extended prolog for digital circuit design. In: IEEE International Workshop on AI-Applications to CAD Systems for Electronics. Los Alamitos: IEEE Computer Society Press 1987Google Scholar
  22. 22.
    Simonis, H., Nguen, N., Dincbas, M.: Verification of digital circuits using CHIP. In: Milne, G. (ed.). The fusion of Hardware design and verification. Amsterdam New York Oxford Tokyo: North-Holland 1988Google Scholar
  23. 23.
    Sloane, N. J. A.: A short course on error correcting codes. Berlin, Heidelberg, New York: Springer 1975Google Scholar
  24. 24.
    Stallman, R. M., Sussman, G. J.: Forward reasoning and dependency directed backtracking in a system for computer aided circuit analysis. Artifi. Intell.9, 135–196 (1977)Google Scholar
  25. 25.
    Steele, G. L.: The definition and implementation of a computer programming language based on constraints. PhD Thesis, MIT, USA (1980)Google Scholar
  26. 26.
    Sussman, G. J., Steele, G. L.: CONSTRAINTS — A language for expressing almost-hierachical descriptions. Artifi. Intell.14, 1–39 (1980)Google Scholar
  27. 27.
    Tidén, E.: Symbolic verification of switch-level circuits using a prolog enhanced with unification in finite algebras. In: Milne, G. (ed.). The fusion of hardware design and verification. Amsterdam New York Oxford Tokyo: North-Holland 1988Google Scholar

Copyright information

© Springer-Verlag 1990

Authors and Affiliations

  • Wolfram Büttner
    • 1
  • Klaus Estenfeld
    • 1
  • Richard Schmid
    • 1
  • Hans-Albert Schneider
    • 1
  • Erik Tidén
    • 1
  1. 1.Siemens AGResearch Laboratories for Computer Science and SoftwareMünchen 83FRG

Personalised recommendations