| ad.size = # ad.entries, (((ino0 => ad * abs(sdt, ad.entries)) * {dirs0} ))(dirs), ino ∈ dirs, ∀ str. str ∈ sdt → (∀ ino, dirs, ino0, dirs0, files. ino ∈ dirs ∧ ((abs(sdt[str], ino0) * {dirs0} ))(dirs) → ino ∈ dirs0 ∨ (∃ p. ispath(p, ino0, ino, dirs, files))) ⊦ ino ∈ dirs0, ∃ p. ispath(p, ino0, ino, dirs, files) |
ad = mkdir(m, md, m0, m1, entries), m = # entries, (((ino0 => ad * abs(sdt, entries)) * {dirs0} ))(dirs), ino ∈ dirs, ∀ str. str ∈ sdt → (∀ ino, dirs, ino0, dirs0, files. ino ∈ dirs ∧ ((abs(sdt[str], ino0) * {dirs0} ))(dirs) → ino ∈ dirs0 ∨ (∃ p. ispath(p, ino0, ino, dirs, files))) ⊦ ino ∈ dirs0, ∃ p. ispath(p, ino0, ino, dirs, files)
Used simplifier rules: ⊦ ( ((m = ad.size ∧ md = ad.meta) ∧ m0 = ad.nlink) ∧ m1 = ad.nsubdirs) ∧ entries = ad.entries ↔ ad = mkdir(m, md, m0, m1, entries); (elim) Used terms: ad, m, md, m0, entries