| VFS_PAGE_SIZE = n0 + n1, files1[ino2] = mkfile(m1 * VFS_PAGE_SIZE + n1, md0, # links(ino2, dirs), content0), root.dir?, n3 < VFS_PAGE_SIZE, dom of < ino3, n1 < VFS_PAGE_SIZE, m1 * VFS_PAGE_SIZE + n3 < n, 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, psynced0 → asynced0 ⊦ (n1 ≤ n3 ⊃ zero;content0[m1][n3]) = fill(content0[m1], zero, n1, n0)[n3], n0 = 0, n1 = 0, root[path].dir?, ino2 ∈ dirs |
⊦ n < # buf → fill(buf, d, m0, m1)[n] = (m0 ≤ n ∧ n < m0 + m1 ⊃ d;buf[n])
Used simplifier rules: ⊦ afs-cons(dirs, files) ∧ ino ∈ files ∧ files[ino] = mkfile(m, md, n0, content) ∧ n ∈ content → # content[n] = VFS_PAGE_SIZE; (s)%c: ⊦ m + n = n + m; from specification nat-basic% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ m < n → (n ≤ m ↔ false); (s) Used terms: n3, n0, n1, zero, content0[m1]