| (m ∈ dirs0 ⊃ dirs0[m];dirs1[m]) = mkdir(m0, md, m1, m2, entries), dirs0 ⊥ dirs1 ⊦ (m ∈ dirs0 ∨ m ∈ dirs1) ∧ str ∈ entries ∧ ino = entries[str] ↔ mklink(m, str) ∈ links(ino, dirs0) ∨ mklink(m, str) ∈ links(ino, dirs1) |
(m ∈ dirs0 ⊃ dirs0[m];dirs1[m]) = mkdir(m0, md, m1, m2, entries), dirs0 ⊥ dirs1 ⊦ (m ∈ dirs0 ∨ m ∈ dirs1) ∧ str ∈ entries ∧ ino = entries[str] ↔ m ∈ dirs0 ∧ str ∈ dirs0[m].entries ∧ ino = dirs0[m].entries[str] ∨ m ∈ dirs1 ∧ str ∈ dirs1[m].entries ∧ ino = dirs1[m].entries[str]
Used simplifier rules: links: ⊦ alink ∈ links(ino, dirs) ↔ alink.pino ∈ dirs ∧ alink.name ∈ dirs[alink.pino].entries ∧ ino = dirs[alink.pino].entries[alink.name];% ⊦ mklink(m, str).name = str; (s)% ⊦ mklink(m, str).pino = m; (s)