| # x = # lax, # x0 = # lax0, st0[m] = mkblock(x, lax, m2), st1[m] = mkblock(x0, lax0, m3), @(m0, m1) ∈ lax, m ∈ st0, m ∈ st1, x ⊑ x0, lax ⊑ lax0, ∀ n. n ∈ st0 → n ∈ st1 ⊦ x[pos(@(m0, m1), lax)] = st1[@(m, m0, m1)] |
⊦ ladr ∈ lax ↔ (∃ lax0, lax1. lax = lax0 + ladr ' + lax1 ∧ ¬ ladr ∈ lax0)
# x0 = # lax0, # x = # lax, st1[m] = mkblock(x0, lax0, m3), st0[m] = mkblock(x, lax, m2), m ∈ st1, m ∈ st0, lax ⊑ lax0, x ⊑ x0, ∀ n. n ∈ st0 → n ∈ st1, ∃ lax0, lax1. lax = lax0 + @(m0, m1) ' + lax1 ∧ ¬ @(m0, m1) ∈ lax0 ⊦ x[pos(@(m0, m1), lax)] = st1[@(m, m0, m1)]
Used terms: lax, @(m0, m1)