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