| dom of < ino1, afs-cons(dirs, files), ispath(p, ROOT_INO, ino0, dirs, files), of-cons(of, dirs, files), px-parent(user, p, ROOT_INO, dirs, files), n ∈ of[ino1, mkfile(ino0, mode, 0)], n ∈ of, of[n].ino ∈ files, ino0 ∈ files ⊦ of[ino1, mkfile(ino0, mode, 0)][n].ino ∈ files, ino0 ∈ dirs, (mode = MODE_W ∨ mode = MODE_RW) ∧ ¬ pw(user, files[ino0].meta), (mode = MODE_R ∨ mode = MODE_RW) ∧ ¬ pr(user, files[ino0].meta) |
files[ino0] = mkfile(m, md, m0, content), dom of < ino1, afs-cons(dirs, files), ispath(p, ROOT_INO, ino0, dirs, files), of-cons(of, dirs, files), px-parent(user, p, ROOT_INO, dirs, files), ino0 ∈ files, of[n].ino ∈ files, n ∈ of, n ∈ of[ino1, mkfile(ino0, mode, 0)] ⊦ ino0 ∈ dirs, of[ino1, mkfile(ino0, mode, 0)][n].ino ∈ files, (mode = MODE_R ∨ mode = MODE_RW) ∧ ¬ pr(user, md), (mode = MODE_W ∨ mode = MODE_RW) ∧ ¬ pw(user, md)
Used simplifier rules: ⊦ ((m = af.size ∧ md = af.meta) ∧ m0 = af.nlink) ∧ content = af.content ↔ af = mkfile(m, md, m0, content); (elim) Used terms: files[ino0], m, md, m0, content