| m + nused0 < BRANCH_SIZE, n ≤ nused0, ∀ n, m, zbrar. n < nused0 ∧ m + nused0 ≤ BRANCH_SIZE → save(zbrar, m, nused0)[m + n] = save(zbrar[m + n]) ⊦ save(zbrar, m + 1, nused0)[m, save(zbrar[m])][m + n] = save(zbrar[m + n]) |
n = n0 +1, m + nused0 < BRANCH_SIZE, n ≤ nused0, ∀ n, m, zbrar. n < nused0 ∧ m + nused0 ≤ BRANCH_SIZE → save(zbrar, m, nused0)[m + n] = save(zbrar[m + n]) ⊦ save(zbrar, m + 1, nused0)[m, save(zbrar[m])][m + n] = save(zbrar[m + n])
Used simplifier rules: save-size: ⊦ # save(zbrar, m, nused) = BRANCH_SIZE;%nat freely generated by 0, +1;;% ⊦ n + 0 = n; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ 0 ≤ m; (s)%fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat% ⊦ ¬ m + n < m; (s)%m < # brar ⊦ brar[m, br][m] = br; (s)