| zbrar[(m + 1) + n].key = key, zbrar[m + n1 + 1] = mkzentry(key, adr), zbrar[(m + 1) + n].entry?, n < n1, m + nused0 < # zbrar, m < # zbrar, n1 < nused0, ∀ n. ¬ n1 < n ∧ zbrar[m + n].entry? → zbrar[m + n].key ≠ key ⊦ (zbrar[m].entry? ⊃ payload(zbrar, m + 1, nused0)[zbrar[m].key, zbrar[m].adr];payload(zbrar, m + 1, nused0))[key] = adr |
zbrar[m + n1 + 1] = mkzentry(zbrar[(m + 1) + n].key, adr), zbrar[(m + 1) + n].entry?, n < nused0, n < n1, m + nused0 < # zbrar, m < # zbrar, n1 < nused0, n + 1 < nused0, ∀ n0. ¬ n1 < n0 ∧ zbrar[m + n0].entry? → zbrar[m + n0].key ≠ zbrar[(m + 1) + n].key ⊦ (zbrar[m].entry? ⊃ payload(zbrar, m + 1, nused0)[zbrar[m].key, zbrar[m].adr];payload(zbrar, m + 1, nused0))[zbrar[(m + 1) + n].key] = adr
Used simplifier rules: ⊦ m +1 = m + 1; (s)% ⊦ m < n → n ≠ 0; (s)%transitivity: ⊦ n < n0 ∧ n0 < n1 → n < n1; (forward) from specification oelem[nat-set]%lf: ⊦ m < n ∧ n < n0 → m +1 < n0; (forward) from specification nat-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic