| # gndx0 + 1 = # lax, abs-nodes(buf, m, gnd ' + gndx0, lax, weak), ∀ buf0, m, gndx, lax, weak. # buf0 < # buf → abs-nodes(buf0, m, gndx, lax, weak) → inv-flashsize(gndx, lax) ⊦ inv-flashsize(gnd ' + gndx0, lax) |
⊦ abs-nodes(buf, m, gnd ' + gndx, lax, weak) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ ( abs-padding(buf0) ∧ abs-nodes(buf1, m + # buf0, gnd ' + gndx, lax, weak) ∨ lax ≠ [] ∧ lax.head.off = m ∧ lax.head.size = # buf0 ∧ abs-node(buf0, gnd) ∧ abs-nodes(buf1, m + # buf0, gndx, lax.tail, weak)))
# gndx0 + 1 = # lax, ∃ buf0, buf1. buf = buf0 + buf1 ∧ ( abs-padding(buf0) ∧ abs-nodes(buf1, m + # buf0, gnd ' + gndx0, lax, weak) ∨ lax ≠ [] ∧ lax.head.off = m ∧ lax.head.size = # buf0 ∧ abs-node(buf0, gnd) ∧ abs-nodes(buf1, m + # buf0, gndx0, lax.tail, weak)), ∀ buf0, m, gndx, lax, weak. # buf0 < # buf → abs-nodes(buf0, m, gndx, lax, weak) → inv-flashsize(gndx, lax) ⊦ inv-flashsize(gnd ' + gndx0, lax)
Used terms: weak, lax, gndx0, gnd, m, buf