| tree[parent(p0)].dir?, p0 ∈ tree, tree[p0].fids ⊆ tree.fids ⊦ p0 = ε, sdt0.fids ∪ ((tree.fids ∪ tree1.fids) \ tree[p0].fids) = ((sdt0.fids ∪ tree.fids) ∪ tree1.fids) \ tree[p0].fids, str ∈ sdt0 |
fidb ⊆ fidb0 ⊦ (fidb0 \ fidb) ∪ fidb1 = (fidb0 ∪ fidb1) \ fidb
tree[parent(p0)].dir?, p0 ∈ tree, tree[p0].fids ⊆ tree.fids ⊦ p0 = ε, sdt0.fids ∪ ((tree.fids ∪ tree1.fids) \ tree[p0].fids) = ((sdt0.fids ∪ tree.fids) ∪ tree1.fids) \ tree[p0].fids, str ∈ sdt0, tree[p0].fids ⊆ tree.fids ∪ tree1.fids
Used simplifier rules: union-ass: ⊦ fidb ∪ fidb0 ∪ fidb1 = (fidb ∪ fidb0) ∪ fidb1; from specification bag-union[fidbag]%union-com: ⊦ fidb ∪ fidb0 = fidb0 ∪ fidb; from specification bag-union[fidbag] Used terms: sdt0.fids, tree[p0].fids, tree.fids ∪ tree1.fids