| # links(m, dirs) = files[m].nlink, VFS_PAGE_SIZE = n1 + m2 % VFS_PAGE_SIZE, of[fd] = mkfile(m, mode, m0), files1[m] = mkfile(m2, md0, files[m].nlink, content0), dirs0 = dirs, err0 = ESUCCESS, ino = 0, afs-cons (dirs, files1[m, mkfile(m2, md0, files[m].nlink, content0[m2 / VFS_PAGE_SIZE, fill(content0[m2 / VFS_PAGE_SIZE], zero, m2 % VFS_PAGE_SIZE, n1)] upto m2)]), afs-cons(dirs, files1), of-cons(of, dirs, files1), m ∈ files1, m2 / VFS_PAGE_SIZE ∈ content0, fd ∈ of, m ∈ files, n0 ≤ # buf0 ⊦ m2 % VFS_PAGE_SIZE = 0, n0 = 0, (m ∈ dirs ⊃ true ; ( VFS_PAGE_SIZE ≠ 0 ∧ m2 % VFS_PAGE_SIZE + n1 ≤ # content0[m2 / VFS_PAGE_SIZE] ∧ (m2 / VFS_PAGE_SIZE ∈ content0 ∧ VFS_PAGE_SIZE ≠ 0) ∧ VFS_PAGE_SIZE ≠ 0) ∧ ( VFS_PAGE_SIZE ≠ 0 ∧ m2 % VFS_PAGE_SIZE + n1 ≤ # content0[m2 / VFS_PAGE_SIZE] ∧ (m2 / VFS_PAGE_SIZE ∈ content0 ∧ VFS_PAGE_SIZE ≠ 0) ∧ VFS_PAGE_SIZE ≠ 0) ∧ VFS_PAGE_SIZE ≠ 0 ∧ m2 % VFS_PAGE_SIZE + n1 ≤ # content0[m2 / VFS_PAGE_SIZE] ∧ (m2 / VFS_PAGE_SIZE ∈ content0 ∧ VFS_PAGE_SIZE ≠ 0) ∧ VFS_PAGE_SIZE ≠ 0 ), mode ≠ MODE_W ∧ mode ≠ MODE_RW |
Used simplifier rules: ⊦ m < n → ¬ n < m; (s)%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic% ⊦ m ≤ n ↔ ¬ n < m; (ss)% ⊦ VFS_PAGE_SIZE ≠ 0; (s)%⊦ afs-cons(dirs, files) ∧ ino ∈ files ∧ files[ino] = mkfile(m, md, n0, content) ∧ n ∈ content → # content[n] = VFS_PAGE_SIZE; (s)%⊦ of-cons(of, dirs, files) ∧ fd ∈ of ∧ of[fd] = mkfile(ino, mode, n) ∧ afs-cons(dirs, files) → ¬ ino ∈ dirs; (s)