a knowledge base, where a knowledge base is expressed as a logic program under the answer set semantics. In general, one is given a sequence of logic programs
(P1, . . . , Pn) where informally rules in Pi**in some fashion or other take precedence** over rules in Pj for j < i**. However, it isn't clear that such approaches capture a**
notion of revision or update **of logic programs, so much as they capture a notion of**
priority or preference **between rules in a program. Thus such approaches generally**
fail to satisfy properties that would be expected to hold for revision in classical logic. Part of the reason is that revision appears to be intrinsically more difficult in a nonmonotonic setting (such as in ASP) than in a monotonic one, such as in classical logic. We also suggest that part of the problem is that extant approaches enforce a notion of priority at the level of the individual rule; instead we propose that the notion of priority given in a revision is a program level **notion, in that for**
a revision specified as P1 ∗ P2, program P2 **taken as a whole has priority over** P1.

In this paper, an approach to the revision **of logic programs is presented. A**
major goal is to investigate the extent to which AGM-style revision is **compatible**
with an extended logic programming framework. A logic program is regarded as a representation of an agent's epistemic state, while the corresponding answer sets are taken as representing the agent's beliefs. The approach describes revision, in that the postulate of success **is adhered to; the idea is that for a revision of** P1 by P2, beliefs (viz. elements of an answer set) given by P2 **should overrule those in**
P1. This is carried out by first determining 3-valued answer sets of P2**. Each such**
answer set is a pair (X+, X−), where X+ is a regular answer set of P2**, and** X− is a minimum set of negation as failure literals necessary to produce the **answer set**
X+**. The information in each such 3-valued answer set, together with the rules of**
P2 not used in the definition of the answer set, and along with the program P1**, is** used to define an answer set (or answer sets) of P1 ∗ P2.

The assumption of success **leads to an approach with a different emphasis from**
previous approaches. In particular, for the revision of P1 by P2**, the** program P2 is treated as having higher priority than the program P1**; this is in contrast with previous work, wherein the** rules in P2 **are treated as having higher priority than (some**
or all of) the rules in P1**. We suggest that this distinction separates approaches addressing** priorities **in logic programs from** revision**. As well, it leads to an approach**
with better properties than earlier work. For example, the approach is syntax independent, in that if two programs are strongly equivalent, then they behave the same with respect to revision. As well, a prototype has been implemented.

We argue that this approach is an appropriate interpretation for a **notion of**
revision **in logic programs. Furthermore, the approach may be applied in cases**
where a problem is expressed as a sequence of NP-complete problems; for example, it allows the natural specification of a problem in which a 3-colouring of **a graph is**
to be found, followed by a Hamiltonian path among the yellow vertices. **We discuss** these issues in more detail in the next section, after formal preliminaries have been presented. After this, intuitions are given, and the following section presents the formal details and properties of the approach. We conclude with a discussion that includes the applicability of the approach and future work. Proofs are for the most part straightforward, and are abbreviated due to space constraints.