| n1 ≤ # lax0 + 1, ∀ n0, n1, n. n0 + n1 ≤ # lax0 → sublist(n0, n1, lax0.to-adr(n)) = sublist(n0, n1, lax0).to-adr(n) ⊦ sublist(0, n1, @(n, m, m0) ' + lax0.to-adr(n)) = sublist(0, n1, @(m, m0) ' + lax0).to-adr(n) |
⊦ # ax ≤ m → sublist(0, m, ax + ax0) = ax + sublist(0, m - # ax, ax0)
n1 ≤ # lax0 + 1, # @(n, m, m0) ' ≤ n1, ∀ n0, n1, n. n0 + n1 ≤ # lax0 → sublist(n0, n1, lax0.to-adr(n)) = sublist(n0, n1, lax0).to-adr(n) ⊦ @(n, m, m0) ' + sublist(0, n1 - # @(n, m, m0) ', lax0.to-adr(n)) = sublist(0, n1, @(m, m0) ' + lax0).to-adr(n)
Used simplifier rules: adrs-empty: ⊦ ([]).to-adr(n) = [];% ⊦ # adr ' = 0 +1; (s)% ⊦ m ≤ n ↔ ¬ n < m; (ss)% ⊦ m < 1 ↔ m = 0; (s)% ⊦ sublist(0, 0, ax) = []; (s)% ⊦ sublist(0, 0, lax) = []; (s) Used terms: lax0.to-adr(n), @(n, m, m0) ', n1