succ(ontable**(3))** ≡
init(ontable(3)) ∧ ¬[succ(on(3, 1)) ∨ succ(on(3, 2))∨ succ(on(3, **3))]**.

For the complex fluent clear**, its definition yields the following axioms:**
succ(clear(1)) ≡ ¬succ(on(1, 1)) ∧ ¬succ(on(2, 1)) ∧ ¬succ(on(3, 1)), succ(clear(2)) ≡ ¬succ(on(1, 2)) ∧ ¬succ(on(2, 2)) ∧ ¬succ(on(3, 2)), succ(clear(3)) ≡ ¬succ(on(1, 3)) ∧ ¬succ(on(2, 3)) ∧ ¬succ(on(3, 3)).

We can then "solve" these pseudo-successor state axioms and **generate the following successor state axioms:**
succ(on(1, 1)) ≡ false succ(on(1, 2)) ≡ **true** succ(on(1, 3)) ≡ false succ(on(2, 1)) ≡ **false** succ(on(2, 2)) ≡ false succ(on(2, 3)) ≡ init(on(2, 3))
succ(on(3, 1)) ≡ false succ(on(3, 2)) ≡ **false** succ(on(3, 3)) ≡ init(on(3, 3)) succ(ontable(1)) ≡ **false**
succ(ontable(2)) ≡ init(ontable(2)) succ(ontable(3)) ≡ init(ontable**(3))**
succ(clear(1)) ≡ init(clear(1)) succ(clear(2)) ≡ **false** succ(clear(3)) ≡ init(clear**(3))**
Once we have a set of these fully instantiated successor state axioms, we then generate STRIPS-like descriptions like the following:
stack(1, 2)
Preconditions: ontable(1), clear(1), clear(2). Add list: on(1, 2).

Delete list: ontable(1), clear(2). Cond. effects: none. Indet. effects: none.

| stack(1, 3) Preconditions:   | ontable(1), clear(1), clear(3).   |
|------------------------------|-----------------------------------|
| Add list:                    | on(1,3).                          |
| Delete list:                 | ontable(1), clear(3).             |
| Cond. effects:               | none.                             |
| Indet. effects: none.        |                                   |
