| # buf0 = VFS_PAGE_SIZE, files1[ino0] = mkfile(m5, md1, m6, content0), files1[m] = mkfile(m0, md, m1, content), pcache[datakey(m, n)] = mkpentry(true, buf0), files0[ino0] = mkfile(m5, md1, m6, content1), (content0 ⊕ mkcontent(ino0, pcache))[n0] = (content1 ⊕ mkcontent(ino0, pcache0))[n0], n * VFS_PAGE_SIZE < m2, n0 ∈ content0 ⊕ mkcontent(ino0, pcache[datakey(m, n), mkpentry(false, buf0)]), m ∈ files1, datakey(m, n) ∈ pcache, ino0 ∈ files0, ino0 ∈ files1, n0 ∈ content0 ⊕ mkcontent(ino0, pcache), n0 ∈ content1 ⊕ mkcontent(ino0, pcache0), ∀ n. (n ∈ content0 ⊕ mkcontent(ino0, pcache) ↔ n ∈ content1 ⊕ mkcontent(ino0, pcache0)) ∧ (n ∈ content0 ⊕ mkcontent(ino0, pcache) → (content0 ⊕ mkcontent(ino0, pcache))[n] = (content1 ⊕ mkcontent(ino0, pcache0))[n]), ∀ ino. ino ≠ m ∧ ino ∈ files0 → mkfile(files1[ino].size, files1[ino].meta, files1[ino].nlink, files1[ino].content ⊕ mkcontent(ino, pcache)) = mkfile(files0[ino].size, files0[ino].meta, files0[ino].nlink, files0[ino].content ⊕ mkcontent(ino, pcache0)) ∧ ino ∈ files1 ⊦ (content0 ⊕ mkcontent(ino0, pcache[datakey(m, n), mkpentry(false, buf0)]))[n0] = (content1 ⊕ mkcontent(ino0, pcache0))[n0], ino0 = m |
⊦ n ∈ content1 → (content0 ⊕ content1)[n] = content1[n]
# buf0 = VFS_PAGE_SIZE, (content0 ⊕ mkcontent(ino0, pcache))[n0] = (content1 ⊕ mkcontent(ino0, pcache0))[n0], files0[ino0] = mkfile(m5, md1, m6, content1), pcache[datakey(m, n)] = mkpentry(true, buf0), files1[m] = mkfile(m0, md, m1, content), files1[ino0] = mkfile(m5, md1, m6, content0), n * VFS_PAGE_SIZE < m2, n0 ∈ content1 ⊕ mkcontent(ino0, pcache0), n0 ∈ content0 ⊕ mkcontent(ino0, pcache), ino0 ∈ files1, ino0 ∈ files0, datakey(m, n) ∈ pcache, m ∈ files1, n0 ∈ content0 ⊕ mkcontent(ino0, pcache[datakey(m, n), mkpentry(false, buf0)]), ∀ ino. ino ≠ m ∧ ino ∈ files0 → mkfile(files1[ino].size, files1[ino].meta, files1[ino].nlink, files1[ino].content ⊕ mkcontent(ino, pcache)) = mkfile(files0[ino].size, files0[ino].meta, files0[ino].nlink, files0[ino].content ⊕ mkcontent(ino, pcache0)) ∧ ino ∈ files1, ∀ n. (n ∈ content0 ⊕ mkcontent(ino0, pcache) ↔ n ∈ content1 ⊕ mkcontent(ino0, pcache0)) ∧ (n ∈ content0 ⊕ mkcontent(ino0, pcache) → (content0 ⊕ mkcontent(ino0, pcache))[n] = (content1 ⊕ mkcontent(ino0, pcache0))[n]) ⊦ (content0 ⊕ mkcontent(ino0, pcache[datakey(m, n), mkpentry(false, buf0)]))[n0] = (content1 ⊕ mkcontent(ino0, pcache0))[n0], ino0 = m, n0 ∈ mkcontent(ino0, pcache[datakey(m, n), mkpentry(false, buf0)])
# buf0 = VFS_PAGE_SIZE, (content0 ⊕ mkcontent(ino0, pcache))[n0] = (content1 ⊕ mkcontent(ino0, pcache0))[n0], files0[ino0] = mkfile(m5, md1, m6, content1), pcache[datakey(m, n)] = mkpentry(true, buf0), files1[m] = mkfile(m0, md, m1, content), files1[ino0] = mkfile(m5, md1, m6, content0), n * VFS_PAGE_SIZE < m2, n0 ∈ content1 ⊕ mkcontent(ino0, pcache0), n0 ∈ content0 ⊕ mkcontent(ino0, pcache), ino0 ∈ files1, ino0 ∈ files0, datakey(m, n) ∈ pcache, m ∈ files1, n0 ∈ content0 ⊕ mkcontent(ino0, pcache[datakey(m, n), mkpentry(false, buf0)]), n0 ∈ mkcontent(ino0, pcache[datakey(m, n), mkpentry(false, buf0)]), ∀ ino. ino ≠ m ∧ ino ∈ files0 → mkfile(files1[ino].size, files1[ino].meta, files1[ino].nlink, files1[ino].content ⊕ mkcontent(ino, pcache)) = mkfile(files0[ino].size, files0[ino].meta, files0[ino].nlink, files0[ino].content ⊕ mkcontent(ino, pcache0)) ∧ ino ∈ files1, ∀ n. (n ∈ content0 ⊕ mkcontent(ino0, pcache) ↔ n ∈ content1 ⊕ mkcontent(ino0, pcache0)) ∧ (n ∈ content0 ⊕ mkcontent(ino0, pcache) → (content0 ⊕ mkcontent(ino0, pcache))[n] = (content1 ⊕ mkcontent(ino0, pcache0))[n]) ⊦ mkcontent(ino0, pcache[datakey(m, n), mkpentry(false, buf0)])[n0] = (content1 ⊕ mkcontent(ino0, pcache0))[n0], ino0 = m
Used terms: n0, mkcontent(ino0, pcache[datakey(m, n), mkpentry(false, buf0)]), content0