| tree[q].dir? ↔ m ∈ dirs, abs(tree, ino)(dirs), afs-cons(dirs, files), fids-cons(tree, abs-files(files), ofh), ispath(q, ino, m, dirs, files), px-parent(user, q, ino, dirs, files) ⊦ py(user, q, ino, dirs, files) ↔ pw(user, meta(ε, m, dirs, files)) ∧ px(user, meta(ε, m, dirs, files)) |
⊦ ispath(p, ino, m, dirs, files) ∧ py(user, p, ino, dirs, files) → pw(user, meta(ε, m, dirs, files))
⊦ ispath(p, ino, m, dirs, files) ∧ py(user, p, ino, dirs, files) → px(user, meta(ε, m, dirs, files))
⊦ ispath(p, ino, m, dirs, files) ∧ py(user, p, ino, dirs, files) → px(user, p, ino, dirs, files)
tree[q].dir? ↔ m ∈ dirs, abs(tree, ino)(dirs), afs-cons(dirs, files), fids-cons(tree, abs-files(files), ofh), ispath(q, ino, m, dirs, files), pw(user, meta(ε, m, dirs, files)), px(user, meta(ε, m, dirs, files)), px-parent(user, q, ino, dirs, files) ⊦ py(user, q, ino, dirs, files)
Used simplifier rules: py-pw: ⊦ ispath(p, ino, m, dirs, files) ∧ py(user, p, ino, dirs, files) → pw(user, meta(ε, m, dirs, files));%py-last: ⊦ ispath(p, ino, m, dirs, files) ∧ py(user, p, ino, dirs, files) → px(user, meta(ε, m, dirs, files));%py-px: ⊦ ispath(p, ino, m, dirs, files) ∧ py(user, p, ino, dirs, files) → px(user, p, ino, dirs, files);%⊦ px(user, p, ino, dirs, files) → px-parent(user, p, ino, dirs, files); (s)