Active Logic, Metacognitive Computation, and Mind

Toward Human-Level Cognitive Adequacy
Our long-range aim is to design and implement common sense in a computer. Click here for details.


If you would like to learn more about Active Logic, we suggest you start with one of our primers.

Technical Introduction to Active Logic

Active Logic is a kind of “step logic,” which was developed in [Elgot-Drapkin, 1988] as formal mechanism for modeling the ongoing process of reasoning. Unlike traditional logical formalisms, a step-logic does not calculate a final set of conclusions which can be drawn from an initial set of facts, but rather monitors the ever-changing set of conclusions as time goes on. Such logics were introduced in order to achieve a number of related goals: more realistic representation and reasoning about time; the ability to reason with and about inconsistency, and the ability to reason about the reasoning process itself. These goals remain central in work we report here; in addition we examine issues involving natural language, multi-agent cooperation and autonomous agency. We start by presenting a fairly abstract definition of an active logic. Such logic is closely linked to an inference engine.

An active logic consists of a formal language (typically first-order) and inference rules, such that the application of a rule depends not only on what formulas have (or have not) been proven so far (this is also true of static logics) but also on what formulas are in the “current” belief set. Not every previously proven formula need be current. In general the current beliefs are only a subset of all formulas proven so far: each is believed when first proven but some may subsequently have been rejected.

Active Logics all have the following characteristics:

  • They are situated in time
  • They maintain a history
  • They tolerate contradictions
  • They enable meta-reasoning to be done

Based on the above definition, active logics are a family of inference engines that incorporate a history of their own reasoning as they run. Thus at any time t, an active logic has a record of its reasoning at all times prior to t, and it also knows that the current time is t. As it continues to reason from time t, that reasoning is also recorded in the history, marked at time t+1 as having occurred at time t. Thus an active logic records the passage of time in discrete steps, and the “current” time slides forward as the system runs. It is convenient to regard its current inferences as occurring in a working memory, that is then transferred to the history (or long-term memory) in the next time-step. Thus, an active logic has time-sensitive inference rules and consequently time-sensitive inferences.

In active logics the current time is itself noted in the working memory—Now(t)—and this changes to Now(t+1) one step later. (A time-step should be thought of as very fast, perhaps 0.1 sec in correspondence with performance of elementary cognitive tasks by humans). Thus active logics “ground” Now in terms of real time-passage during reasoning.

These characteristics make active logics suitable for use in various domains including time situated planning and execution [Purang, et. al., 1999]; reasoning about other agents [Kraus and Perlis, 1989]; reasoning about dialog [Perlis, et. al., 1998; Traum, et. al., forthcoming], including updating and using discourse context [Gurney, 1997]; and autonomous agency [Chong, et. al., 2001].

You may also look at examples of Active Logic inferences.