Logic for representing and implementing knowledge about system behaviour
We show how standard logic programming can be used for representing and implementing knowledge about the behaviour of computational systems. We present a very simple framework, applicable to both sequential and concurrent systems, in which state transitions can be defined in definite-clause logic and composed into complete processes by programs constructed from predetermined schemata for graph-traversal. These may be used to derive concrete logic programs which either simulate those systems directly or compute just those relations determined by the processes which terminate.
Unable to display preview. Download preview PDF.
- 1.D. R. Brough and C. J. Hogger. Compiling associativity into logic programs. J. Logic Programming 4, pp. 345–359, 1987.Google Scholar
- 2.D. R. Gilbert. Specifying and reasoning about concurrent systems in logic. PhD Thesis, Department of Computing, Imperial College, University of London, 1990.Google Scholar
- 3.D. R. Gilbert and C. J. Hogger. Deriving logic programs from observations. Presented to the Workshop on Constructing Logic Programs, International Conference on Logic Programming, Paris, 1991.Google Scholar
- 4.D. R. Gilbert and C. J. Hogger. Logical specification of program behaviour: Part II—Concurrent systems. Research Report [in preparation], Department of Computing, Imperial College, 1991.Google Scholar
- 5.Kowalski, R. A. Algorithm = logic + control. Comm. ACM. Vol., No. 7, 1979.Google Scholar
- 6.Kowalski, R. A. Logic for problem solving. North Holland, 1979.Google Scholar
- 7.Takeuchi, A. and Furukawa, K. Partial evaluation of Prolog programs and its application to meta programming. Proc. IFIP-86, Elsevier Science Publishers, pp. 415–40, 1986.Google Scholar
- 8.van Emden, M. H. and de Lucena Filho, G. J. Predicate logic as a parallel programming language. In Logic Programming (eds. Clark, K. L. and Tarnlund, S-A., Academic Press, pp 189–198, 1982.Google Scholar
- 9.Bruynooghe, M., De Schreye D. and Krekels, B. Compiling control. J. Logic Programming, 1989.Google Scholar