| ∀ m, m0, m1, n. @(m, m0, m1) ∈ lax0.to-adr(n) ↔ m = n ∧ @(m0, m1) ∈ lax0 ⊦ @(m, m0, m1) ∈ (ladr + lax0).to-adr(n) ↔ m = n ∧ @(m0, m1) ∈ ladr + lax0 |
∀ m, m0, m1, n. @(m, m0, m1) ∈ lax0.to-adr(n) ↔ m = n ∧ @(m0, m1) ∈ lax0 ⊦ @(m, m0, m1) = @(n, ladr.off, ladr.size) ∨ @(m, m0, m1) ∈ lax0.to-adr(n) ↔ m = n ∧ (@(m0, m1) = ladr ∨ @(m0, m1) ∈ lax0)
Used simplifier rules: adrs-rec: ⊦ (ladr ' + lax).to-adr(n) = @(n, ladr.off, ladr.size) + lax.to-adr(n);% ⊦ ladr ∈ ladr0 ' + lax ↔ ladr = ladr0 ∨ ladr ∈ lax; (s)%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]% ⊦ adr ∈ adr0 ' + ax ↔ adr = adr0 ∨ adr ∈ ax; (s)%a: ⊦ (lax + lax0) + lax1 = lax + lax0 + lax1; from specification list[laddress-list]% ⊦ adr + ax = adr ' + ax; (s)% ⊦ ladr + lax = ladr ' + lax; (s)