| a ∈ s0 ++ a0, ∀ a, st, d, b. a ∈ s0 → # s0 = 0 ∨ st[a, d][b] = st[b] ∨ s0 = ∅ ∨ b ∈ s0 ⊦ #(s0 ++ a0) = 0, s0 ++ a0 = ∅, st[a, d][b] = st[b], b ∈ s0 ++ a0 |
a ∈ s0, ∀ a1, st0, d0, b0. a1 ∈ s0 → st0[a1, d0][b0] = st0[b0] ∨ b0 ∈ s0 ⊦ # s0 = 0, #(s0 ++ a0) = 0, st[a, d][b] = st[b], a = a0, b = a0, s0 = ∅, b ∈ s0
Used simplifier rules: size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic%ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic% ⊦ a ≠ b → st[b, d][a] = st[a]; (s)%size-zero: ⊦ # s ≠ 0 → s ≠ ∅; (forward) from specification set-basic% ⊦ a ∈ s ++ b ↔ a = b ∨ a ∈ s; (s)% ⊦ ∅ ≠ s ++ a; (s)