[Imprint][Data Privacy Statement][E-Mail]

Back to main index. View the specification. View theorem base summary, View theorem base listing, the used properties by spec, the dependency list, the symbol table,

Theorem base for Specification encoding-node-base

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-nodeencode_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-nodedecode_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