| mtd-cons(pebs0) ⊦ (∀ n. n < # pebs1 → # pebs1[n].data = PEB_SIZE ∧ ( ¬ pebs1[n].bad → pebs1[n].fill ≤ PEB_SIZE ∧ is-aligned(pebs1[n].fill, EB_PAGE_SIZE) ∧ range=(pebs1[n].data, pebs1[n].fill, emptypeb, pebs1[n].fill, PEB_SIZE - pebs1[n].fill))) ↔ (∀ n. n < # pebs1 ∧ ( n < # pebs0 → # pebs0[n].data = PEB_SIZE ∧ ( ¬ pebs0[n].bad → pebs0[n].fill ≤ PEB_SIZE ∧ is-aligned(pebs0[n].fill, EB_PAGE_SIZE) ∧ range=(pebs0[n].data, pebs0[n].fill, emptypeb, pebs0[n].fill, PEB_SIZE - pebs0[n].fill))) → # pebs1[n].data = PEB_SIZE ∧ ( ¬ pebs1[n].bad → pebs1[n].fill ≤ PEB_SIZE ∧ is-aligned(pebs1[n].fill, EB_PAGE_SIZE) ∧ range=(pebs1[n].data, pebs1[n].fill, emptypeb, pebs1[n].fill, PEB_SIZE - pebs1[n].fill))) |
⊦ mtd-cons(pebs) ↔ (∀ n. n < # pebs → mtd-valid-peb(pebs[n]))
∀ n. n < # pebs0 → mtd-valid-peb(pebs0[n]) ⊦ (∀ n. n < # pebs1 → # pebs1[n].data = PEB_SIZE ∧ ( ¬ pebs1[n].bad → pebs1[n].fill ≤ PEB_SIZE ∧ is-aligned(pebs1[n].fill, EB_PAGE_SIZE) ∧ range=(pebs1[n].data, pebs1[n].fill, emptypeb, pebs1[n].fill, PEB_SIZE - pebs1[n].fill))) ↔ (∀ n. n < # pebs1 ∧ ( n < # pebs0 → # pebs0[n].data = PEB_SIZE ∧ ( ¬ pebs0[n].bad → pebs0[n].fill ≤ PEB_SIZE ∧ is-aligned(pebs0[n].fill, EB_PAGE_SIZE) ∧ range=(pebs0[n].data, pebs0[n].fill, emptypeb, pebs0[n].fill, PEB_SIZE - pebs0[n].fill))) → # pebs1[n].data = PEB_SIZE ∧ ( ¬ pebs1[n].bad → pebs1[n].fill ≤ PEB_SIZE ∧ is-aligned(pebs1[n].fill, EB_PAGE_SIZE) ∧ range=(pebs1[n].data, pebs1[n].fill, emptypeb, pebs1[n].fill, PEB_SIZE - pebs1[n].fill)))
Used terms: pebs0