| ⊦ (alink.pino = ino ∨ alink.pino ∈ dirs) ∧ alink.name ∈ (alink.pino = ino ⊃ mkdir(m, md, n, n0, ∅);(dirs ++ ino)[alink.pino]).entries ∧ ino0 = (alink.pino = ino ⊃ mkdir(m, md, n, n0, ∅);(dirs ++ ino)[alink.pino]).entries[alink.name] ↔ alink.pino ∈ dirs ∧ alink.name ∈ dirs[alink.pino].entries ∧ ino0 = dirs[alink.pino].entries[alink.name], ino = 0, ino ∈ dirs |
alink = mklink(m0, str) ⊦ (m0 = ino ∨ m0 ∈ dirs) ∧ str ∈ (m0 = ino ⊃ mkdir(m, md, n, n0, ∅);(dirs ++ ino)[m0]).entries ∧ ino0 = (m0 = ino ⊃ mkdir(m, md, n, n0, ∅);(dirs ++ ino)[m0]).entries[str] ↔ m0 ∈ dirs ∧ str ∈ dirs[m0].entries ∧ ino0 = dirs[m0].entries[str], ino = 0, ino ∈ dirs
Used simplifier rules: ⊦ m = alink.pino ∧ str = alink.name ↔ alink = mklink(m, str); (elim) Used terms: alink, m, str