| kar[m1 / 2] = key-index(key4, m6), kar[m1 + 1] = key-index(key3, m5), kar[2 * m1 / 2 + 1] = key-index(key1, m3), kar[2 * m1 / 2 + 2] = key-index(key2, m4), key-index(key1, m3) = key-index(key0, m2), key4 < key0, 2 * m1 / 2 + 1 < # kar, m1 / 2 < # kar, m1 + 1 < # kar, m1 + 1 < n, key3 < key0, 2 * m1 / 2 + 1 < n, m1 / 2 < n, n ≤ # kar, ∀ m. m < n ∧ m ≠ 0 → ¬ kar[m].key < kar[(m - 1) / 2].key, ¬ 2 * m1 / 2 + 2 < n ∨ ¬ key2 < key1 ⊦ key3 < key4 |
kar[m1 / 2] = key-index(key4, m6), kar[m1 + 1] = key-index(key3, m5), kar[2 * m1 / 2 + 1] = key-index(key0, m3), kar[2 * m1 / 2 + 2] = key-index(key2, m4), key4 < key0, 2 * m1 / 2 + 1 < # kar, m1 / 2 < # kar, m1 + 1 < # kar, m1 + 1 < n, key3 < key0, 2 * m1 / 2 + 1 < n, m1 / 2 < n, n ≤ # kar, ∀ m. m < n ∧ m ≠ 0 → ¬ kar[m].key < kar[(m - 1) / 2].key, ¬ 2 * m1 / 2 + 2 < n ∨ ¬ key2 < key0 ⊦ key3 < key4
Used simplifier rules: ⊦ key-index(key, m) = key-index(key0, m0) ↔ key = key0 ∧ m = m0; (ws)