| id(apebs2, apebs1, ns0), id(apebs1, apebs0, ns1) ⊦ id(apebs2, apebs0, ns0 ∩ ns1) |
# apebs1 = # apebs0, # apebs2 = # apebs0, n < # apebs0, n ∈ ns1, n ∈ ns0, ∀ n0. n0 ∈ ns1 ∧ n0 < # apebs0 → apebs1[n0] = apebs0[n0], ∀ n0. n0 ∈ ns0 ∧ n0 < # apebs0 → apebs2[n0] = apebs1[n0] ⊦ # ns1 = 0, # ns0 = 0, apebs2[n] = apebs0[n], ns0 = ∅, ns1 = ∅
Used simplifier rules: id-set: ⊦ id(apebs0, apebs1, ns) ↔ # apebs0 = # apebs1 ∧ (∀ n. n ∈ ns ∧ n < # apebs0 ∧ n < # apebs1 → apebs0[n] = apebs1[n]);%size-zero-01: ⊦ ns ≠ ∅ → # ns ≠ 0; (forward) from specification set-basic[nat-set]% ⊦ 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%ne-01: ⊦ n ∈ ns → ns ≠ ∅; (forward) from specification set-basic[nat-set]%int-c: ⊦ ns ∩ ns0 = ns0 ∩ ns; from specification set-union[nat-set]%int-a: ⊦ (ns ∩ ns0) ∩ ns1 = ns ∩ ns0 ∩ ns1; from specification set-union[nat-set]% ⊦ n ∈ ns ∩ ns0 ↔ n ∈ ns ∧ n ∈ ns0; (ws)