| # save(zbrar0, n, m0)[n + m0, save(zbrar0[n + m0])] = # save(zbrar1, n, m0)[n + m0, save(zbrar1[n + m0])], # zbrar1 = BRANCH_SIZE, # zbrar0 = BRANCH_SIZE, n + m0 < BRANCH_SIZE, n0 < BRANCH_SIZE, ∀ n0. n0 < # save(zbrar0, n, m0)[n + m0, save(zbrar0[n + m0])] → save(zbrar0, n, m0)[n + m0, save(zbrar0[n + m0])][n0] = save(zbrar1, n, m0)[n + m0, save(zbrar1[n + m0])][n0] ⊦ save(zbrar1, n, m0)[n0] = save(zbrar0, n, m0)[n0] |
# zbrar0 = BRANCH_SIZE, # zbrar1 = BRANCH_SIZE, n0 < BRANCH_SIZE, n + m0 < BRANCH_SIZE, ∀ n1. n1 < BRANCH_SIZE → save(zbrar0, n, m0)[n + m0, save(zbrar0[n + m0])][n1] = save(zbrar1, n, m0)[n + m0, save(zbrar1[n + m0])][n1] ⊦ save(zbrar1, n, m0)[n0] = save(zbrar0, n, m0)[n0]
Used simplifier rules: ⊦ # save(zbrar, m, nused) = BRANCH_SIZE; (s)%Size-put: ⊦ # brar[n, br] = # brar; from specification array[branch-array]