| # buf = VFS_PAGE_SIZE, files[m0] = mkfile(m1, md0, # links(m0, dirs), content), ((m0 =>mkfile(n0, md, m, σ) * F))(files), afs-cons(dirs, files), m0 ∈ files ⊦ [asynced := ?] ∃ content0. ((m0 => mkfile(n0, md, m, content0) * F))(files[m0, mkfile(m1, md0, # links(m0, dirs), content[n, buf])]) ∧ content0.stream = (σ to n * VFS_PAGE_SIZE) + ⌜buf⌝ + (σ from VFS_PAGE_SIZE * n + VFS_PAGE_SIZE) |
⊦ ((ino =>mkfile(n, md, m, σ) * F))(files) ↔ (∃ content. ((ino => mkfile(n, md, m, content) * F))(files) ∧ content.stream = σ)
# buf = VFS_PAGE_SIZE, files[m0] = mkfile(m1, md0, # links(m0, dirs), content), afs-cons(dirs, files), m0 ∈ files, ∃ content. ((m0 => mkfile(n0, md, m, content) * F))(files) ∧ content.stream = σ ⊦ [asynced := ?] ∃ content0. ((m0 => mkfile(n0, md, m, content0) * F))(files[m0, mkfile(m1, md0, # links(m0, dirs), content[n, buf])]) ∧ content0.stream = (σ to n * VFS_PAGE_SIZE) + ⌜buf⌝ + (σ from VFS_PAGE_SIZE * n + VFS_PAGE_SIZE)
Used terms: files, F, σ, m, md, n0, m0