For each of these action instances, we need to go through Steps 2.1 and 2.2. For instance, for stack(1, 2), there is only one effect axiom about on(1, 2):
Effect(stack(1, 2), true, on(1, 2)),
and the following causal rules about on(1, 2):
Causes(on(1, 1), ¬on(1, 2)), Causes(on(1, 3), ¬on(1, 2)), Causes(on(2, 2), ¬on(1, 2)), Causes(on(3, 2), ¬on(1, 2)), Causes(ontable(1), ¬on(1, 2)).

Therefore Step 2.1 generates the following pseudo-successor state axiom for on(1, 2):
succ(on(1, 2)) ≡ **true** ∨
init(on(1, 2)) ∧ ¬[succ(on(1, 1))∨ succ(on(1, 3)) ∨
succ(on(2, 2))∨ succ(on(3, 2)∨ succ(ontable**(1))]**.

We can similarly generate the following pseudo-successor state axioms for the other primitive fluent atoms:
succ(on(1, 1)) ≡ init(on(1, 1)) ∧ ¬[succ(on(1, 2))∨ succ(on(1, 3))∨
succ(on(2, 1))∨ succ(on(3, 1)∨ succ(ontable**(1))]**,
succ(on(1, 3)) ≡ init(on(1, 3)) ∧ ¬[succ(on(1, 1))∨ succ(on(1, 2))∨
succ(on(2, 3))∨ succ(on(3, 3))∨ succ(ontable**(1))]**,
succ(on(2, 1)) ≡ init(on(2, 1)) ∧ ¬[succ(on(1, 1))∨ succ(on(3, 1))∨
succ(on(2, 2))∨ succ(on(2, 3))∨ succ(ontable**(2))]**,
succ(on(2, 2)) ≡ init(on(2, 2)) ∧ ¬[succ(on(1, 2))∨ succ(on(1, 3))∨
succ(on(2, 1) ∨ succ(on(2, 3))∨ succ(ontable**(2))]**,
succ(on(2, 3)) ≡ init(on(2, 3)) ∧ ¬[succ(on(1, 3))∨ succ(on(3, 3))∨
succ(on(2, 1) ∨ succ(on(2, 2))∨ succ(ontable**(2))]**,
succ(on(3, 1)) ≡ init(on(3, 1)) ∧ ¬[succ(on(3, 2))∨ succ(on(3, 3))∨
succ(on(1, 1) ∨ succ(on(1, 3))∨ succ(ontable**(1))]**,
succ(on(3, 2)) ≡ init(on(3, 2)) ∧ ¬[succ(on(3, 1))∨ succ(on(3, 3))∨
succ(on(1, 2) ∨ succ(on(2, 2))∨ succ(ontable**(2))]**,
succ(on(3, 3)) ≡ init(on(3, 3)) ∧ ¬[succ(on(3, 1))∨ succ(on(3, 2))∨
succ(on(1, 3) ∨ succ(on(2, 3))∨ succ(ontable**(3))]**,
succ(ontable**(1))** ≡
init(ontable(1)) ∧ ¬[succ(on(1, 2)) ∨ succ(on(1, 1))∨ succ(on(1, **3))]**,
succ(ontable**(2))** ≡
init(ontable(2)) ∧ ¬[succ(on(2, 1)) ∨ succ(on(2, 2))∨ succ(on(2, **3))]**,