| str ∈ entries, ino0 ∈ dirs ⊦ entries[str] = ino, ∀ alink. alink ∈ links(ino, dirs[ino0, mkdir(m, md, n0, n1, entries -- str)]) ↔ alink ∈ links(ino, dirs[ino0, mkdir(m, md, n0, n1, entries)]) |
ino0 ∈ dirs, str ∈ entries, alink.pino ∈ dirs ⊦ alink.name ∈ (alink.pino = ino0 ⊃ mkdir(m, md, n0, n1, entries -- str);dirs[alink.pino]).entries ∧ ino = (alink.pino = ino0 ⊃ mkdir(m, md, n0, n1, entries -- str);dirs[alink.pino]).entries[alink.name] ↔ alink.name ∈ (alink.pino = ino0 ⊃ mkdir(m, md, n0, n1, entries);dirs[alink.pino]).entries ∧ ino = (alink.pino = ino0 ⊃ mkdir(m, md, n0, n1, entries);dirs[alink.pino]).entries[alink.name], entries[str] = ino
Used simplifier rules: links: ⊦ alink ∈ links(ino, dirs) ↔ alink.pino ∈ dirs ∧ alink.name ∈ dirs[alink.pino].entries ∧ ino = dirs[alink.pino].entries[alink.name];% ⊦ dirs[ino, ad][ino0] = (ino0 = ino ∧ ino ∈ dirs ⊃ ad;dirs[ino0]); (s)% ⊦ ino ∈ dirs[ino0, ad] ↔ ino ∈ dirs; (s)