| n ≤ # lax0, ∀ n, m, m0, m1, m2. n < # lax0 → (lax0.to-adr(m)[n] = @(m0, m1, m2) ↔ (∃ lax2, lax1. lax0 = lax2 + @(m1, m2) ' + lax1 ∧ m0 = m ∧ # lax2 = n)) ∨ lax0 = [], ∃ lax, lax1. @(m3, m4) ' + lax0 = lax + @(m1, m2) ' + lax1 ∧ m0 = m ∧ # lax = n ⊦ (@(m, m3, m4) ' + lax0.to-adr(m))[n] = @(m0, m1, m2) |
@(m3, m4) ' + lax0 = lax1 + @(m1, m2) ' + lax, # lax1 ≤ # lax0, ∀ n, m, m0, m1, m2. n < # lax0 → (lax0.to-adr(m)[n] = @(m0, m1, m2) ↔ (∃ lax2, lax1. lax0 = lax2 + @(m1, m2) ' + lax1 ∧ m0 = m ∧ # lax2 = n)) ∨ lax0 = [], @(m3, m4) ∈ lax1 ∨ @(m3, m4) = @(m1, m2) ∨ @(m3, m4) ∈ lax ⊦ (@(m, m3, m4) ' + lax0.to-adr(m))[# lax1] = @(m, m1, m2)
Used simplifier rules: ⊦ ladr ∈ ladr0 ' + lax ↔ ladr = ladr0 ∨ ladr ∈ lax; (s)% ⊦ ladr ∈ lax + lax0 ↔ ladr ∈ lax ∨ ladr ∈ lax0; (s)%a: ⊦ (lax + lax0) + lax1 = lax + lax0 + lax1; from specification list[laddress-list]%in-14: ⊦ ladr ' + lax = lax0 → ladr ∈ lax0; (forward) from specification list[laddress-list]