| ⟨content[pageno] := fill(files2[ino4].content[pageno], zero, n0, VFS_PAGE_SIZE - n0); buf-opt := some(fill(files2[ino4].content[pageno], zero, n0, VFS_PAGE_SIZE - n0))⟩ (pageno = pageno1 ∧ fill(files2[ino4].content[pageno], zero, n0, VFS_PAGE_SIZE - n0) = buf0 ∧ content = content2 ∧ buf-opt = buf-opt0), files2[ino4] = mkfile(m2 * VFS_PAGE_SIZE + n0, md, # links(ino4, dirs0), content0), buf-opt = none, content = content0, pageno = m2, n0 < VFS_PAGE_SIZE, afs-cons(dirs0, files2), afs-cons(dirs0, files2[ino4, mkfile(m2 * VFS_PAGE_SIZE + n0, md, # links(ino4, dirs0), content2 upto (m2 * VFS_PAGE_SIZE + n0))]), files2 ~ files2[ino4, mkfile(m2 * VFS_PAGE_SIZE + n0, md, # links(ino4, dirs0), content2 upto (m2 * VFS_PAGE_SIZE + n0))], ino4 ∈ files2, m2 ∈ content0, pageno ∈ files2[ino4].content, n0 + (VFS_PAGE_SIZE - n0) ≤ # files2[ino4].content[pageno], VFS_PAGE_SIZE ≥ n0 ⊦ (content2.stream to VFS_PAGE_SIZE * m2 + VFS_PAGE_SIZE) + σ⊥ from m2 * VFS_PAGE_SIZE + n0 = σ⊥, n0 = 0 |
⟨buf-opt := some(fill(files2[ino4].content[pageno], zero, n0, VFS_PAGE_SIZE - n0))⟩ ( pageno = pageno1 ∧ fill(files2[ino4].content[pageno], zero, n0, VFS_PAGE_SIZE - n0) = buf0 ∧ content[pageno, fill(files2[ino4].content[pageno], zero, n0, VFS_PAGE_SIZE - n0)] = content2 ∧ buf-opt = buf-opt0), files2[ino4] = mkfile(m2 * VFS_PAGE_SIZE + n0, md, # links(ino4, dirs0), content0), buf-opt = none, content = content0, pageno = m2, n0 < VFS_PAGE_SIZE, afs-cons(dirs0, files2[ino4, mkfile(m2 * VFS_PAGE_SIZE + n0, md, # links(ino4, dirs0), content2 upto (m2 * VFS_PAGE_SIZE + n0))]), afs-cons(dirs0, files2), files2 ~ files2[ino4, mkfile(m2 * VFS_PAGE_SIZE + n0, md, # links(ino4, dirs0), content2 upto (m2 * VFS_PAGE_SIZE + n0))], m2 ∈ content0, ino4 ∈ files2, pageno ∈ files2[ino4].content, n0 + (VFS_PAGE_SIZE - n0) ≤ # files2[ino4].content[pageno], VFS_PAGE_SIZE ≥ n0 ⊦ (content2.stream to VFS_PAGE_SIZE * m2 + VFS_PAGE_SIZE) + σ⊥ from m2 * VFS_PAGE_SIZE + n0 = σ⊥, n0 = 0