| p_ino ∈ dirs ⊦ ino = ino0, links(ino0, dirs[p_ino, mkdir(m0, md, n, n0, entries[str, ino])]) = (str ∈ entries ∧ entries[str] = ino0 ⊃ links(entries[str], dirs[p_ino, mkdir(m0, md, n, n0, entries)]) -- mklink(p_ino, str) ;links(ino0, dirs[p_ino, mkdir(m0, md, n, n0, entries)]) ) |
entries[str] = ino0, p_ino ∈ dirs, str ∈ entries ⊦ ino = ino0, links(ino0, dirs[p_ino, mkdir(m0, md, n, n0, entries[str, ino])]) = links(entries[str], dirs[p_ino, mkdir(m0, md, n, n0, entries)]) -- mklink(p_ino, str)
p_ino ∈ dirs, ¬ str ∈ entries ∨ entries[str] ≠ ino0 ⊦ ino = ino0, links(ino0, dirs[p_ino, mkdir(m0, md, n, n0, entries[str, ino])]) = links(ino0, dirs[p_ino, mkdir(m0, md, n, n0, entries)])