| VFS_PAGE_SIZE = n0 + n1, files1[ino2] = mkfile(m1 * VFS_PAGE_SIZE + n1, md0, # links(ino2, dirs), content0), n0 ≠ 0, n1 ≠ 0, root.dir?, dom of < ino3, n1 < VFS_PAGE_SIZE, abs(root, ROOT_INO)(dirs), afs-cons(dirs, files1), afs-cons(dirs, files1[ino2, mkfile(n, md0, # links(ino2, dirs), content0[m1, fill(content0[m1], zero, n1, n0)] upto (m1 * VFS_PAGE_SIZE + n1))]), fids-cons(root, abs-files(files1), abs-of(of)), ispath(path, ROOT_INO, ino2, dirs, files1), of-cons(of, dirs, files1), of-cons (of, dirs, files1[ino2, mkfile(n, md0, # links(ino2, dirs), content0[m1, fill(content0[m1], zero, n1, n0)] upto (m1 * VFS_PAGE_SIZE + n1))]), pw(user, md0), px-parent(user, path, ROOT_INO, dirs, files1), m1 ∈ content0, ino2 ∈ files1, ROOT_INO ∈ dirs, m1 * VFS_PAGE_SIZE + n1 ≤ n, ¬ root[path].dir?, ¬ ino2 ∈ dirs, psynced → asynced0 ⊦ ⟨psynced := ?⟩ ( resize((content0.stream to m1 * VFS_PAGE_SIZE + n1).buf, n) = ((content0[m1, fill(content0[m1], zero, n1, n0)] upto (m1 * VFS_PAGE_SIZE + n1)).stream to n).buf ∧ (psynced → asynced)) |
⊦ buf = buf0 ↔ # buf = # buf0 ∧ (∀ n. n < # buf → buf[n] = buf0[n])
VFS_PAGE_SIZE = n0 + n1, files1[ino2] = mkfile(m1 * VFS_PAGE_SIZE + n1, md0, # links(ino2, dirs), content0), root.dir?, n1 < VFS_PAGE_SIZE, dom of < ino3, abs(root, ROOT_INO)(dirs), afs-cons(dirs, files1[ino2, mkfile(n, md0, # links(ino2, dirs), content0[m1, fill(content0[m1], zero, n1, n0)] upto (m1 * VFS_PAGE_SIZE + n1))]), afs-cons(dirs, files1), fids-cons(root, abs-files(files1), abs-of(of)), ispath(path, ROOT_INO, ino2, dirs, files1), of-cons (of, dirs, files1[ino2, mkfile(n, md0, # links(ino2, dirs), content0[m1, fill(content0[m1], zero, n1, n0)] upto (m1 * VFS_PAGE_SIZE + n1))]), of-cons(of, dirs, files1), pw(user, md0), px-parent(user, path, ROOT_INO, dirs, files1), ROOT_INO ∈ dirs, ino2 ∈ files1, m1 ∈ content0, m1 * VFS_PAGE_SIZE + n1 ≤ n, psynced → asynced0 ⊦ ⟨psynced := ?⟩ ( ( # resize((content0.stream to m1 * VFS_PAGE_SIZE + n1).buf, n) = # ((content0[m1, fill(content0[m1], zero, n1, n0)] upto (m1 * VFS_PAGE_SIZE + n1)).stream to n).buf ∧ (∀ n2. n2 < # resize((content0.stream to m1 * VFS_PAGE_SIZE + n1).buf, n) → resize((content0.stream to m1 * VFS_PAGE_SIZE + n1).buf, n)[n2] = ((content0[m1, fill(content0[m1], zero, n1, n0)] upto (m1 * VFS_PAGE_SIZE + n1)).stream to n).buf[n2])) ∧ (psynced → asynced)), n0 = 0, n1 = 0, root[path].dir?, ino2 ∈ dirs
Used terms: ( ( content0[m1, fill(content0[m1], zero, n1, n0)] upto (m1 * VFS_PAGE_SIZE + n1) ).stream to n ).buf, resize((content0.stream to m1 * VFS_PAGE_SIZE + n1).buf, n)