| # keyset(kar, m0) = m0, kar[m1] = kar[m], m0 < # kar, m1 < # kar, m < # kar, m1 ≤ m0, m ≤ m0 ⊦ m1 = m, m < m0, ∃ m. m < m0 ∧ kar[m0] = kar[m] |
# keyset(kar, m0) = m0, kar[m1] = kar[m0], m1 < m0, m1 < # kar, m0 < # kar, m1 + 1 < # kar ⊦ m1 = m0, ∃ m. m < m0 ∧ kar[m0] = kar[m]
Used simplifier rules: ⊦ m +1 = m + 1; (s)% ⊦ m < n → n ≠ 0; (s)%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic%lf: ⊦ m < n ∧ n < n0 → m +1 < n0; (forward) from specification nat-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m ≤ m; (s)% ⊦ m ≠ n → (m ≤ n ↔ m < n); (s)%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic% ⊦ m ≤ n → (n ≤ m ↔ m = n); (s)% ⊦ m < n ↔ ¬ n ≤ m; (ss)