| 0 = m1, dirs[m] = mkdir(m0, md, m1, m2, entries), afs-cons(dirs, files), m ∈ dirs ⊦ m = ROOT_INO, dirs \ orphans(dirs, files) = (dirs -- m) \ orphans(dirs -- m, files) ∧ files \ orphans(dirs, files) = files \ orphans(dirs -- m, files) |
# links(m, dirs) = 0, dirs[m] = mkdir(m0, md, 0, m2, entries), afs-cons(dirs, files), m ∈ dirs ⊦ m = ROOT_INO, dirs \ orphans(dirs, files) = (dirs -- m) \ orphans(dirs -- m, files) ∧ files \ orphans(dirs, files) = files \ orphans(dirs -- m, files)
Used simplifier rules: ⊦ mkdir(m, md, m0, m1, entries).nlink = m0; (s)% ⊦ afs-cons(dirs, files) ∧ ino ∈ dirs → ¬ ino ∈ files; (s)%⊦ afs-cons(dirs, files) → ( links(ino, dirs) = ∅ ↔ (ino ∈ dirs → dirs[ino].nlink = 0) ∧ (ino ∈ files → files[ino].nlink = 0)); (ws)%size-zero-02: ⊦ # ls = 0 → ls = ∅; (forward) from specification set-basic[alink-set]%afs-cons-dir-nlink: ⊦ afs-cons(dirs, files) ∧ ino ∈ dirs ∧ dirs[ino] = mkdir(n0, md, n, n1, entries) → # links(ino, dirs) = n; (forward) from specification afs-base