| ⟨fail#(; ; err)⟩ (err = err0), isdir ↔ isdir0, files1[ino4] = mkfile(m0, md, # links(ino4, dirs), content0), files0[ino4] = mkfile(m, md0, m1, content1), buf-opt = none, buf-opt = buf-opt1, dirs = dirs0, err0 = ESUCCESS, files1 = files0, ino = 0, ino = ino1, ino0 = 0, ino0 = ino3, inode = mkinode(ino4, md, false, # links(ino4, dirs), 0, m0), inode = inode0, pageno = pageno0, afs-cons(dirs0, files0), afs-cons(dirs, files1), files1 ~ files0, ino4 ∈ files1 ⊦ content1.stream from m0 = σ⊥ |
⟨fail#(; ; err)⟩ (err = ESUCCESS), files0[ino4] = mkfile(m, md0, # links(ino4, dirs0), content1), content1.stream from m ≠ σ⊥, afs-cons(dirs0, files0), ino4 ∈ files0 ⊦
Used simplifier rules: ⊦ mkfile(m, md, m0, content) = mkfile(m1, md0, m2, content0) ↔ m = m1 ∧ md = md0 ∧ m0 = m2 ∧ content = content0; (ws)%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% ⊦ files ~ files; (s)