| n0 + n1 ≤ #(ladr + lax0), ∀ n0, n1, n. n0 + n1 ≤ # lax0 → sublist(n0, n1, lax0.to-adr(n)) = sublist(n0, n1, lax0).to-adr(n) ⊦ sublist(n0, n1, (ladr + lax0).to-adr(n)) = sublist(n0, n1, ladr + lax0).to-adr(n) |
n0 + n1 ≤ # lax0 + 1, ∀ n0, n1, n. n0 + n1 ≤ # lax0 → sublist(n0, n1, lax0.to-adr(n)) = sublist(n0, n1, lax0).to-adr(n) ⊦ sublist(n0, n1, @(n, ladr.off, ladr.size) ' + lax0.to-adr(n)) = sublist(n0, n1, ladr ' + lax0).to-adr(n)
Used simplifier rules: adrs-rec: ⊦ (ladr ' + lax).to-adr(n) = @(n, ladr.off, ladr.size) + lax.to-adr(n);% ⊦ m +1 = m + 1; (s)% ⊦ #(ladr ' + lax) = (# lax)+1; (s)%a: ⊦ (lax + lax0) + lax1 = lax + lax0 + lax1; from specification list[laddress-list]% ⊦ adr + ax = adr ' + ax; (s)% ⊦ ladr + lax = ladr ' + lax; (s)