| # zbrar0 = BRANCH_SIZE, # zbrar1 = BRANCH_SIZE, save(zbrar0, n, m0)[n + m0, save(zbrar0[n + m0])][n0] = save(zbrar1, n, m0)[n + m0, save(zbrar1[n + m0])][n0], n0 < BRANCH_SIZE, n + m0 < BRANCH_SIZE ⊦ save(zbrar1, n, m0)[n0] = save(zbrar0, n, m0)[n0] |
⊦ m ≠ n → brar[n, br][m] = brar[m]
Used simplifier rules: Put-other: ⊦ m ≠ n → brar[n, br][m] = brar[m]; from specification array[branch-array]% ⊦ # save(zbrar, m, nused) = BRANCH_SIZE; (s)%lels: ⊦ ¬ m < n ↔ n ≤ m; from specification nat%ls-le-simp: ⊦ m < n → (n ≤ m ↔ false); from specification nat%cgetput: m < # brar ⊦ brar[m, br][m] = br; from specification array[branch-array]%lep-02: ⊦ m + n ≤ m + n0 ↔ n ≤ n0; from specification nat%ler: ⊦ m ≤ m; from specification nat%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%c: ⊦ m + n = n + m; from specification nat-basic2%m + nused ≤ n, n < BRANCH_SIZE ⊦ save(zbrar, m, nused)[n] = mkbrarray(BRANCH_SIZE)[n]; (s) Used terms: n0, save(zbrar0[n + m0]), n + m0, save(zbrar0, n, m0)