By Jan van Eijck & Martin Stokhof
Dynamic logic, broadly conceived, is the logic that analyses change by decomposing actions into their basic building blocks and by describing the results of performing actions in given states of the world. The actions studied by dynamic logic can be of various kinds: actions on the memory state of a computer, actions of a moving robot in a closed world, interactions between cognitive agents performing given communication protocols, actions that change the common ground between speaker and hearer in a conversation, actions that change the contextually available referents in a conversation, and so on.
In each of these application areas, dynamic logics can be used to model the states involved and the transitions that occur between them. Dynamic logic is a tool for both state description and action description. Formulae describe states, while actions or programs express state change. The levels of state descriptions and transition characterisations are connected by suitable operations that allow reasoning about pre- and post-conditions of particular changes.
From a computer science perspective, dynamic logic is a formal tool for reasoning about programs. Dynamic logics provides the means for formalising correctness specifications, for proving that these speci cations are met by a program under consideration, and for reasoning about equivalence of programs. From the perspective of the present paper, this is but one of many application areas. We will also look at dynamic logics for cognitive processing, for communication and information updating, and for various aspects of natural language understanding.
Source: Online Papers in Philosophy