| ∀ str. str ∈ sdt → (∀ fid1. # links(fid1, sdt[str]) = count(fid1, sdt[str].fids)), ∀ sdt0, fid1, md. # sdt0 < # sdt → (∀ str. str ∈ sdt0 → (∀ fid1. # links(fid1, sdt0[str]) = count(fid1, sdt0[str].fids))) → # links(fid1, dnode(md, sdt0)) = count(fid1, sdt0.fids) ⊦ # links(fid1, dnode(md, sdt)) = count(fid1, sdt.fids), ∀ str, tree, sdt0. ¬(sdt = sdt0[str, tree] ∧ ¬ str ∈ sdt0) |
⊦ ¬ str ∈ sdt → links(fid, dnode(md, sdt[str, tree])) = links(fid, dnode(md, sdt)) ∪ (str + links(fid, tree))
∀ str0. str0 ∈ sdt0[str, tree] → (∀ fid1. # links(fid1, sdt0[str, tree][str0]) = count(fid1, sdt0[str, tree][str0].fids)), ∀ sdt1, fid1, md. # sdt1 < # sdt0[str, tree] → (∀ str. str ∈ sdt1 → (∀ fid1. # links(fid1, sdt1[str]) = count(fid1, sdt1[str].fids))) → # links(fid1, dnode(md, sdt1)) = count(fid1, sdt1.fids) ⊦ #(links(fid1, dnode(md, sdt0)) ∪ (str + links(fid1, tree))) = count(fid1, sdt0.fids ∪ tree.fids), str ∈ sdt0
Used simplifier rules: plinksd+: ⊦ ¬ str ∈ sdt → links(fid, dnode(md, sdt[str, tree])) = links(fid, dnode(md, sdt)) ∪ (str + links(fid, tree));% ⊦ ¬ str ∈ sdt → sdt[str, tree].fids = sdt.fids ∪ tree.fids; (s)