| # buf = VFS_PAGE_SIZE, files[m0] = mkfile(n0, md, # links(m0, dirs), content), n1 < VFS_PAGE_SIZE, F(files -- m0), afs-cons(dirs, files), n ∈ content, m0 ∈ files ⊦ ⌜content[n]⌝ [n1] = (content.stream from n * VFS_PAGE_SIZE)[n1] |
⊦ n < # buf → ⌜buf⌝ [n] = buf[n]
# buf = VFS_PAGE_SIZE, files[m0] = mkfile(n0, md, # links(m0, dirs), content), n1 < VFS_PAGE_SIZE, n1 < # content[n], F(files -- m0), afs-cons(dirs, files), m0 ∈ files, n ∈ content ⊦ content[n][n1] = (content.stream from n * VFS_PAGE_SIZE)[n1]
Used simplifier rules: ⊦ afs-cons(dirs, files) ∧ ino ∈ files ∧ files[ino] = mkfile(m, md, n0, content) ∧ n ∈ content → # content[n] = VFS_PAGE_SIZE; (s)% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ m < n → (n ≤ m ↔ false); (s) Used terms: n1, content[n]