| Symbol | Specification | Kind | Type |
|---|---|---|---|
| # . | heap | f | Heap[A] → Nat |
| # . | set-basic | f | Set[A] → Nat |
| # . | list-data | f | List[A] → Nat |
| . ' | list | f | A → List[A] |
| . ( . ) | heap | pf | Heap[A] × Ref[A] → A with λ h, r. r ≠ null ∧ r ∈ h |
| . ( . := . ) | heap | pf | Heap[A] × Ref[A] × A → Heap[A] with λ h, r, o. r ≠ null ∧ r ∈ h |
| . * . | heap-sep | f | (Heap[A] → Bool) × (Heap[A] → Bool) → Heap[A] → Bool |
| . + . | nat-basic | f | Nat × Nat → Nat |
| . + . | list-data | f | A × List[A] → List[A] |
| . + . | list | f | List[A] × List[A] → List[A] |
| . + . | list | f | List[A] × A → List[A] |
| . ++ . | set-basic | f | Set[A] × A → Set[A] |
| . ++ . | list-dup | f | List[A] × A → List[A] |
| . ++ . | heap | pf | Heap[A] × Ref[A] → Heap[A] with λ h, r. r ≠ null ∧ ¬ r ∈ h |
| . +1 | nat-basic | f | Nat → Nat |
| . +2 . | list | f | A × A → List[A] |
| . - . | nat | pf | Nat × Nat → Nat with λ n, m. n ≥ m |
| . -* . | heap-sep | f | (Heap[A] → Bool) × (Heap[A] → Bool) → Heap[A] → Bool |
| . -- . | set-union | f | Set[A] × A → Set[A] |
| . -- . | heap | pf | Heap[A] × Ref[A] → Heap[A] with λ h, r. r ≠ null ∧ r ∈ h |
| . -> . | heap-sep | f | (Heap[A] → Bool) × (Heap[A] → Bool) → Heap[A] → Bool |
| . -⊗ . | heap-sep | f | (Heap[A] → Bool) × (Heap[A] → Bool) → Heap[A] → Bool |
| . -1 | nat-basic | pf | Nat → Nat with λ n. n ≠ 0 |
| . < . | nat-basic | p | Nat × Nat |
| . < . | list-data | p | List('A) × List('A) |
| . => . | maplet | f | Ref[A] × A → Heap[A] → Bool |
| . =>? | ex-maplet | f | Ref[A] → Heap[A] → Bool |
| . =>_ | ex-maplet | f | Ref[A] → Heap[A] → Bool |
| . > . | nat | p | Nat × Nat |
| . \ . | set-union | f | Set[A] × Set[A] → Set[A] |
| . \ . | heapfuns | f | Heap[A] × Set[Ref[A]] → Heap[A] |
| . \ . | heapfuns | f | Heap[A] × Heap[A] → Heap[A] |
| . ∈ . | heap | p | Ref('A) × Heap('A) |
| . ∈ . | set-basic | p | 'A × Set('A) |
| . ∈ . | list | p | 'A × List('A) |
| . ∩ . | set-union | f | Set[A] × Set[A] → Set[A] |
| . ∪ . | set-union | f | Set[A] × Set[A] → Set[A] |
| . ∪ . | heapfuns | f | Heap[A] × Heap[A] → Heap[A] |
| . ≡ . | separation | p | Heap('A) × Heap('A) |
| . ≤ . | nat | p | Nat × Nat |
| . ≥ . | nat | p | Nat × Nat |
| . ⊆ . | set-basic | p | Set('A) × Set('A) |
| . ⊆ . | heapfuns | p | Heap('A) × Heap('A) |
| . ⊆ . | heap-sep | p | (Heap('A) → Bool) × (Heap('A) → Bool) |
| . ⊑ . | list-last | p | List('A) × List('A) |
| . ⊒ . | list-last | p | List('A) × List('A) |
| . ⊗ . | heap-sep | f | (Heap[A] → Bool) × (Heap[A] → Bool) → Heap[A] → Bool |
| . ⊥ . | heapfuns | p | Heap('A) × Heap('A) |
| . and . | heap-sep | f | (Heap[A] → Bool) × (Heap[A] → Bool) → Heap[A] → Bool |
| . butlast | list-last | pf | List[A] → List[A] with λ x. x ≠ [] |
| . distinct | list-dup | f | List[A] → List[A] |
| . dropRight ( . ) | list-last | pf | List[A] × Nat → List[A] with λ x, n. n ≤ # x |
| . exists ( . ) | set-union | p | Set('A) × ('A → Bool) |
| . filter ( . ) | set-union | f | Set[A] × (A → Bool) → Set[A] |
| . foldLeft ( . ) | list | f | List[A] × B × (B × A → B) → B |
| . forall ( . ) | set-union | p | Set('A) × ('A → Bool) |
| . head | list-data | pf | List[A] → A with λ x. x ≠ [] |
| . last | list-last | pf | List[A] → A with λ x. x ≠ [] |
| . left | node | f | Node[A] → Ref[Node[A]] |
| . left:= . | node | f | Node[A] × Ref[Node[A]] → Node[A] |
| . map ( . ) | set-union | f | Set[A] × (A → B) → Set[B] |
| . map ( . ) | list | f | List[A] × (A → B) → List[B] |
| . or . | heap-sep | f | (Heap[A] → Bool) × (Heap[A] → Bool) → Heap[A] → Bool |
| . right | node | f | Node[A] → Ref[Node[A]] |
| . right:= . | node | f | Node[A] × Ref[Node[A]] → Node[A] |
| . tail | list-data | pf | List[A] → List[A] with λ x. x ≠ [] |
| . val | node | f | Node[A] → A |
| . val:= . | node | f | Node[A] × A → Node[A] |
| [] | list-data | c | List[A] |
| _∃ . | maplet | f | (B → Heap[A] → Bool) → Heap[A] → Bool |
| _∃ . | maplet | f | (B × C → Heap[A] → Bool) → Heap[A] → Bool |
| _∃ . | maplet | f | (B × C × D → Heap[A] → Bool) → Heap[A] → Bool |
| { . } | set-union | f | A → Set[A] |
| { . } | heap-sep | f | Heap[A] → Heap[A] → Bool |
| ∅ | heap | c | Heap[A] |
| ∅ | set-basic | c | Set[A] |
| ⌜ . ⌝ | heap-sep | f | Bool → Heap[A] → Bool |
| Heap | heap | s | |
| List | list-data | s | |
| Nat | nat-basic | s | |
| Node | node | s | |
| Ref | polyref | s | |
| Set | set-basic | s | |
| True | separation | p | Bool |
| a | dlinked-list-seg | v | A |
| alloc# | heap | pr | : Heap[A] → Ref[A] (nondeterministic) |
| b | dlinked-list-seg | v | A |
| c | dlinked-list-seg | v | A |
| cur | dlinked-list-seg | v | Ref[Node[A]] |
| disj | list-dup | p | List('A) × List('A) |
| disjoint | set-union | p | Set('A) × Set('A) |
| dll | dlinked-list | f | Ref[Node[A]] × List[A] → Heap[Node[A]] → Bool |
| dll | dlinked-list | f | Ref[Node[A]] × Ref[Node[A]] × List[A] → Heap[Node[A]] → Bool |
| dll-trav | dlinked-list-seg | f | Ref[Node[A]] × Ref[Node[A]] × Ref[Node[A]] × Ref[Node[A]] × Ref[Node[A]] × Ref[Node[A]] × Ref[Node[A]] × List[A] → Heap[Node[A]] → Bool |
| dlls | dlinked-list-seg | f | Ref[Node[A]] × Ref[Node[A]] × Ref[Node[A]] × List[A] → Heap[Node[A]] → Bool |
| dlls | dlinked-list-seg | f | Ref[Node[A]] × Ref[Node[A]] × Ref[Node[A]] × Ref[Node[A]] × List[A] → Heap[Node[A]] → Bool |
| dom . | heapfuns | f | Heap[A] → Set[Ref[A]] |
| dups | list-dup | p | List('A) |
| emp | heap-sep | p | Heap('A) |
| false | heap-sep | p | Heap('A) |
| fillfirst | list-last | f | Nat × A × List[A] → List[A] |
| h | dlinked-list-seg | v | Heap[Node[A]] |
| hP | dlinked-list-seg | v | Heap[Node[A]] → Bool |
| hd | dlinked-list-seg | v | Ref[Node[A]] |
| ite | heap-sep | f | Bool × (Heap[A] → Bool) × (Heap[A] → Bool) → Heap[A] → Bool |
| lst | dlinked-list-seg | v | Ref[Node[A]] |
| mklist | list-last | f | A × Nat → List[A] |
| mknode | node | f | Ref[Node[A]] × A × Ref[Node[A]] → Node[A] |
| nd | dlinked-list-seg | v | Node[A] |
| not . | heap-sep | f | (Heap[A] → Bool) → Heap[A] → Bool |
| null | polyref | c | Ref[A] |
| nxt | dlinked-list-seg | v | Ref[Node[A]] |
| precise | heap-sep | p | (Heap('A) → Bool) |
| prv | dlinked-list-seg | v | Ref[Node[A]] |
| r | dlinked-list-seg | v | Ref[Node[A]] |
| rev | list-last | f | List[A] → List[A] |
| true | heap-sep | p | Heap('A) |
| x | dlinked-list-seg | v | List[A] |
| y | dlinked-list-seg | v | List[A] |
| z | dlinked-list-seg | v | List[A] |