| m + 1 < # zbrar, 2 + m < # zbrar, zbrar[m].key < key, m + 1 < nused, 2 + m < nused, nused ≤ # zbrar ⊦ key0 = key, zbrar[m + 1].key < key, (key0 = key ∨ key0 ∈ ri ∧ zbrar[m].key < key0 ∧ ¬ zbrar[m + 1].key < key0 → key0 ∈ ((ri |> zbrar[m].key) |≤ zbrar[m + 1].key)[key, adr]) ∧ (key0 ∈ ((ri |> zbrar[m].key) |≤ zbrar[m + 1].key)[key, adr] → ri[key, adr][key0] = ((ri |> zbrar[m].key) |≤ zbrar[m + 1].key)[key0]) |
2 + m < nused, m + 1 < nused, zbrar[m].key < key, 2 + m < # zbrar, m + 1 < # zbrar, zbrar[m].key < key0, key0 ∈ ri, nused ≤ # zbrar ⊦ ri[key0] = ((ri |> zbrar[m].key) |≤ zbrar[m + 1].key)[key0], key0 = key, zbrar[m + 1].key < key, zbrar[m + 1].key < key0
Used simplifier rules: ⊦ key ≠ key0 → ri[key0, adr][key] = ri[key]; (s)% ⊦ key0 ∈ ri |> key1 ↔ key0 ∈ ri ∧ key1 < key0; (s)% ⊦ key0 ∈ ri |≤ key1 ↔ key0 ∈ ri ∧ ¬ key1 < key0; (s)% ⊦ key ≠ key0 → (key ∈ ri[key0, adr] ↔ key ∈ ri); (s)