| n < # asar, n < m, m ≤ # asar, ∀ n0, n1. n0 < m ∧ n1 < m ∧ n0 ≠ n1 → asar[n0] ∩ asar[n1] = ∅, ∀ n0, n1. n0 < m ∧ n1 < m ∧ n0 ≠ n1 → asar[n, as][n0] ∩ asar[n, as][n1] = ∅ ⊦ ∀ n0. n0 ≠ n ∧ n0 < m → asar[n0] ∩ as = ∅ |
n0 < # asar, n < # asar, n < m, n0 < m, m ≤ # asar, ∀ n0, n1. n0 < m ∧ n1 < m ∧ n0 ≠ n1 → asar[n0] ∩ asar[n1] = ∅, ∀ n0, n1. n0 < m ∧ n1 < m ∧ n0 ≠ n1 → asar[n, as][n0] ∩ asar[n, as][n1] = ∅ ⊦ #(asar[n0] ∩ as) = 0, n0 = n, asar[n0] ∩ as = ∅
Used simplifier rules: size-zero: ⊦ # as ≠ 0 → as ≠ ∅; (forward) from specification set-basic[address-list-set]%size-zero-01: ⊦ as ≠ ∅ → # as ≠ 0; (forward) from specification set-basic[address-list-set]%fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat