An Iterative Algorithm for Synthesizing Invariants

We present a general algorithm for synthesizing state invari- ants that speed up automated planners and have other appli- cations in reasoning about change. Invariants are facts that hold in all states that are reachable from an initial state by the application of a number of operators. In contrast to ear- lier work, we recognize the fact that establishing an invari- ant may require considering other invariants, and this in turn seems to require viewing synthesis of invariants as fixpoint computation. Also, the algorithm is not inherently restricted to invariants of particular syntactic forms. In this paper we introduce a new algorithm for computing invariants. The algorithm is iterative like mutex computa- tion in Graphplan (Blum & Furst 1997) and the algorithm by Rintanen (1998) (both of which use a ground representa- tion of operators), operates on a schematic representation of operators, and generalizes earlier techniques. The algorithm is motivated by an inductive definition of invariants as for- mulae that are true in the initial state and are preserved by the application of every operator. Less general (and in re- stricted cases more efficient) algorithms can be obtained by specializing the general algorithm. For schemata that represent 2-literal ground invariants we show that the algorithm is efficient. In this case - like with universally quantified invariants in general - the algorithm is strictly stronger than earlier algorithms combined. In- variants with more than two literals are often useful, but the conditions for inferring non-disjunctive facts (literals) from -literal invariants for high are very strict because atomic facts have to be inferred first, so short invariants seem to be the most important ones. Extensions like existential quantification and types can be handled within the algorithm by supplying new subprocedures to the main procedure. No changes in the main procedure are needed.