| ⊦ id○(ar0, ar1, n) ∧ id○(ar1, ar2, n) → (¬ id○(ar0, ar2, n) ↔ false) |
# ar0 = # ar2, # ar1 = # ar2, m < # ar2, ∀ m. m < # ar2 ∧ m ≠ n → ar0[m] = ar1[m], ∀ m. m < # ar2 ∧ m ≠ n → ar1[m] = ar2[m] ⊦ # ar2 = 0, m = n, ar0[m] = ar2[m]
Used simplifier rules: Idexcept: ⊦ id○(ar0, ar1, n) ↔ ¬ ¬(# ar0 = # ar1 ∧ (∀ m. m < # ar0 ∧ m ≠ n → ar0[m] = ar1[m]));%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic1%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1