Non-Terminating Processes in the Situation Calculus (1997) [5 citations — 3 self]
Abstract:
this paper -- an office coffee-delivery robot might be implemented as an infinite loop in which the robot responds to exogenous requests for coffee that are maintained on a queue. Since a future coffee request is always possible, the program never terminates. As is the case for more conventional programs, we want some reliability assurances for robot controllers. This paper describes the approach being taken by our Cognitive Robotics Group to expressing and proving properties of non-terminating programs expressed in GOLOG, a high level logic programming language for modeling and implementing dynamical systems. The kinds of properties we have in mind are traditional in computer science: liveness, fairness, etc. We differ from the "classical" approaches ([LS87, Cou90, MP95]) for reasons dictated by the following characteristics of GOLOG: 1. To write a GOLOG program, the programmer first axiomatizes the primitive actions of the application domain, using first order logic. These actions may also include exogenous events. 2. Next, she describes, in GOLOG, the complex behaviors her robot is to exhibit in this domain. This GOLOG program is interpreted by means of a formula, this time in second order logic. 3. Finally, a suitable theorem-prover executes the program. Because these features are all represented in classical (second order) logic, it is natural to express and prove properties of GOLOG programs, including non-terminating ones, in the very same logic. This approach to program proofs has the advantage of logical uniformity and the availability of classical proof theory. It also provides a very rich language with which to express program properties, as we shall see in this paper. Moreover, it provides for proofs of programs with incomplete initial state, the normal situ...

