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