| dirs[m] = mkdir(0, md1, 0, # subdirs(m, dirs), ∅), dirs[ino] = mkdir(m2, md0, m3, m4, entries), files[ino] = mkfile(m0, md, m1, content), links(m, dirs) = ∅, ino ∈ dirs, m ∈ dirs, ROOT_INO ∈ dirs, ino ∈ dirs ∧ ino ≠ ROOT_INO ∧ links(ino, dirs) = ∅ → entries = ∅, ino ∈ files → ¬ ino ∈ dirs ∧ m1 = # links(ino, dirs), ino ∈ dirs ∧ name ∈ entries → entries[name] ∈ dirs ∨ entries[name] ∈ files, ino ∈ dirs → m3 = # links(ino, dirs) ∧ # links(ino, dirs) ≤ 1 ∧ m2 = # entries ∧ m4 = # subdirs(ino, dirs) ⊦ ino = m, m = ROOT_INO, m ∈ files, m3 = # links(ino, dirs) ∧ # links(ino, dirs) ≤ 1 ∧ m2 = # entries ∧ m4 = # subdirs(ino, dirs -- m) |
dirs[m] = mkdir(0, md1, 0, # subdirs(m, dirs), ∅), dirs[ino] = mkdir(# entries, md0, # links(ino, dirs), # subdirs(ino, dirs), entries), files[ino] = mkfile(m0, md, m1, content), links(m, dirs) = ∅, ino ∈ dirs, m ∈ dirs, ROOT_INO ∈ dirs, # links(ino, dirs) ≤ 1, ino ≠ ROOT_INO ∧ links(ino, dirs) = ∅ → entries = ∅, name ∈ entries → entries[name] ∈ dirs ∨ entries[name] ∈ files ⊦ # subdirs(ino, dirs) = # subdirs(ino, dirs -- m), ino = m, m = ROOT_INO, ino ∈ files, m ∈ files