| zbrar[n0] = mkzentry(key, adr), n0 < # zbrar, n < # zbrar, nused < # zbrar, sorted(zbrar, 0, nused + 1), key ∈ payload(shl(zbrar, n, nused + 1), 0, nused), n0 ≤ nused, n ≤ n0, n ≤ nused, ∀ n1. n1 < n0 ∧ zbrar[n1].entry? → zbrar[n1].key ≠ key ⊦ payload(shl(zbrar, n, nused + 1), 0, nused)[key] = adr, zbrar[n].entry? |
zbrar[n0] = mkzentry(key, adr), n0 = n2 +1, nused < # zbrar, n < # zbrar, n0 < # zbrar, sorted(zbrar, 0, nused + 1), key ∈ payload(shl(zbrar, n, nused + 1), 0, nused), n ≤ nused, n ≤ n0, n0 ≤ nused, ∀ n1. n1 < n0 ∧ zbrar[n1].entry? → zbrar[n1].key ≠ key ⊦ payload(shl(zbrar, n, nused + 1), 0, nused)[key] = adr, zbrar[n].entry?
Used simplifier rules: nat freely generated by 0, +1;;% ⊦ 0 ≤ m; (s)% ⊦ m ≤ 0 ↔ m = 0; (s)% ⊦ 0 < m ↔ m ≠ 0; (s)% ⊦ m < n → n ≠ 0; (s)% ⊦ ¬ m < 0; (s)%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic% ⊦ mkzentry(key, adr).entry?; (s)