| lax0.to-adr(m)[n - # @(m, m3, m4) '] = @(m0, m1, m2), 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 = [] ⊦ n < # @(m, m3, m4) ', ∃ lax, lax1. @(m3, m4) ' + lax0 = lax + @(m1, m2) ' + lax1 ∧ m0 = m ∧ # lax = n |
lax0.to-adr(m)[n - 1] = @(m0, m1, m2), 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 = [] ⊦ n = 0, ∃ lax, lax1. @(m3, m4) ' + lax0 = lax + @(m1, m2) ' + lax1 ∧ m0 = m ∧ # lax = n
Used simplifier rules: ⊦ m < 1 ↔ m = 0; (s)% ⊦ # adr ' = 0 +1; (s)