| ⟨fail#(; ; err)⟩ ( ino = ino1 ∧ ino0 = ino3 ∧ (isdir ↔ isdir0) ∧ pageno = pageno0 ∧ buf-opt = buf-opt1 ∧ files1 = files0 ∧ dirs = dirs0 ∧ inode = inode0 ∧ err = ESUCCESS), files1[ino4] = mkfile(m0, md, # links(ino4, dirs), content0), files0[ino4] = mkfile(m, md0, m1, content1), buf-opt = none, ino = 0, ino0 = 0, inode = mkinode(ino4, md, false, # links(ino4, dirs), 0, m0), afs-cons(dirs0, files0), afs-cons(dirs, files1), files1 ~ files0, ino4 ∈ files1, n0 ≤ # buf ⊦ ino4 ∈ files0 ∧ m = m0 |
Used simplifier rules: ⊦ files ~ files; (s)%afs-cons-file-nlink: ⊦ afs-cons(dirs, files) ∧ ino ∈ files ∧ files[ino] = mkfile(m, md, n, content) → # links(ino, dirs) = n; (forward) from specification afs-base%⊦ mkfile(m, md, m0, content) = mkfile(m1, md0, m2, content0) ↔ m = m1 ∧ md = md0 ∧ m0 = m2 ∧ content = content0; (ws)