| files[m0] = mkfile(m1, md0, m2, content), icache[m] = mkientry(true, mkinode(m0, md, false, m2, 0, m3)), icache-cons(icache, dirs, files), m ∈ icache, m0 ∈ files ⊦ (files ⊕ pcache) ⊕ icache = (files[m0, mkfile(m3, md, m2, content)] ⊕ pcache) ⊕ icache[m, mkientry(false, mkinode(m0, md, false, m2, 0, m3))] |
⊦ files = files0 ↔ (∀ ino. (ino ∈ files ↔ ino ∈ files0) ∧ (ino ∈ files → files[ino] = files0[ino]))
icache[m] = mkientry(true, mkinode(m0, md, false, m2, 0, m3)), files[m0] = mkfile(m1, md0, m2, content), icache-cons(icache, dirs, files), m0 ∈ files, m ∈ icache ⊦ ∀ ino. ( ino ∈ (files ⊕ pcache) ⊕ icache ↔ ino ∈ (files[m0, mkfile(m3, md, m2, content)] ⊕ pcache) ⊕ icache[m, mkientry(false, mkinode(m0, md, false, m2, 0, m3))]) ∧ ( ino ∈ (files ⊕ pcache) ⊕ icache → ((files ⊕ pcache) ⊕ icache)[ino] = ((files[m0, mkfile(m3, md, m2, content)] ⊕ pcache) ⊕ icache[m, mkientry(false, mkinode(m0, md, false, m2, 0, m3))])[ino])
Used terms: (files[m0, mkfile(m3, md, m2, content)] ⊕ pcache) ⊕ icache[m, mkientry(false, mkinode(m0, md, false, m2, 0, m3))], (files ⊕ pcache) ⊕ icache