| 0 = as0.size, adr ∈ as0, ∀ adr. adr ∈ as0 → adr.size = 0, ∀ as1. # as1 < #(as0 ++ @(m, m0, 0)) → true → (0 = as1.size ↔ (∀ adr. adr ∈ as1 → adr.size = 0)) ⊦ # as0 = 0, adr.size = 0, as0 = ∅, @(m, m0, 0) ∈ as0 |
0 = as0.size, adr = @(m1, m2, m3), adr ∈ as0, ∀ adr. adr ∈ as0 → adr.size = 0, ∀ as1. # as1 < #(as0 ++ @(m, m0, 0)) → true → (0 = as1.size ↔ (∀ adr. adr ∈ as1 → adr.size = 0)) ⊦ # as0 = 0, as0 = ∅, m3 = 0, @(m, m0, 0) ∈ as0
Used simplifier rules: ⊦ (m = adr.lnum ∧ m0 = adr.pos) ∧ m1 = adr.size ↔ adr = @(m, m0, m1); (elim) Used terms: adr, m1, m2, m3