| Symbol | Specification | Kind | Type |
|---|
| # . | key-index-array | f | key-array → nat |
| # . | set-basic | f | set → nat |
| # . | array | f | array → nat |
| . % . | nat-div | pf | nat × nat → nat with λ n, m. m ≠ 0 |
| . * . | nat-mult | f | nat × nat → nat |
| . + . | nat-basic | f | nat × nat → nat |
| . ++ . | keyindex-set | f | set × keyindex → set |
| . +1 | nat-basic | f | nat → nat |
| . - . | nat | pf | nat × nat → nat with λ n, m. n ≥ m |
| . -- . | keyindex-set | f | set × keyindex → set |
| . -1 | nat-basic | pf | nat → nat with λ n. n ≠ 0 |
| . .ar | bin-min-heap | f | binheap → key-array |
| . .ar:= . | bin-min-heap | f | binheap × key-array → binheap |
| . .elem | elem-index | f | elem-index → elem |
| . .elem:= . | elem-index | f | elem-index × elem → elem-index |
| . .idx | key-index | f | keyindex → nat |
| . .idx | elem-index | f | elem-index → nat |
| . .idx:= . | elem-index | f | elem-index × nat → elem-index |
| . .idx:= . | key-index | f | keyindex × nat → keyindex |
| . .key | key-index | f | keyindex → key |
| . .key:= . | key-index | f | keyindex × key → keyindex |
| . .size | bin-min-heap | f | binheap → nat |
| . .size:= . | bin-min-heap | f | binheap × nat → binheap |
| . / . | nat-div | pf | nat × nat → nat with λ n, m. m ≠ 0 |
| . < . | binheap-key | p | key × key |
| . < . | nat-basic | p | nat × nat |
| . > . | nat | p | nat × nat |
| . [ . ] | index-array-base | pf | array × nat × elem-index → array with λ ar, n, ei. n < # ar |
| . [ . ] | index-array-base | pf | array × nat → elem-index with λ ar, n. n < # ar |
| . [ . ] | key-index-array | pf | key-array × nat × keyindex → key-array with λ kar, n, ki. n < # kar |
| . [ . ] | key-index-array | pf | key-array × nat → keyindex with λ kar, n. n < # kar |
| . \ . | set-union | f | set × set → set |
| . ^ . | nat-pot | f | nat × nat → nat |
| . ∈ . | keyindex-set | p | keyindex × set |
| . ∈ . | index-array-base | p | elem-index × array |
| . ∈ . | key-index-array | p | keyindex × key-array |
| . ∩ . | set-union | f | set × set → set |
| . ∪ . | set-union | f | set × set → set |
| . ≤ . | nat | p | nat × nat |
| . ≥ . | nat | p | nat × nat |
| . ⊆ . | set-basic | p | set × set |
| { . } | keyindex-set | f | keyindex → set |
| ∅ | set-basic | c | set |
| 2^ . | nat-pot | f | nat → nat |
| 2exp-size | bin-min-heap-inv | p | nat |
| a | elem | v | elem |
| a0 | elem-index | v | elem |
| ar | array | v | array |
| ar0 | array | v | array |
| ar1 | array | v | array |
| ar2 | array | v | array |
| array | array | s | |
| b | elem | v | elem |
| bh | bin-min-heap | v | binheap |
| bh0 | bin-min-heap | v | binheap |
| bin-heap | bin-min-heap | f | key-array × nat → binheap |
| bin-heap-inv | bin-min-heap-prepost | p | binheap × array |
| bin_min_heap_bubble_down# | bin-min-heap-ops | pr | nat : binheap × array (nonfunctional) |
| bin_min_heap_bubble_up# | bin-min-heap-ops | pr | nat : binheap × array (nonfunctional) |
| bin_min_heap_empty# | bin-min-heap-ops | pr | : binheap |
| bin_min_heap_extract_min# | bin-min-heap-ops | pr | : binheap × array × nat (nondeterministic nonfunctional) |
| bin_min_heap_get_min# | bin-min-heap-ops | pr | binheap : nat (nondeterministic) |
| bin_min_heap_insert# | bin-min-heap-ops | pr | keyindex : binheap × array (nonfunctional) |
| bin_min_heap_is_empty# | bin-min-heap-ops | pr | binheap : bool |
| bin_min_heap_next_2pot | bin-min-heap-ops | pr | nat : nat (nonfunctional) |
| bin_min_heap_remove# | bin-min-heap-ops | pr | nat : binheap × array (nonfunctional) |
| bin_min_heap_resize# | bin-min-heap-ops | pr | nat : binheap (nonfunctional) |
| bin_min_heap_update# | bin-min-heap-ops | pr | nat × key : binheap × array (nonfunctional) |
| binheap | bin-min-heap | s | |
| bubble-down-inv | bin-min-heap-prepost | p | nat × binheap × array × binheap × array |
| bubble-up-inv | bin-min-heap-prepost | p | nat × binheap × array × binheap × array |
| c | elem | v | elem |
| cmp | index-array-base | pp | array × elem-index × nat × nat with λ ar, ei, m, n. m + n ≤ # ar |
| cmp | array-copy | pp | array × nat × array × nat × nat with λ ar, m, ar0, m0, n. m + n ≤ # ar ∧ m0 + n ≤ # ar0 |
| cmp | key-index-array | pp | key-array × keyindex × nat × nat with λ kar, ki, m, n. m + n ≤ # kar |
| cmp | key-index-array | pp | key-array × nat × key-array × nat × nat with λ kar, m, kar0, m0, n. m + n ≤ # kar ∧ m0 + n ≤ # kar0 |
| copy | key-index-array | pf | key-array × nat × key-array × nat × nat → key-array with λ kar, m, kar0, m0, n. m + n ≤ # kar ∧ m0 + n ≤ # kar0 |
| copy | array-copy | pf | array × nat × array × nat × nat → array with λ ar, m, ar0, m0, n. m + n ≤ # ar ∧ m0 + n ≤ # ar0 |
| ei | elem-index | v | elem-index |
| ei0 | index-array-base | v | elem-index |
| ei1 | index-array-base | v | elem-index |
| elem | elem | s | |
| elem-index | elem-index | s | |
| elemindex | elem-index | f | elem × nat → elem-index |
| fill | index-array-base | pf | array × elem-index × nat × nat → array with λ ar, ei, n, m. n + m ≤ # ar |
| fill | key-index-array | f | key-array × keyindex → key-array |
| fill | key-index-array | pf | key-array × keyindex × nat × nat → key-array with λ kar, ki, n, m. n + m ≤ # kar |
| fill | index-array-base | f | array × elem-index → array |
| heap-order | bin-min-heap-inv | p | key-array × nat |
| id-idx | index-array | p | array × array |
| id○ | key-index-array | p | key-array × key-array × nat |
| id○ | array-copy | p | array × array × nat |
| idrange | array-copy | pp | array × nat × nat with λ ar, m, n. m + n ≤ # ar |
| idrange | key-index-array | pp | key-array × nat × nat with λ kar, m, n. m + n ≤ # kar |
| isempty | bin-min-heap-ops | v | bool |
| kar | key-index-array | v | key-array |
| kar0 | key-index-array | v | key-array |
| kar1 | key-index-array | v | key-array |
| kar2 | key-index-array | v | key-array |
| key | binheap-key | s | |
| key | binheap-key | v | key |
| key-array | key-index-array | s | |
| key-index | key-index | f | key × nat → keyindex |
| key0 | binheap-key | v | key |
| key1 | binheap-key | v | key |
| keyindex | key-index | s | |
| keyset | bin-min-heap-inv | f | key-array × nat → set |
| keyset | bin-min-heap-prepost | f | binheap → set |
| ki | key-index | v | keyindex |
| ki0 | keyindex-set | v | keyindex |
| ki1 | keyindex-set | v | keyindex |
| log | nat-pot | pf | nat × nat → nat with λ m, m0. m0 ≠ 0 |
| log2 . | nat-pot | pf | nat → nat with λ m0. m0 ≠ 0 |
| m | nat-basic | v | nat |
| m0 | nat-pot | v | nat |
| m1 | bin-min-heap-inv | v | nat |
| minsize | bin-min-heap-ops | v | nat |
| mkarray | array | f | nat → array |
| mkkeyarray | key-index-array | f | nat → key-array |
| n | nat-basic | v | nat |
| n0 | nat-basic | v | nat |
| n1 | nat-basic | v | nat |
| nat | nat-basic | s | |
| no-dups | bin-min-heap-inv | p | key-array × nat |
| no-dups-idx | bin-min-heap-inv | p | key-array × nat |
| rev | array-copy | pf | array × nat → array with λ ar, n. n ≤ # ar |
| rev | key-index-array | pf | key-array × nat → key-array with λ kar, n. n ≤ # kar |
| rev | key-index-array | f | key-array → key-array |
| rev | array-copy | f | array → array |
| s | set-basic | v | set |
| s0 | set-basic | v | set |
| s1 | set-basic | v | set |
| s2 | set-basic | v | set |
| set | set-basic | s | |
| subarray | array-copy | pf | array × nat × nat → array with λ ar, m, n. m + n ≤ # ar |
| subarray | key-index-array | pf | key-array × nat × nat → key-array with λ kar, m, n. m + n ≤ # kar |
| valid-idx | bin-min-heap-inv | p | key-array × array × nat |