| files2[ino4] = mkfile(m2 * VFS_PAGE_SIZE + n0, md, # links(ino4, dirs0), content0), content[pageno, fill(files2[ino4].content[pageno], zero, n0, VFS_PAGE_SIZE - n0)] = content2, buf-opt = none, content = content0, fill(files2[ino4].content[pageno], zero, n0, VFS_PAGE_SIZE - n0) = buf0, pageno = m2, pageno = pageno1, some(fill(files2[ino4].content[pageno], zero, n0, VFS_PAGE_SIZE - n0)) = buf-opt0, 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 |
files2[ino4] = mkfile(m2 * VFS_PAGE_SIZE + n0, md, # links(ino4, dirs0), content0), n0 < VFS_PAGE_SIZE, afs-cons(dirs0, files2), afs-cons (dirs0, files2 [ino4, mkfile (m2 * VFS_PAGE_SIZE + n0, md, # links(ino4, dirs0), content0[m2, fill(content0[m2], zero, n0, VFS_PAGE_SIZE - n0)] upto (m2 * VFS_PAGE_SIZE + n0)) ]), files2 ~ files2 [ino4, mkfile (m2 * VFS_PAGE_SIZE + n0, md, # links(ino4, dirs0), content0[m2, fill(content0[m2], zero, n0, VFS_PAGE_SIZE - n0)] upto (m2 * VFS_PAGE_SIZE + n0)) ], ino4 ∈ files2, m2 ∈ content0 ⊦ (content0[m2, fill(content0[m2], zero, n0, VFS_PAGE_SIZE - n0)].stream to VFS_PAGE_SIZE * m2 + VFS_PAGE_SIZE) + σ⊥ from m2 * VFS_PAGE_SIZE + n0 = σ⊥, n0 = 0
Used simplifier rules: ⊦ m ≤ m; (s)%⊦ afs-cons(dirs, files) ∧ ino ∈ files ∧ files[ino] = mkfile(m, md, n0, content) ∧ n ∈ content → # content[n] = VFS_PAGE_SIZE; (s)% ⊦ mkfile(m, md, m0, content).content = content; (s)%fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat%c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic% ⊦ n < m → (m - n) + n = m; (s)% ⊦ m < n → m ≤ n; (s)% ⊦ n ≥ m ↔ m ≤ n; (s)