| ri-cons(ri, fs), ∀ ri, fs. ri-cons(ri, fs) → fs[referenced-adrs(ax0, ri)].keys.toSet ⊆ dom ri ⊦ fs[referenced-adrs(adr + ax0, ri)].keys.toSet ⊆ dom ri |
ri-cons(ri, fs), ∀ ri, fs. ri-cons(ri, fs) → fs[referenced-adrs(ax0, ri)].keys.toSet ⊆ dom ri ⊦ fs[(adr ∈ ri ⊃ adr ';[])].keys.toSet ∪ fs[referenced-adrs(ax0, ri)].keys.toSet ⊆ dom ri
Used simplifier rules: referenced-adrs-rec: ⊦ referenced-adrs(adr ' + ax, ri) = (adr ∈ ri ⊃ adr ';[]) + referenced-adrs(ax, ri);%keys-app: ⊦ (ndx0 + ndx1).keys = ndx0.keys + ndx1.keys;%a: ⊦ (kx + kx0) + kx1 = kx + kx0 + kx1; from specification list[key-list-set]% ⊦ (kx + kx0).toSet = kx.toSet ∪ kx0.toSet; (s)%a: ⊦ (ndx + ndx0) + ndx1 = ndx + ndx0 + ndx1; from specification list[node-list]% ⊦ fs[ax0 + ax1] = fs[ax0] + fs[ax1]; (s)%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]% ⊦ adr + ax = adr ' + ax; (s)