| tree[p] = dnode(md, sdt), ((abs|(tree, ROOT_INO, p, ino0) * ino0 => mkdir(# entries + 1, md, m0, m1, entries[str, ino1]) * abs(sdt, entries) * D))(dirs), p ∈ tree, D ⊆ abs(tree0, ino1) ⊦ abs(tree[p, dnode(md, sdt[str, tree0])], ROOT_INO)(dirs), str ∈ entries |
⊦ p ∈ tree → abs(tree, ino0) = _∃(λ ino1. abs|(tree, ino0, p, ino1) * abs(tree[p], ino1))
tree[p] = dnode(md, sdt), ((abs|(tree, ROOT_INO, p, ino0) * ino0 => mkdir(# entries + 1, md, m0, m1, entries[str, ino1]) * abs(sdt, entries) * D))(dirs), p ∈ tree, p ∈ tree[p, dnode(md, sdt[str, tree0])], D ⊆ abs(tree0, ino1) ⊦ (_∃(λ ino1. abs|(tree[p, dnode(md, sdt[str, tree0])], ROOT_INO, p, ino1) * abs(tree[p, dnode(md, sdt[str, tree0])][p], ino1)))(dirs), str ∈ entries
Used simplifier rules: ⊦ p ∈ tree → p ∈ tree[p, tree0]; (s) Used terms: p, ROOT_INO, tree[p, dnode(md, sdt[str, tree0])]