| Symbol | Specification | Kind | Type |
|---|
| # . | map | f | Map[A, B] → Nat |
| . ( . ) | map | pf | Map[A, B] × A → B with λ st, a. a ∈ st |
| . ( . := . ) | map | f | Map[A, B] × A × B → Map[A, B] |
| . + . | nat-basic | f | Nat × Nat → Nat |
| . +1 | nat-basic | f | Nat → Nat |
| . +h . | heapmap | pf | Map[Ref[A], A] × Ref[A] → Map[Ref[A], A] with λ h, r. ¬ null ∈ h ∧ r ≠ null ∧ ¬ r ∈ h |
| . - . | nat | pf | Nat × Nat → Nat with λ n, m. n ≥ m |
| . -- . | map | f | Map[A, B] × A → Map[A, B] |
| . --h . | heapmap | pf | Map[Ref[A], A] × Ref[A] → Map[Ref[A], A] with λ h, r. ¬ null ∈ h ∧ r ≠ null ∧ r ∈ h |
| . -1 | nat-basic | pf | Nat → Nat with λ n. n ≠ 0 |
| . < . | nat-basic | p | Nat × Nat |
| . > . | nat | p | Nat × Nat |
| . [ . := . ]h | heapmap | pf | Map[Ref[A], A] × Ref[A] × A → Map[Ref[A], A] with λ h, r, o. ¬ null ∈ h ∧ r ≠ null ∧ r ∈ h |
| . [ . ]h | heapmap | pf | Map[Ref[A], A] × Ref[A] → A with λ h, r. ¬ null ∈ h ∧ r ≠ null ∧ r ∈ h |
| . ∈ . | map | p | 'A × Map('A, 'B) |
| . ≤ . | nat | p | Nat × Nat |
| . ≥ . | nat | p | Nat × Nat |
| . ⊆ . | map | p | Map('A, 'B) × Map('A, 'B) |
| ∅ | map | c | Map[A, B] |
| Map | map | s | |
| Nat | nat-basic | s | |
| Ref | polyref | s | |
| a | heapmap | v | A |
| alloc# | heapmap | pr | : Map[Ref[A], A] → Ref[A] (nondeterministic) |
| b | heapmap | v | B |
| c | heapmap | v | C |
| d | heapmap | v | D |
| h | heapmap | v | Map[Ref[A], A] |
| hP | heapmap | v | Map[Ref[A], A] → Bool |
| n | heapmap | v | Nat |
| null | polyref | c | Ref[A] |
| r | heapmap | v | Ref[A] |