| # buf0 = # buf1, files[ino] = mkfile(m, md, # links(ino, dirs), content), afs-cons(dirs, files), read-inv(n0, n1, buf0, buf1, n, content), ino ∈ files, n0 + n ≤ n1, n0 + n ≤ m, n1 ≤ # buf1 + n0, n ≤ # buf1 ⊦ copy((content.stream to m).buf, n0, buf0, 0, n) = buf1 |
⊦ read-inv(n0, n1, buf0, buf1, n, content) ↔ ⌜buf1⌝ = ((content.stream from n0) to n) + (⌜buf0⌝ from n)
# buf0 = # buf1, files[ino] = mkfile(m, md, # links(ino, dirs), content), ⌜buf1⌝ = ((content.stream from n0) to n) + (⌜buf0⌝ from n), afs-cons(dirs, files), ino ∈ files, n ≤ # buf1, n1 ≤ # buf1 + n0, n0 + n ≤ m, n0 + n ≤ n1 ⊦ copy((content.stream to m).buf, n0, buf0, 0, n) = buf1
Used terms: content, n, buf1, buf0, n1, n0