This is a listing of all goals defined over the current specification. Axioms are marked yellow, proved theorems green and unproved theorems blue. Click on individual names to get more information on the proof.
| Name: | Sequent: | Type: |
|---|---|---|
| node-flash-size | ⊦ nd.flashsize = 2 * NODE_HEADER_SIZE + nd.alignedsize | An Axiom |
| alignedsize | ⊦ nd.alignedsize = align↑(node-size-headerless(nd), 2 * NODE_HEADER_SIZE) | An Axiom |
| encode-node | encode_node#(ND, OFFSET; SIZE, BUF; ERR) {let NDSIZE = node-size-headerless(ND) in let ALIGNEDSIZE = align↑(NDSIZE, 2 * NODE_HEADER_SIZE), SIZE0 = ? in {encode_header#(nodeheader(NDSIZE, false), OFFSET; BUF; ERR); if ERR = ESUCCESS then encode_node_headerless#(ND, OFFSET + NODE_HEADER_SIZE; BUF, SIZE0; ERR); if ERR = ESUCCESS then {BUF := fill(BUF, empty, OFFSET + NODE_HEADER_SIZE + NDSIZE, ALIGNEDSIZE - NDSIZE); BUF := copy(validtrailer, 0, BUF, OFFSET + NODE_HEADER_SIZE + ALIGNEDSIZE, NODE_HEADER_SIZE)}; SIZE := 2 * NODE_HEADER_SIZE + ALIGNEDSIZE} } | An Axiom |
| decode-node | decode_node#(OFFSET, SIZE, BUF; ND; ERR) {if SIZE < 2 * NODE_HEADER_SIZE then {debug#("persistence: decode_node expected size wrong"); ERR := EINVAL} else if ¬ OFFSET + SIZE ≤ # BUF then {debug#("persistence: decode_node buffer insufficient"); ERR := EINVAL} else let NDHD = ? in {decode_header#(OFFSET, BUF; NDHD; ERR); if ERR = ESUCCESS ∧ NDHD.ispadding then {debug#("persistence: decode_node got padding node"); ERR := EIO}; if ERR = ESUCCESS ∧ align↑(NDHD.size, 2 * NODE_HEADER_SIZE) + 2 * NODE_HEADER_SIZE ≠ SIZE then {debug#("persistence: decode_node node of wrong size"); ERR := EIO}; if ERR = ESUCCESS then {decode_node_headerless#(OFFSET + NODE_HEADER_SIZE, BUF; ND, SIZE; ERR); if ERR ≠ ESUCCESS then debug#("persistence: decode_node decoding failed") else if SIZE ≠ NDHD.size then {debug#("persistence: decode_node size of node unexpected"); ERR := EINVAL}}; if ERR = ESUCCESS ∧ ¬ range=(BUF, OFFSET + NODE_HEADER_SIZE + align↑(NDHD.size, 2 * NODE_HEADER_SIZE), validtrailer, 0, NODE_HEADER_SIZE) then {debug#("persistence: decode_node no validtrailer"); ERR := EIO}} } | An Axiom |
| is-aligned-2-alignedsize | ⊦ is-aligned(nd.alignedsize, 2 * NODE_HEADER_SIZE) | A User Theorem |
| is-aligned-alignedsize | ⊦ is-aligned(nd.alignedsize, NODE_HEADER_SIZE) | A User Theorem |
| is-encoded-empbuf | ⊦ ¬ is-encoded(ndhd, mkempbuf(n)) | A User Theorem |