| zbrar[n] = mkzentry(key, adr), zbrar[n0] = mkzentry(key0, adr0), n0 < # zbrar, nused < # zbrar, n < # zbrar, sorted(zbrar, 0, nused + 1), n0 ≤ nused, n ≤ n0, n ≤ nused ⊦ key0 = key, ∃ n1. n1 < nused ∧ (n1 < n ⊃ zbrar[n1];zbrar[n1 + 1]).entry? ∧ (n1 < n ⊃ zbrar[n1];zbrar[n1 + 1]).key = key0 |
zbrar[n0] = mkzentry(key0, adr0), zbrar[n] = mkzentry(key, adr), n0 = n2 +1, n < # zbrar, nused < # zbrar, n0 < # zbrar, sorted(zbrar, 0, nused + 1), n ≤ nused, n ≤ n0, n0 ≤ nused ⊦ key0 = key, ∃ n1. n1 < nused ∧ (n1 < n ⊃ zbrar[n1];zbrar[n1 + 1]).entry? ∧ (n1 < n ⊃ zbrar[n1];zbrar[n1 + 1]).key = key0
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)%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic% ⊦ ¬ m < 0; (s)% ⊦ mkzentry(key, adr) = mkzentry(key0, adr0) ↔ key = key0 ∧ adr = adr0; (ws)