| files[ino] = mkfile(m2, md0, m3, content0), ((files ⊕ pcache) ⊕ icache)[ino] = mkfile(m0, md, m1, content), ino ∈ icache, ino0 ∈ files, ino ∈ files, ino0 ∈ icache ⊦ ((files ⊕ pcache) ⊕ icache)[ino0] = ((files[ino, mkfile(m2, md0, m3, content0[m, buf])] ⊕ pcache[datakey(ino, m), mkpentry(false, buf)]) ⊕ icache)[ino0], ino0 = ino |
⊦ ino ∈ icache ∧ ¬ icache[ino].inode.directory → (files ⊕ icache)[ino] = mkfile(icache[ino].inode.size, icache[ino].inode.meta, icache[ino].inode.nlink, files[ino].content)
((files ⊕ pcache) ⊕ icache)[ino] = mkfile(m0, md, m1, content), files[ino] = mkfile(m2, md0, m3, content0), ino0 ∈ icache, ino ∈ files, ino0 ∈ files, ino ∈ icache ⊦ ((files ⊕ pcache) ⊕ icache)[ino0] = ((files[ino, mkfile(m2, md0, m3, content0[m, buf])] ⊕ pcache[datakey(ino, m), mkpentry(false, buf)]) ⊕ icache)[ino0], ino0 = ino, ino0 ∈ icache ∧ ¬ icache[ino0].inode.directory
((files ⊕ pcache) ⊕ icache)[ino] = mkfile(m0, md, m1, content), files[ino] = mkfile(m2, md0, m3, content0), ino ∈ files, ino0 ∈ files, ino ∈ icache, ino0 ∈ icache ⊦ ((files ⊕ pcache) ⊕ icache)[ino0] = mkfile (icache[ino0].inode.size, icache[ino0].inode.meta, icache[ino0].inode.nlink, (files[ino, mkfile(m2, md0, m3, content0[m, buf])] ⊕ pcache[datakey(ino, m), mkpentry(false, buf)])[ino0].content), ino0 = ino, icache[ino0].inode.directory
Used terms: ino0, icache, files[ino, mkfile(m2, md0, m3, content0[m, buf])] ⊕ pcache[datakey(ino, m), mkpentry(false, buf)]