| # wlar = # apebs, valid-sqns(v, n, apebs, m) = ∅, m < # apebs, valid-recs(subarray(apebs, 0, m), subarray(wlar, 0, m), recs), valid-wl(subarray(apebs, 0, m), subarray(wlar, 0, m)), v × n ∈ recs ⊦ |
# wlar = # apebs, valid-sqns(v, n, apebs, m) = ∅, m < # apebs, valid-wl(subarray(apebs, 0, m), subarray(wlar, 0, m)), v × n ∈ recs, ∀ ladr, m0. ladr ∈ recs ∧ recs[ladr].pnum = m0 ↔ wlar[m0].status = used ∧ m0 < m ∧ apebs[m0].vidhdr.vol = ladr.vol ∧ apebs[m0].vidhdr.leb = ladr.leb ⊦
Used simplifier rules: valid-recs: ⊦ valid-recs(apebs, wlar, recs) ↔ (∀ ladr, m. ladr ∈ recs ∧ recs[ladr].pnum = m ↔ wlar[m].status = used ∧ m < # apebs ∧ apebs[m].vidhdr.vol = ladr.vol ∧ apebs[m].vidhdr.leb = ladr.leb);% ⊦ 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% ⊦ n0 < n → subarray(wlar, m, n)[n0] = wlar[m + n0]; (s)%c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic% ⊦ n + 0 = n; (s)% ⊦ n0 < n → subarray(apebs, m, n)[n0] = apebs[m + n0]; (s)% ⊦ # subarray(apebs, m, n) = n; (s)