| @(n, ladr.off, ladr.size) ' + lax0.to-adr(n) = ax0 + ax1, ∀ n, ax0, ax1. lax0.to-adr(n) = ax0 + ax1 → (∃ lax2, lax1. lax0 = lax2 + lax1 ∧ ax0 = lax2.to-adr(n) ∧ ax1 = lax1.to-adr(n)), @(n, ladr.off, ladr.size) ∈ ax0 ∨ @(n, ladr.off, ladr.size) ∈ ax1 ⊦ ∃ lax, lax1. ladr ' + lax0 = lax + lax1 ∧ ax0 = lax.to-adr(n) ∧ ax1 = lax1.to-adr(n) |
@(n, m, m0) ' + lax0.to-adr(n) = ax0 + ax1, ladr = @(m, m0), ∀ n, ax0, ax1. lax0.to-adr(n) = ax0 + ax1 → (∃ lax2, lax1. lax0 = lax2 + lax1 ∧ ax0 = lax2.to-adr(n) ∧ ax1 = lax1.to-adr(n)), @(n, m, m0) ∈ ax0 ∨ @(n, m, m0) ∈ ax1 ⊦ ∃ lax, lax1. ladr ' + lax0 = lax + lax1 ∧ ax0 = lax.to-adr(n) ∧ ax1 = lax1.to-adr(n)
Used simplifier rules: ⊦ m = ladr.off ∧ m0 = ladr.size ↔ ladr = @(m, m0); (elim) Used terms: ladr, m, m0