| #(key + kx) = # ax0, # kx1 = # ax1, ∀ kx1, ax1, ax0, ri. # kx1 = # ax1 ∧ # kx = # ax0 → ri[kx + kx1, ax0 + ax1] = ri[kx, ax0][kx1, ax1] ⊦ ri[(key + kx) + kx1, ax0 + ax1] = ri[key + kx, ax0][kx1, ax1] |
# kx1 = # ax1, # kx + 1 = # ax0, ∀ kx1, ax1, ax0, ri. # kx1 = # ax1 ∧ # kx = # ax0 → ri[kx + kx1, ax0 + ax1] = ri[kx, ax0][kx1, ax1] ⊦ ri[(key ' + kx) + kx1, ax0 + ax1] = ri[key ' + kx, ax0][kx1, ax1]
Used simplifier rules: a: ⊦ (kx + kx0) + kx1 = kx + kx0 + kx1; from specification list[key-list-set]% ⊦ m +1 = m + 1; (s)% ⊦ #(key ' + kx) = (# kx)+1; (s)% ⊦ key + kx = key ' + kx; (s)