| @(n, m, m2) ' + lax1.to-adr(n) = lax.to-adr(n) + @(n, m0, m1) ', ladr = @(m, m2), ∀ n, lax, m0, m1. lax1.to-adr(n) = lax.to-adr(n) + @(n, m0, m1) ' ∧ @(m0, m1) ∈ lax1 → lax1 = lax + @(m0, m1) ', @(n, m0, m1) = @(n, m, m2) ∨ @(n, m0, m1) ∈ lax1.to-adr(n), @(n, m, m2) ∈ lax.to-adr(n) ∨ @(n, m, m2) = @(n, m0, m1), @(m0, m1) = ladr ∨ @(m0, m1) ∈ lax1 ⊦ ladr ' + lax1 = lax + @(m0, m1) ' |
@(n, m, m2) ' + lax1.to-adr(n) = lax.to-adr(n) + @(n, m0, m1) ', ∀ n, lax, m0, m1. lax1.to-adr(n) = lax.to-adr(n) + @(n, m0, m1) ' ∧ @(m0, m1) ∈ lax1 → lax1 = lax + @(m0, m1) ', @(n, m0, m1) = @(n, m, m2) ∨ @(n, m0, m1) ∈ lax1.to-adr(n), @(m0, m1) = @(m, m2) ∨ @(m0, m1) ∈ lax1, @(n, m, m2) ∈ lax.to-adr(n) ∨ @(n, m, m2) = @(n, m0, m1) ⊦ @(m, m2) ' + lax1 = lax + @(m0, m1) '
Used simplifier rules: ⊦ adr ∈ adr0 ' + ax ↔ adr = adr0 ∨ adr ∈ ax; (s)% ⊦ adr ∈ adr0 ' ↔ adr = adr0; (s)% ⊦ adr ∈ ax + ax0 ↔ adr ∈ ax ∨ adr ∈ ax0; (s)%in-15: ⊦ ax + adr ' = ax0 → adr ∈ ax0; (forward) from specification list[address-list-set]%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]%in-14: ⊦ adr ' + ax = ax0 → adr ∈ ax0; (forward) from specification list[address-list-set]