<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Global Caching, Inverse Roles and Fixpoint Logics</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Rajeev Gor´e</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Logic and Computation Group College of Engineering and Computer Science The Australian National University Canberra ACT 0200</institution>
          ,
          <country country="AU">Australia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>I will begin by explaining an optimal tableau-based algorithm for checking ALC-satisfiability which uses “global caching” and which appears to work well in practice. The algorithm settles a conjecture that “global caching can lead to optimality”. I will then explain how “global caching” can be extended to “global state caching” for inverse roles, thereby extending the result to ALCI-satisfiability, and converse roles in general. Finally, I will explain how “global caching” can be used to give optimal “on the fly” tableau decision procedures for some fixpoint logics. Finally, some open questions. The talk is intended to be expository so it will be at a fairly high level.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        This overview is based on joint work with Linh Anh Nguyen [
        <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
        ], Linda
Postniece [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and Florian Widmann [
        <xref ref-type="bibr" rid="ref11 ref12">12, 11</xref>
        ].
      </p>
      <p>
        The tableau method is a very general method for automated reasoning and
has been widely applied for modal logics [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and description logics [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Tableau
methods usually come in two flavours as we explain shortly. Both methods build
a rooted tree with some leaves duplicating ancestors, thereby giving cycles.
Because the same node may be explored on multiple branches, tableau algorithms
are typically suboptimal w.r.t. the known theoretical bounds for many logics. For
example, the traditional tableau method for ALC can require double-exponential
time even though the decision problem is known to be exptime-complete.
      </p>
      <p>
        For fixpoint logics like PLTL, CTL and PDL, optimal tableau methods are
possible if we proceed in stages with the first stage building a cyclic graph,
and subsequent stages pruning nodes from the graph until no further pruning is
possible or until the root node is pruned [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Optimality can also be obtained
if we construct the set of all subsets of the Fischer-Ladner closure of the given
initial formula [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. But these methods can easily require exponential time even
when it is not necessary. Indeed, the method of Fischer and Ladner will always
require exponential time since it must first construct the set of all subsets of a
set whose size is usually linear in the size of the given formula.
      </p>
      <p>Thus a long-standing open problem in tableau methods for modal,
description, and fixpoint logics has been to find an optimal and “on the fly” method
for checking satisfiability which only requires exponential time when it is
really necessary. We describe such tableau methods for each of the logics ALC,
ALCI, and PDL, but before doing so, we clarify some terminology and ask the
expert reader to bear with us. In particular, we leave the actual search strategy
unspecified even though depth-first search is often used in practice.</p>
      <p>A tableau is a tree of nodes where the children of a node are created by
applying a tableau rule to the parent and where each node contains a finite set
of formulae. We refer to these formulae as the “contents” of a node, noting that
the term “label” is also used to mean the same thing. Thus a label is not a name
for a Kripke world as in some formulations of “labelled tableaux”. The ancestors
of a node are simply the nodes on the unique path from the root to that node.</p>
      <p>A leaf node is “closed” when it can be deemed to be unsatisfiable, usually
because it contains an obvious contradiction like p and ¬p. A leaf is “open” when
it can be deemed to be satisfiable, usually when no rule is applicable to it, but
also when further rule applications are guaranteed to give an infinite branch. A
branch is closed/open if its leaf is closed/open. The aim of course is to use these
classifications to determine whether the root node is satisfiable or unsatisfiable.
But the tableau used in modal logics and those used in description logics are
dual in a sense which is explained next.</p>
      <p>
        Traditional Beth Tableaux are Or-trees. Traditional modal tableaux a la` Beth [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
are or-trees in that branches are caused by disjunctions only. Each
“existential/diamond” formula in a node causes the creation of a “successor world”,
fulfilling that formula. But such successors of a given node are created and
explored one at a time, using backtracking, until one of them is closed, meaning
that there is no explicit trace of previously explored “open” successors in any
single tableau. This or-tree perspective makes sense when the goal is to find a
closed tableau since we must close both disjuncts of a disjunction but need close
only one “existential/diamond”-successor. A closed tableau implies that the root
node is unsatisfiable, but an open tableau does not imply satisfiability since a
different existential/diamond choice may give a closed tableau. It is only after all
such “and-choices” have been shown to be open that we can assert satisfiability.
We can summarise this view by writing the associated rules as below where we
use | for or-branching and use “;” for set union:
(∨) :
Traditional Description Logic Tableaux are And-trees. The tableaux used in
description logics are usually and-trees in that branches are caused by
existential/diamond formulae only. Each disjunctive formula causes the creation of a
child, one at a time, using backtracking, until one child is open, meaning that
there is no explicit trace of previously explored “closed” or-children in any
single tableau. This and-tree perspective makes sense when the goal is to find a
Kripke model that satisfies the given formula set since we must satisfy every
existential/diamond formula in a node but need to satisfy only one disjunct of
a disjunction. A particular and-tree is usually called a “run” and the different
or-choices give rise to multiple runs. The task is to find one single run in which
all (and-)branches are open since this implies that the root is satisfiable. But a
run in which some (and-)branch is closed does not imply unsatisfiability since a
different or-choice may give an open run. It is only after all or-choices (i.e. runs)
have been shown to be closed that we can assert unsatisfiability. We can
summarise this view by writing the associated rules as below where we deliberately
use || to flag and-branching and put Xi = {D : ∀Ri.D ∈ X} for 1 ≤ i ≤ n, to
save some horizontal space:
(∨) :
Summary Thus, in both types of tableaux, the overall search space is really
an and-or tree: traditional modal (Beth) tableaux display only the or-related
branches and explore the and-related branches using backtracking while
description logic tableaux do the reverse. The key to our main result is to unify these
two views by taking a global view which considers tableaux as and-or trees
rather than as or-tree or and-trees. We can summarise this view by writing the
associated rules as below using both or-branching and and-branching:
(∨) :
Termination via Blocking/Loop-checking. Under certain circumstances, both
types of tableau can contain infinite branches because the same node appears
again and again on the same branch. To obtain termination, most tableau
methods employ a “loop check” or “blocking technique” [
        <xref ref-type="bibr" rid="ref13 ref2">13, 2</xref>
        ]. The simplest is called
“ancestor equality blocking” where we stop expansion of a branch when a node
duplicates an ancestor (on the same branch). A variation called “ancestor
subset blocking” is to stop expansion if a node is a subset of an ancestor (on the
same branch). Note that blocking is merely a device for termination: the a priori
logical status of the blocked node is “unknown” rather than satisfiable or
unsatisfiable. Nevertheless, in certain logics, we can classify such nodes as satisfiable,
as explained next.
      </p>
      <p>
        For most (non fix-point) modal and description logics, ancestor cycles are
“good” in that a branch ending with a node blocked by an ancestor can be
soundly deemed to be satisfiable. In modal tableau, such a branch will cause
backtracking to a higher node where a different and-choice can be made in the
hope of finding a choice that closes its branch. In description logic tableau, such a
branch will cause no backtracking. In description logic tableaux, where branches
are all and-branches, a further refinement called “anywhere blocking” [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is also
possible where a node can be blocked by a node which lies on a different
(previously created) and-branch of the same run, although extra conditions are usually
required to ensure soundness. Thus in both types of tableaux for simple logics,
a blocked node is immediately classified as open even though its logical status
is “unknown” rather than satisfiable.
Caching. Even with all of these blocking refinements, the naive (description
logic or modal) tableau method for checking whether a concept/formula C is
satisfiable w.r.t. a TBox T leads to a double-exponential time (2exptime)
algorithm because each tableau branch may have an exponential length, meaning
that the method may explore a double-exponential number of nodes. To counter
this, some authors have investigated the idea of remembering (“caching”) the
satisfiable or unsatisfiable status of previously seen nodes in a look-up table [
        <xref ref-type="bibr" rid="ref4 ref5">5,
4</xref>
        ]. Then, when a new tableau node is created, we first check whether this node
already has a status of satisfiable or unsatisfiable in the cache, and attach that
same status to the new node. For most logics we can refine this to the following,
assuming that the current node has content X: if the cache contains a node with
content Y ⊇ X (respectively X ⊆ Y ) and Y has status satisfiable (unsatisfiable)
then the current node is given the status satisfiable (unsatisfiable).
Differences Between Blocking and Caching. Note the difference between
blocking and caching: the status of a blocking node must be either satisfiable or
unknown/open, but cannot be unsatisfiable/closed, while the status of a cached
node must be known as either unsatisfiable or as satisfiable, but cannot be
unknown/open. Moreover, a blocking node must be in the same and-tree while a
cached node is stored in an external data structure which sits outside the tableau
under construction. As a consequence, it is much easier to prove the soundness
of blocking than of caching.
      </p>
      <p>Global Caching. Now consider the following notion of “global caching” where
each tableau node contains (is labelled with) a unique set of formulae:
Global caching: each tableau node is processed at most once in the search space.
Our notion of global caching is an immediate foundation for an exptime
procedure if the search space contains at most an exponential number of different
nodes and as long as the “processing” at each node requires at most exponential
time, both with respect to the size of the given problem. Moreover, it can replace
all of the previously mentioned notions of equality-blocking and caching
simultaneously because it does not rely on knowing the satisfiability or unsatisfiability
status of the cached nodes viz:
Ancestor equality blocking occurs if the ancestor (with unknown status) is the
first occurrence of the repeating node in the whole search space, otherwise,
even the ancestor would not have been re-created but would have been
replaced by a cache-hit to its first occurrence (with status unknown);
Anywhere equality blocking occurs without the extra conditions required by the
existing methods for the same reasons;
Caching occurs automatically since a previously seen node whose status is known
as unsatisfiable or satisfiable must have been processed, so it will never be
processed again.
wwooooodoonoeooooooo rt
Given a TBox T and a concept/formula D, both in negation normal form, our
method searches for an model which satisfies D w.r.t. T by building an and-or
graph G with root node τ containing T ∪ {D}.</p>
      <p>A node in the constructed and-or graph is a record with three attributes:
content: the set of concepts/formulae carried by the node
status: {unexpanded, expanded, sat, unsat}
kind: {and-node, or-node, leaf-node}</p>
      <p>The root node has initial status unexpanded and our method constructs the
and-or graph using a traditional strategy explained shortly. But we interleave
this generation strategy with a propagation phase which propagates the status
of a node throughout the graph. We explain each in turn.</p>
      <p>
        Our strategy for building the and-or graph applies the rules for
decomposing ⊓ and ⊔ repeatedly until they are no longer applicable to give a “saturated”
node x, and then applies the ∃-rule which creates a child node for x
containing T ∪ {C} ∪ {D | ∀r.D ∈ x} for each ∃r.C ∈ x. The addition of the TBox T
to such a child is a naive way to handle TBoxes but suffices for our needs. We
now saturate any such child to obtain a saturated node y, then apply the ∃-rule
to y, and so on, until we find a contradiction, or find a repeated node, or find a
saturated node which contains no ∃-formulae. For uniformity with our method
for the extensions to inverse roles and PDL, we explore/expand children in a
left to right depth-first manner, although any search strategy can be used for
ALC [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. All nodes are initially given a status of unexpanded.
      </p>
      <p>An application of ⊔ to a node v causes v to be an or-node, while an
application of ⊓ or (∃R) to a node v causes v to be an and-node. Notice that our method
uses the (∨) and (∃) rules which use both or-branching and and-branching as
summarised in Section 1. The crucial difference from traditional tableau methods
is that we create the required child in the graph G only if it does not yet exist in
the graph: this step therefore uses global caching. Notice that the required child
need not be an ancestor but can exist on any previous branch of the tableau. For
example, as shown in Figure 1, suppose the current node is x and that the rule
applied to x generates a node y′ which duplicates y. The node y′ is not put into
G, but y becomes the child of x instead. Thus, G is really a rooted and-or tree
with cross-branch edges to nodes on previously created branches like that from
x to y or from v to u, or edges to ancestors like that from w to z. The problem
of course is to show that this remains sound.</p>
      <p>The propagation phase begins whenever we determine the status of a node
as either unsat or sat as explained next.</p>
      <p>A generated node that contains both A and ¬A for some atomic formula A
becomes a leaf-node with status unsat (i.e. unsatisfiable w.r.t. T ). A generated
node to which no tableau rule is applicable becomes a leaf-node with status
sat (i.e. satisfiable w.r.t. T ). Both conclusions are irrevocable because each
relies only on classical propositional principles and not on modal principles.
We therefore propagate this information to the parent node v using the kind
(or-node/and-node) of v and the status of the children of v, treating unsat as
irrevocably false and sat as irrevocably true. That is, an or-node gets status
sat as soon as one of its children gets status sat, and gets status unsat when
all of its children get status unsat. Dually for and-nodes. In particular, it does
not matter whether the parent-child edge is a cross-branch edge or whether it is
a traditional top-down edge. If these steps cannot determine the status as sat
or unsat, then the rule application sets the status to expanded and we return
to the generation phase.</p>
      <p>The main loop ends when the status of the initial node τ becomes sat or
unsat, or when no node has status unexpanded. In the last case, all nodes
with status 6= unsat are given status sat (effectively giving the status “open”
to tableau branches which loop to an ancestor) and this status is propagated
through the graph to obtain the status of the root node as either unsat or sat.</p>
      <p>
        This algorithms thus uses both caching and propagation techniques and runs
in exptime [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
3
      </p>
    </sec>
    <sec id="sec-2">
      <title>Overview for Inverse Roles: ALCI</title>
      <p>Recall that the standard strategy for rule applications in tableau algorithms is
to apply the rules for decomposing ⊓ and ⊔ repeatedly until they are no longer
applicable, giving a “saturated” node which contains only atoms, negated atoms,
∀-formulae and ∃-formulae. Let us call such a “saturated” node a state and call
the other nodes prestates. Thus the only rule applicable to a state x is the ∃-rule
which creates a node containing T ∪ {C} ∪ {D | ∀r.D ∈ x} for each ∃r.C ∈ x.
The standard strategy will now saturate any such child to obtain a state y, then
apply the ∃-rule to y, and so on, until we find a contradiction, or find a repeated
node, or find a state which contains no ∃-formulae. Let us call x the parent state
of y since all intervening nodes are not states.
(a)
x
ps0
psk</p>
      <p>∃r.C
z
toosmall
({E | ∀r`.E ∈ z} \ x) ∈ altx</p>
      <p>∃r.C
(b)
x
ps0
psk
z
y
(c)
x</p>
      <p>∃r.C
ps0
psk
z EVEVEEVEVEV""VVVVVVVVVVVV++ yn+/zn
y y1+/z1 · · ·</p>
      <p>When inverse roles are present, we require that {E | ∀r`.E ∈ y} ⊆ x, since y
is then compatible with being an r-successor of x in the putative model under
construction. If some ∀r`.E ∈ y has E ∈/ x then x is “too small”, and must be
enlarged into an alternative node x+ by adding all such E. If any such E is a
complex formula then the alternative node x+ is not “saturated”, and hence not
a state. So we must saturate it using the ⊓/⊔-rules until we reach a state. That
is, a state x may conceptually be “replaced” by an alternative prestate x+ which
is an enlargement of x, and which may have to be saturated further in order to
reach a state.</p>
      <p>Our algorithm handles these “alternatives” by introducing a new type of
node called a special node, introducing a new type of status called toosmall,
allowing states to contain a field alt for storing these alternatives, and ensuring
that a state always has a special node as its parent. When we need to replace a
state x by its alternatives, the special node above x extracts these alternatives
from the altx field and creates the required alternative nodes as explained next.</p>
      <p>Referring to Fig. 2, suppose state x has an r-successor prestate ps0, and
further saturation of ps0 leads to prestate psk, and an application of an ⊓/⊔-rule
to pk will give a state y. Instead of directly creating y, we create a special node z
which carries the same set of formulae as would y, and make z a child of psk. We
now check whether z is compatible with its parent state x by checking whether
{E | ∀r`.E ∈ z} ⊆ x. If z is not compatible then we mark z as toosmall, and
add {E | ∀r`.E ∈ z} \ x to the set of alternative sets contained in altx, without
creating y, as shown in Fig. 2(a). If z is compatible with x, we create a state y
if it does not already exist, and make the new/old y a child of z, as in Fig. 2(b).</p>
      <p>Suppose that y is compatible with x and that either y is already toosmall
or becomes so later because of some descendant state w of y. In either case,
the attribute alty then contains a number of sets y1, y2, . . . , yn (say), and the
toosmall status of y is propagated to the special node z. In response, z will
create the alternatives y1+, y2+, . . . , yn+ for y with yi+ := y ∪ yi. If yi+ is a state
then our algorithm will create a special node zi below z, and if zi is compatible
with x then y+ will be created or retrieved and will become the child of zi
as in (b) else iyi+ will not be created and zi will be marked as toosmall as
in (a). If yi+ is not a state then it will be created as a direct prestate child of z.
Figure 2(c) captures this by using yi+/zi to stand for either yi+ or zi. Each of
these new non-special nodes will eventually be expanded by our algorithm but
now the “lapsed” special node z will be treated as a ⊔-node.</p>
      <p>Global State Caching. The complexities introduced by alternative nodes makes
it difficult to use global caching so instead we use “global state caching”: that
is, the saturation phase is allowed to re-create prestates that occur on previous
branches, but states cannot be duplicated so we must use cross-branch edges to
their previous incarnations.</p>
      <p>
        The resulting algorithm runs in exptime [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
4
      </p>
    </sec>
    <sec id="sec-3">
      <title>Overview for PDL</title>
      <p>Our algorithm starts at a root containing a given formula φ and builds an
andor tree in a depth-first and left to right manner to try to build a model for φ.
The rules are based on the semantics of PDL and either add formulae to the
current world using Smullyan’s α/β rules from Table 1, or create a new world
in the underlying model and add the appropriate formulae to it. For a node x,
the attribute Γx carries this set of formulae.</p>
      <p>The strategy for rule applications is the usual one where we “saturate” a node
using the α/β-rules until they are no longer applicable, giving a “state” node s,
and then, for each haiξ in s, we create an a-successor node containing {ξ} ∪ Δ,
where Δ = {ψ | [a]ψ ∈ s}. These successors are saturated to produce new states
using the α/β-rules, and we create the successors of these new states, and so on.</p>
      <p>
        Our strategy can produce infinite branches as the same node can be created
repeatedly on the same branch. We therefore “block” a node from being created
if this node exists already on any previous branch, thereby using global caching
again, but now nodes are required to contain “focused sets of formulae” [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
For example, in Fig. 3, if the node y′ already exists in the tree, say as node y,
then we create a “backward” edge from x to y (as shown) and do not create y′.
If y′ does not duplicate an existing node then we create y′ and add a “forward”
edge from x to y′. The distinction between “forward” and “backward” edges
is important for the proofs. Thus our tableau is a tree of forward edges, with
backward edges that either point upwards from a node to a “forward-ancestor”,
or point leftwards from one branch to another. Cycles can arise only via backward
edges to a forward-ancestor.
      </p>
      <p>Our tableau must “fulfil” every formula of the form hδiϕ in a node but only
eventualities, defined as those where δ contains ∗-connectives, cause problems.
If hδiϕ is not an eventuality, the α/β-rules reduce the size of the principal
formula, ensuring fulfilment. If hδiϕ is an eventuality, the main problem is the
wwooooodoonoeooooooo rt
β-rule for formulae of the form hγ∗iϕ. Its left child reduces hγ∗iϕ to a strict
subformula ϕ, but the right child “reduces” it to hγihγ∗iϕ. If the left child is always
inconsistent, this rule can “procrastinate” an eventuality hγ∗iϕ indefinitely and
never find a world which makes ϕ true. This non-local property must be checked
globally by tracking eventualities.</p>
      <p>Consider Fig. 3, and suppose the current node x contains an eventuality ex.
We distinguish three cases. The first is that some path from x fulfils ex in the
existing tree. Else, the second case is that some path from x always procrastinates
the fulfilment of ex and hits a forward-ancestor of x on the current branch: e.g.
the path x, y, v, u, w, z. The forward-ancestor z contains some “reduction” ez
of ex. The path from the root to the current node x contains the only currently
existing nodes which may need further expansion, and may allow z to fulfil ez
at a later stage, and hence fulfil ex. We call the pair (z, ez) a “potential rescuer”
of ex in Γx. The only remaining case is that ex ∈ Γx is unfulfilled, has no potential
rescuers, and hence can never become fulfilled later, so x can be “closed”. The
machinery to distinguish these three cases and compute, if needed, all currently
existing potential rescuers of every eventuality in Γx is described next.</p>
      <p>A tableau node x also contains a status stsx. The value of stsx is the constant
closed if the node x is closed. Otherwise, the node is “open” and stsx contains a
α ϕ ∧ ψ [γ ∪ δ]ϕ [γ∗]ϕ hψ?iϕ hγ; δiϕ [γ; δ]ϕ
α1 ϕ [γ]ϕ ϕ ϕ hγihδiϕ [γ][δ]ϕ
α2 ψ [δ]ϕ [γ][γ∗]ϕ ψ
β ϕ ∨ ψ hγ ∪ δiϕ hγ∗iϕ [ψ?]ϕ
β1 ϕ hγiϕ ϕ ϕ
β2 ψ hδiϕ hγihγ∗iϕ ∼ ψ
function prs which maps each eventuality ex ∈ Γx to ⊥ or to a set of pairs (v, e)
where v is a forward-ancestor of x and e is an eventuality. The status of a node is
determined from those of its children once they have all been processed. A closed
child’s status is propagated as usual, but the propagation of the function prs from
open children is more complicated. The intuition is that we must preserve the
following invariant for each eventuality ex ∈ Γx:
if ex is fulfilled in the tree to the left of the path from the root to the
node x then prsx(ex) := ⊥, else prsx(ex) is exactly the set of all potential
rescuers of ex in the current tableau.</p>
      <p>An eventuality ex ∈ Γx whose prsx(ex) becomes the empty set can never become
fulfilled later, so stsx := closed, thus covering the three cases as desired.</p>
      <p>Whenever a node n gets a status closed, we interrupt the depth-first and
leftto-right traversal and invoke a separate procedure which explicitly propagates
this status transitively throughout the and-or graph rooted at n. For example,
if z gets closed then so will its backward-parent w, which may also close u and
so on. This propagation (update) may break the invariant for some eventuality e
in this subgraph by interrupting the path from e to a node that fulfils e or to a
potential rescuer of e. We must therefore ensure that the propagation (update)
procedure re-establishes the invariant in these cases by changing the appropriate
prs entries. At the end of the propagation (update) procedure, we resume the
usual depth-first and left-to-right traversal of the tree by returning the status
of n to its forward-parent. This “on-the-fly” nature guarantees that unfulfilled
eventualities are detected as early as possible.</p>
      <p>
        Our algorithm terminates, runs in exptime, and formula φ is satisfiable iff
the root is open [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Conclusions and Further Work</title>
      <p>
        We have shown that global caching can indeed be formalised in the description
of tableaux algorithms in a sound manner to give an exptime algorithm for
checking satisfiability w.r.t. a TBox in ALC [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Our experimental results show
that global caching is competitive with mixed caching for ALC [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. We have
extended this method using global state caching to give an exptime algorithm
for checking satisfiability w.r.t. a TBox in ALCI [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. We have also extended
this method to give an exptime algorithm for checking satisfiability in PDL [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
Both methods have been implemented and experimental results show that they
are feasible for non-trivial sized formulae. Further work is required to add
optimisations to make these methods practical on large examples and to extend
them to more expressive logics like SHOIQ, CTL and the modal mu-calculus.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>F</given-names>
            <surname>Baader</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M</given-names>
            <surname>Buchheit</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B</given-names>
            <surname>Hollunder</surname>
          </string-name>
          .
          <article-title>Cardinality restrictions on concepts</article-title>
          .
          <source>Artificial Intelligence</source>
          ,
          <volume>88</volume>
          (
          <issue>1-2</issue>
          ):
          <fpage>195</fpage>
          -
          <lpage>213</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>F</given-names>
            <surname>Baader</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D</given-names>
            <surname>Calvanese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D L</given-names>
            <surname>McGuinness</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D</given-names>
            <surname>Nardi</surname>
          </string-name>
          , and P Patel-Schneider, editors.
          <source>The Description Logic Handbook: Theory, Implementation and Applications</source>
          . Cambridge University Press, Cambridge, England,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>E W</given-names>
            <surname>Beth</surname>
          </string-name>
          .
          <article-title>On Padoa's method in the theory of definition</article-title>
          . Indag. Math.,
          <volume>15</volume>
          :
          <fpage>330</fpage>
          -
          <lpage>339</lpage>
          ,
          <year>1953</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Ding</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Haarslev</surname>
          </string-name>
          .
          <article-title>Tableau caching for description logics with inverse and transitive roles</article-title>
          .
          <source>In Proc. DL-2006: International Workshop on Description Logics</source>
          , pages
          <fpage>143</fpage>
          -
          <lpage>149</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>F.</given-names>
            <surname>Donini</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Massacci</surname>
          </string-name>
          .
          <article-title>EXPTIME tableaux for ALC</article-title>
          .
          <source>Artificial Intelligence</source>
          ,
          <volume>124</volume>
          :
          <fpage>87</fpage>
          -
          <lpage>138</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Fischer</surname>
          </string-name>
          and
          <string-name>
            <given-names>R. E.</given-names>
            <surname>Ladner</surname>
          </string-name>
          .
          <article-title>Propositional dynamic logic of regular programs</article-title>
          .
          <source>Journal of Computer and Systems Science</source>
          ,
          <volume>18</volume>
          :
          <fpage>194</fpage>
          -
          <lpage>211</lpage>
          ,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>R.</given-names>
            <surname>Gor</surname>
          </string-name>
          <article-title>´e. Tableau methods for modal and temporal logics</article-title>
          . In D'Agostino et al, editor,
          <source>Handbook of Tableau Methods</source>
          , pages
          <fpage>297</fpage>
          -
          <lpage>396</lpage>
          . Kluwer,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>R</given-names>
            <surname>Gor</surname>
          </string-name>
          <article-title>´e and L A Nguyen</article-title>
          .
          <article-title>EXPTIME tableaux for ALC using sound global caching</article-title>
          .
          <source>In Proc. DL-07</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>R</given-names>
            <surname>Gor</surname>
          </string-name>
          <article-title>´e and L A Nguyen</article-title>
          .
          <article-title>EXPTIME tableaux with global caching for description logics with transitive roles, inverse roles and role hierarchies</article-title>
          .
          <source>In Proc. TABLEAUX07</source>
          , volume
          <volume>4548</volume>
          <source>of LNCS</source>
          , pages
          <fpage>133</fpage>
          -
          <lpage>148</lpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. R Gor´e and
          <string-name>
            <given-names>L</given-names>
            <surname>Postniece</surname>
          </string-name>
          .
          <article-title>An experimental evaluation of global caching for ALC (system description)</article-title>
          . In P Baumgartner, editor,
          <source>Proc. IJCAR-2008</source>
          , volume LNCS
          <volume>5195</volume>
          , pages
          <fpage>299</fpage>
          -
          <lpage>305</lpage>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. R Gor´e and
          <string-name>
            <given-names>F</given-names>
            <surname>Widmann</surname>
          </string-name>
          .
          <article-title>An optimal on-the-fly tableau-based decision procedure for PDL-satisfiability</article-title>
          .
          <source>In Proc. CADE-2009</source>
          . Springer,
          <year>2009</year>
          . to appear.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. R Gor´e and
          <string-name>
            <given-names>F</given-names>
            <surname>Widmann</surname>
          </string-name>
          .
          <article-title>Sound global state caching for ALC with inverse roles</article-title>
          .
          <source>In Proc. TABLEAUX-2009</source>
          . Springer,
          <year>2009</year>
          . to appear.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>A</given-names>
            <surname>Heuerding</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M</given-names>
            <surname>Seyfried</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H</given-names>
            <surname>Zimmermann</surname>
          </string-name>
          .
          <article-title>Efficient loop-check for backward proof search in some non-classical logics</article-title>
          .
          <source>In Tableaux 96: Proceedings of Theorem Proving with Analytic Tableaux and Related Methods, LNAI</source>
          <volume>1071</volume>
          :
          <fpage>210</fpage>
          -
          <lpage>225</lpage>
          . Springer,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Vaughan</surname>
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Pratt</surname>
          </string-name>
          .
          <article-title>A near-optimal method for reasoning about action</article-title>
          .
          <source>Journal of Computer and System Sciences</source>
          ,
          <volume>20</volume>
          (
          <issue>2</issue>
          ):
          <fpage>231</fpage>
          -
          <lpage>254</lpage>
          ,
          <year>1980</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>