| # buf0 = # buf1, files[ino] = mkfile(m, md, # links(ino, dirs), content), ⌜buf1⌝ = ((content.stream from n0) to n) + (⌜buf0⌝ from n), n2 < # buf1, afs-cons(dirs, files), ino ∈ files, n0 + n ≤ n1, n0 + n ≤ m, n1 ≤ # buf1 + n0, n ≤ # buf1 ⊦ (n ≤ n2 ⊃ buf0[n2];getbyte(n2 + n0, content)) = buf1[n2] |
⊦ σ = σ2 ↔ # σ = # σ2 ∧ (∀ n. ⌜n⌝ < # σ → σ[n] = σ2[n])
# ⌜buf1⌝ = #(((content.stream from n0) to n) + (⌜buf0⌝ from n)), # buf0 = # buf1, files[ino] = mkfile(m, md, # links(ino, dirs), content), n2 < # buf1, afs-cons(dirs, files), ino ∈ files, n ≤ # buf1, n1 ≤ # buf1 + n0, n0 + n ≤ m, n0 + n ≤ n1, ∀ n1. ⌜n1⌝ < # ⌜buf1⌝ → ⌜buf1⌝ [n1] = (((content.stream from n0) to n) + (⌜buf0⌝ from n))[n1] ⊦ (n ≤ n2 ⊃ buf0[n2];getbyte(n2 + n0, content)) = buf1[n2]
Used terms: ((content.stream from n0) to n) + (⌜buf0⌝ from n), ⌜buf1⌝