| # kx = # ax ⊦ ri[kx + key ', ax + adr '] = ri[kx, ax][key, adr] |
Used simplifier rules: update-index-one: ⊦ ri[key ', adr '] = ri[key, adr];%index-update-key-base: ⊦ ri[[], []] = ri;%update-index-append: # kx0 = # ax0, # kx1 = # ax1 ⊦ ri[kx0 + kx1, ax0 + ax1] = ri[kx0, ax0][kx1, ax1];%update-index-one: ⊦ ri[key ', adr '] = ri[key, adr];%key-list freely generated by [], +;;% ⊦ key + kx = key ' + kx; (s)% ⊦ #(key ' + kx) = (# kx)+1; (s)% ⊦ m +1 = m + 1; (s)%a: ⊦ (kx + kx0) + kx1 = kx + kx0 + kx1; from specification list[key-list-set]% ⊦ # key ' = 0 +1; (s)% ⊦ # adr ' = 0 +1; (s)%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]% ⊦ # [] = 0; (s)% ⊦ # ax = 0 ↔ ax = []; (s)% ⊦ [] + kx = kx; (s)% ⊦ [] + ax = ax; (s)