| VFS_PAGE_SIZE = n1 + n0, files2[ino4] = mkfile(m2 * VFS_PAGE_SIZE + n0, md, # links(ino4, dirs0), content0), n0 < VFS_PAGE_SIZE, afs-cons (dirs0, files2 [ino4, mkfile(m2 * VFS_PAGE_SIZE + n0, md, # links(ino4, dirs0), content0[m2, fill(content0[m2], zero, n0, n1)] upto (m2 * VFS_PAGE_SIZE + n0)) ]), afs-cons(dirs0, files2), files2 ~ files2 [ino4, mkfile(m2 * VFS_PAGE_SIZE + n0, md, # links(ino4, dirs0), content0[m2, fill(content0[m2], zero, n0, n1)] upto (m2 * VFS_PAGE_SIZE + n0)) ], m2 ∈ content0, ino4 ∈ files2 ⊦ ( (content0.stream to m2 * VFS_PAGE_SIZE) + ((⌜content0[m2]⌝ to n0) + (σ⊥ to n1)) + (content0.stream from VFS_PAGE_SIZE * m2 + VFS_PAGE_SIZE) to VFS_PAGE_SIZE * m2 + VFS_PAGE_SIZE) + σ⊥ from m2 * VFS_PAGE_SIZE + n0 = σ⊥, n0 = 0, n1 = 0 |
⊦ n ∈ content ∧ # content[n] = VFS_PAGE_SIZE → ⌜content[n]⌝ = (content.stream from n * VFS_PAGE_SIZE) to VFS_PAGE_SIZE
# content0[m2] = VFS_PAGE_SIZE, VFS_PAGE_SIZE = n1 + n0, 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, n1)] 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, n1)] upto (m2 * VFS_PAGE_SIZE + n0)) ], ino4 ∈ files2, m2 ∈ content0 ⊦ ( (content0.stream to m2 * VFS_PAGE_SIZE) + (((content0.stream from m2 * VFS_PAGE_SIZE) to VFS_PAGE_SIZE to n0) + (σ⊥ to n1)) + (content0.stream from VFS_PAGE_SIZE * m2 + VFS_PAGE_SIZE) to VFS_PAGE_SIZE * m2 + VFS_PAGE_SIZE) + σ⊥ from m2 * VFS_PAGE_SIZE + n0 = σ⊥, n0 = 0, n1 = 0
Used simplifier rules: ⊦ afs-cons(dirs, files) ∧ ino ∈ files ∧ files[ino] = mkfile(m, md, n0, content) ∧ n ∈ content → # content[n] = VFS_PAGE_SIZE; (s) Used terms: m2, content0