| Symbol | Specification | Kind | Type |
|---|
| # . | heap | f | Heap[A] → Nat |
| . ( . ) | 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 |
| . + . | nat-basic | f | Nat × Nat → Nat |
| . ++ . | heap | pf | Heap[A] × Ref[A] → Heap[A] with λ h, r. r ≠ null ∧ ¬ r ∈ h |
| . +1 | nat-basic | f | Nat → Nat |
| . - . | nat | pf | Nat × Nat → Nat with λ n, m. n ≥ m |
| . -- . | heap | pf | Heap[A] × Ref[A] → Heap[A] with λ h, r. r ≠ null ∧ r ∈ h |
| . -1 | nat-basic | pf | Nat → Nat with λ n. n ≠ 0 |
| . < . | nat-basic | p | Nat × Nat |
| . > . | nat | p | Nat × Nat |
| . ∈ . | heap | p | Ref('A) × Heap('A) |
| . ≤ . | nat | p | Nat × Nat |
| . ≥ . | nat | p | Nat × Nat |
| ∅ | heap | c | Heap[A] |
| Heap | heap | s | |
| Nat | nat-basic | s | |
| Ref | polyref | s | |
| alloc# | heap | pr | : Heap[A] → Ref[A] (nondeterministic) |
| d | heap | v | A |
| h | heap | v | Heap[A] |
| hP | heap | v | Heap[A] → Bool |
| n | heap | v | Nat |
| null | polyref | c | Ref[A] |
| o | heap | v | A |
| r | heap | v | Ref[A] |