| ofh0 = ∅, root = tree, tree.dir?, fids-cons(tree, fs1, ofh1), ∀ fid. fid ∈ fs0 ↔ fid ∈ root.fids ∧ fid ∈ fs1, ∀ fid. fid ∈ fs0 → fs0[fid] = fs1[fid] ⊦ root.dir? ∧ fids-cons(root, fs0, ofh0) |
⊦ fids-cons(tree0, fs0, ofh0) → (fids-cons(tree1, fs1, ofh1) ↔ (∀ fid. (fid ∈ fs0 ↔ fid ∈ tree0.fids ∨ fid ∈ ofh0.fids) → (fid ∈ fs1 ↔ fid ∈ tree1.fids ∨ fid ∈ ofh1.fids)))
fid ∈ fs1 ↔ fid ∈ tree.fids ∨ fid ∈ ofh1.fids, tree.dir?, fids-cons(tree, fs1, ofh1), ∀ fid. fid ∈ fs0 → fs0[fid] = fs1[fid], ∀ fid. fid ∈ fs0 ↔ fid ∈ tree.fids ∧ fid ∈ fs1 ⊦ fid ∈ fs0 ↔ fid ∈ tree.fids
Used simplifier rules: fids-cons-reduce: ⊦ fids-cons(tree0, fs0, ofh0) → ( fids-cons(tree1, fs1, ofh1) ↔ (∀ fid. (fid ∈ fs0 ↔ fid ∈ tree0.fids ∨ fid ∈ ofh0.fids) → (fid ∈ fs1 ↔ fid ∈ tree1.fids ∨ fid ∈ ofh1.fids)));% ⊦ ¬ fid ∈ ∅; (s)% ⊦ ∅.fids = ∅; (s)