| Symbol | Specification | Kind | Type |
|---|
| # . | buffer | f | buffer → nat |
| # . | pebs | f | pebs → nat |
| . % . | nat-div | pf | nat × nat → nat with λ n, m. m ≠ 0 |
| . * . | nat-mult | f | nat × nat → nat |
| . + . | nat-basic | f | nat × nat → nat |
| . + . | buffer | f | buffer × buffer → buffer |
| . +1 | nat-basic | f | nat → nat |
| . - . | nat | pf | nat × nat → nat with λ n, m. n ≥ m |
| . -1 | nat-basic | pf | nat → nat with λ n. n ≠ 0 |
| . .bad | peb | p | peb |
| . .bad:= . | peb | f | peb × bool → peb |
| . .data | peb | f | peb → buffer |
| . .data:= . | peb | f | peb × buffer → peb |
| . .fill | peb | f | peb → nat |
| . .fill:= . | peb | f | peb × nat → peb |
| . / . | nat-div | pf | nat × nat → nat with λ n, m. m ≠ 0 |
| . < . | nat-basic | p | nat × nat |
| . > . | nat | p | nat × nat |
| . [ . ] | pebs | pf | pebs × nat × peb → pebs with λ pebs, n, peb. n < # pebs |
| . [ . ] | pebs | pf | pebs × nat → peb with λ pebs, n. n < # pebs |
| . [ . ] | buffer | pf | buffer × nat × data → buffer with λ buf, n, d. n < # buf |
| . [ . ] | buffer | pf | buffer × nat → data with λ buf, n. n < # buf |
| . ∈ . | buffer | p | data × buffer |
| . ∈ . | pebs | p | peb × pebs |
| . ≤ . | nat | p | nat × nat |
| . ≥ . | nat | p | nat × nat |
| ⌊ . ⌋ | error-class | p | error |
| BITFLIPS | mtd-asm | v | bool,flexible |
| BUF | mtd-asm | v | buffer,flexible |
| BUF0 | mtd-asm | v | buffer,flexible |
| EACCESS | error | c | error |
| EB_PAGE_SIZE | eraseblock | c | nat |
| EBADFD | error | c | error |
| ECOMMIT | error | c | error |
| EEXISTS | error | c | error |
| EFAIL | error | c | error |
| EINVAL | error | c | error |
| EIO | error | c | error |
| EISDIR | error | c | error |
| ENOENT | error | c | error |
| ENOMEM | error | c | error |
| ENOSPC | error | c | error |
| ENOTDIR | error | c | error |
| ENOTEMPTY | error | c | error |
| EROFS | error | c | error |
| ERR | error-class | v | error,flexible |
| ERR0 | error-class | v | error,flexible |
| ESUCCESS | error | c | error |
| EUCLEAN | error | c | error |
| ISBAD | mtd-asm | v | bool,flexible |
| LEB_SIZE | eraseblock | c | nat |
| N | mtd-asm | v | nat,flexible |
| N0 | mtd-asm | v | nat,flexible |
| N1 | mtd-asm | v | nat,flexible |
| OFFSET | mtd-asm | v | nat,flexible |
| PAGES_PER_LEB | eraseblock | c | nat |
| PAGES_PER_PEB | eraseblock | c | nat |
| PEB | mtd-asm | v | peb,flexible |
| PEB_SIZE | eraseblock | c | nat |
| PEBS | mtd-asm | v | pebs,flexible |
| PNUM | mtd-asm | v | nat,flexible |
| PNUM0 | mtd-asm | v | nat,flexible |
| align↑ | align | f | nat × nat → nat |
| align↓ | align | f | nat × nat → nat |
| bitflips | mtd-asm | v | bool |
| bool | bool | s | |
| boolvar | bool | v | bool |
| boolvar0 | bool | v | bool |
| buf | buffer | v | buffer |
| buf0 | buffer | v | buffer |
| buf1 | buffer | v | buffer |
| buf2 | buffer | v | buffer |
| buffer | buffer | s | |
| cmp | pebs | pp | pebs × peb × nat × nat with λ pebs, peb, m, n. m + n ≤ # pebs |
| cmp | pebs | pp | pebs × nat × pebs × nat × nat with λ pebs, m, pebs0, m0, n. m + n ≤ # pebs ∧ m0 + n ≤ # pebs0 |
| cmp | buffer | pp | buffer × data × nat × nat with λ buf, d, m, n. m + n ≤ # buf |
| cmp | buffer | pp | buffer × nat × buffer × nat × nat with λ buf, m, buf0, m0, n. m + n ≤ # buf ∧ m0 + n ≤ # buf0 |
| copy | buffer | pf | buffer × nat × buffer × nat × nat → buffer with λ buf, m, buf0, m0, n. m + n ≤ # buf ∧ m0 + n ≤ # buf0 |
| copy | pebs | pf | pebs × nat × pebs × nat × nat → pebs with λ pebs, m, pebs0, m0, n. m + n ≤ # pebs ∧ m0 + n ≤ # pebs0 |
| d | data | v | data |
| d0 | data | v | data |
| d1 | data | v | data |
| d2 | data | v | data |
| data | data | s | |
| empty | buffer | c | data |
| emptyleb | eraseblock | c | buffer |
| emptypage | eraseblock | c | buffer |
| emptypeb | eraseblock | c | buffer |
| err | error | v | error |
| err0 | error | v | error |
| err1 | error | v | error |
| error | error | s | |
| fail# | error-class | pr | : : error (nondeterministic) |
| fail_or_success# | error-class | pr | : : error (nondeterministic) |
| fill | pebs | pf | pebs × peb × nat × nat → pebs with λ pebs, peb, n, m. n + m ≤ # pebs |
| fill | buffer | f | buffer × data → buffer |
| fill | buffer | pf | buffer × data × nat × nat → buffer with λ buf, d, n, m. n + m ≤ # buf |
| fill | pebs | f | pebs × peb → pebs |
| id○ | pebs | p | pebs × pebs × nat |
| id○ | buffer | p | buffer × buffer × nat |
| idrange | pebs | pp | pebs × nat × nat with λ pebs, m, n. m + n ≤ # pebs |
| idrange | buffer | pp | buffer × nat × nat with λ buf, m, n. m + n ≤ # buf |
| is-aligned | align | p | nat × nat |
| isbad | mtd-asm | v | bool |
| isempty | eraseblock | p | buffer |
| isempty | eraseblock | p | buffer × nat × nat |
| m | nat-basic | v | nat |
| m0 | array-copy | v | nat |
| m1 | mtd-base | v | nat |
| m2 | mtd-base | v | nat |
| max | min-max | f | nat × nat → nat |
| min | min-max | f | nat × nat → nat |
| mkbuf | buffer | f | nat → buffer |
| mkempbuf | buffer | f | nat → buffer |
| mkpeb | peb | f | buffer × nat × bool → peb |
| mkpebs | pebs | f | nat → pebs |
| mkzbuf | buffer | f | nat → buffer |
| mtd-cons | mtd-base | p | pebs |
| mtd-valid-peb | mtd-base | p | peb |
| mtd_asm_erase# | mtd-asm | pr | nat : pebs : error (nondeterministic) |
| mtd_asm_get_blockcount# | mtd-asm | pr | pebs : : nat |
| mtd_asm_get_page_size# | mtd-asm | pr | pebs : : nat |
| mtd_asm_get_peb_size# | mtd-asm | pr | pebs : : nat |
| mtd_asm_init# | mtd-asm | pr | : : pebs × error (nondeterministic) |
| mtd_asm_isbad# | mtd-asm | pr | nat × pebs : : bool × error (nondeterministic) |
| mtd_asm_markbad# | mtd-asm | pr | nat : pebs : error (nondeterministic) |
| mtd_asm_read# | mtd-asm | pr | nat × nat × nat × nat × pebs : buffer : bool × error (nondeterministic) |
| mtd_asm_write# | mtd-asm | pr | nat × nat × nat × nat × buffer : pebs : error (nondeterministic) |
| n | nat-basic | v | nat |
| n0 | nat-basic | v | nat |
| n1 | nat-basic | v | nat |
| nat | nat-basic | s | |
| peb | peb | s | |
| peb | peb | v | peb |
| peb0 | pebs | v | peb |
| peb1 | pebs | v | peb |
| pebs | pebs | s | |
| pebs | pebs | v | pebs |
| pebs0 | pebs | v | pebs |
| pebs1 | pebs | v | pebs |
| pebs2 | pebs | v | pebs |
| range= | buffer | p | buffer × nat × buffer × nat × nat |
| resize | buffer | f | buffer × nat → buffer |
| rev | pebs | pf | pebs × nat → pebs with λ pebs, n. n ≤ # pebs |
| rev | buffer | f | buffer → buffer |
| rev | buffer | pf | buffer × nat → buffer with λ buf, n. n ≤ # buf |
| rev | pebs | f | pebs → pebs |
| splice | buffer | f | buffer × nat × buffer × nat × nat → buffer |
| subarray | pebs | pf | pebs × nat × nat → pebs with λ pebs, m, n. m + n ≤ # pebs |
| subarray | buffer | pf | buffer × nat × nat → buffer with λ buf, m, n. m + n ≤ # buf |
| zero | buffer | c | data |