| pcache[datakey(m, n)] = mkpentry(false, buf), files[ino0] = mkfile(m0, md, m1, content), n * VFS_PAGE_SIZE < m2, datakey(m, n) ∈ pcache, ino0 ∈ files0, ∀ ino. ino ≠ m ∧ ino ∈ files0 → mkfile(files[ino].size, files[ino].meta, files[ino].nlink, files[ino].content ⊕ mkcontent(ino, pcache)) = mkfile(files0[ino].size, files0[ino].meta, files0[ino].nlink, files0[ino].content ⊕ mkcontent(ino, pcache0)) ∧ ino ∈ files ⊦ ino0 = m, mkfile(m0, md, m1, content ⊕ mkcontent(ino0, pcache)) = mkfile(files0[ino0].size, files0[ino0].meta, files0[ino0].nlink, files0[ino0].content ⊕ mkcontent(ino0, pcache0)) ∧ ino0 ∈ files |
files[ino0] = mkfile(m0, md, m1, content), pcache[datakey(m, n)] = mkpentry(false, buf), files0[ino0] = mkfile(m3, md0, m4, content0), n * VFS_PAGE_SIZE < m2, ino0 ∈ files0, datakey(m, n) ∈ pcache, ∀ ino. ino ≠ m ∧ ino ∈ files0 → mkfile(files[ino].size, files[ino].meta, files[ino].nlink, files[ino].content ⊕ mkcontent(ino, pcache)) = mkfile(files0[ino].size, files0[ino].meta, files0[ino].nlink, files0[ino].content ⊕ mkcontent(ino, pcache0)) ∧ ino ∈ files ⊦ ino0 = m, mkfile(m0, md, m1, content ⊕ mkcontent(ino0, pcache)) = mkfile(m3, md0, m4, content0 ⊕ mkcontent(ino0, pcache0)) ∧ ino0 ∈ files
Used simplifier rules: ⊦ ((m = af.size ∧ md = af.meta) ∧ m0 = af.nlink) ∧ content = af.content ↔ af = mkfile(m, md, m0, content); (elim) Used terms: files0[ino0], m3, md0, m4, content0