Representing Action and Change by Logic Programs (1993)
Michael Gelfond and Vladimir Lifschitz
We represent properties of actions in a logic programming language that uses both classical negation and negation as failure. The method is applicable to temporal projection problems with incomplete information, as well as to reasoning about the past. It is proved to be sound relative to a semantics of action based on states and transition functions.
Journal of Logic Programming, Vol. 17 (1993), pp. 301-322.

Vladimir Lifschitz Faculty vl [at] cs utexas edu