| ⊦ abs-nodes(buf, 0, a ', lax, weak) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ ( abs-padding(buf0) ∧ abs-nodes(buf1, # buf0, a ', lax, weak) ∨ lax = @(0, 2 * NODE_HEADER_SIZE + a.alignedsize) ' ∧ abs-node(buf0, a) ∧ abs-nodes(buf1, # buf0, [], [], weak))) |
⊦ abs-nodes(buf, m, a ', lax, weak) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ ( abs-padding(buf0) ∧ abs-nodes(buf1, m + # buf0, a ', lax, weak) ∨ lax = @(m, a.flashsize) ' ∧ abs-node(buf0, a) ∧ abs-nodes(buf1, m + # buf0, [], [], weak)))
Used simplifier rules: ⊦ n + 0 = n; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic% ⊦ nd.flashsize = 2 * NODE_HEADER_SIZE + nd.alignedsize; (s) Used terms: weak, lax, a, 0, buf