| Symbol | Specification | Kind | Type |
|---|
| # . | list-data | f | List('a) → Nat |
| #oc | list-perm | f | 'a × List('a) → Nat |
| . ' | list | f | 'a → List('a) |
| . + . | 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) |
| . ++ . | list-dup | f | List('a) × 'a → List('a) |
| . +1 | nat-basic | f | Nat → Nat |
| . +2 . | list | f | 'a × 'a → List('a) |
| . - . | nat | pf | Nat × Nat → Nat with λ n, m. n ≥ m |
| . -1 | nat-basic | pf | Nat → Nat with λ n. n ≠ 0 |
| . -1l . | list-del | f | List('a) × 'a → List('a) |
| . -l . | list-del | f | List('a) × 'a → List('a) |
| . -p . | list-del | f | List('a) × Nat → List('a) |
| . .R? | RWevent | p | RWevent |
| . .W? | RWevent | p | RWevent |
| . .butlast | list-last | pf | List('a) → List('a) with λ x. x ≠ [] |
| . .count ( . ) | filter-count | f | List('a) × ('a → Bool) → Nat |
| . .count ( . ) | filter-count | pf | List('a) × Nat × Nat × ('a → Bool) → Nat with λ x, m, n, p. m ≤ n ∧ n ≤ # x |
| . .distinct | list-dup | f | List('a) → List('a) |
| . .drop ( . ) | list-del | pf | List('a) × Nat → List('a) with λ x, n. n ≤ # x |
| . .dropRight ( . ) | list-last | pf | List('a) × Nat → List('a) with λ x, n. n ≤ # x |
| . .exists ( . ) | forall-indexWhere | p | List('a) × ('a → Type(Bool)) |
| . .filter ( . ) | filter-count | f | List('a) × ('a → Bool) → List('a) |
| . .foldLeft ( . ) | list | f | List('a) × 'b × ('b × 'a → 'b) → 'b |
| . .forall ( . ) | forall-indexWhere | p | List('a) × ('a → Type(Bool)) |
| . .gstate | PLIB | f | PLIBState → PLIBGState |
| . .gstate:= . | PLIB | f | PLIBState × PLIBGState → PLIBState |
| . .h | PLIB | f | PLIBGState → List((RWevent, Bool)) |
| . .h:= . | PLIB | f | PLIBGState × List((RWevent, Bool)) → PLIBGState |
| . .head | list-data | pf | List('a) → 'a with λ x. x ≠ [] |
| . .il | PLIB | f | PLIBLState → L |
| . .il:= . | PLIB | f | PLIBLState × L → PLIBLState |
| . .indexOf ( . ) | list-del | f | List('a) × 'a → Nat |
| . .indexWhere ( . ) | forall-indexWhere | f | List('a) × ('a → Bool) → Nat |
| . .invAPersistl | PLIB | pf | PLIBAction → L with λ a. ∃ l. a = globalAPersist(l) |
| . .iv | PLIB | f | PLIBLState → V |
| . .iv:= . | PLIB | f | PLIBLState × V → PLIBLState |
| . .l | RWevent | f | RWevent → L |
| . .l | PLIB | pf | PLIBAction → L with λ a. ∃ t, l. a = AInvRead(t, l) |
| . .last | list-last | pf | List('a) → 'a with λ x. x ≠ [] |
| . .lastPersistedOrElse ( . ) | PLIB-preds | p | List((RWevent, Bool)) × L × Bool |
| . .loc | PLIB | pf | PLIBAction → L with λ a. ∃ t, l, v. a = AInvWrite(t, l, v) |
| . .lsf | PLIB | f | PLIBState → T → PLIBLState |
| . .lsf:= . | PLIB | f | PLIBState × (T → PLIBLState) → PLIBState |
| . .map ( . ) | list | f | List('a) × ('a → 'b) → List('b) |
| . .ov | PLIB | f | PLIBLState → V |
| . .ov:= . | PLIB | f | PLIBLState × V → PLIBLState |
| . .pcf | PLIB | f | PLIBState → T → PLIBPC |
| . .pcf:= . | PLIB | f | PLIBState × (T → PLIBPC) → PLIBState |
| . .pm | PLIB | f | PLIBGState → L → V |
| . .pm:= . | PLIB | f | PLIBGState × (L → V) → PLIBGState |
| . .sublist ( . ) | list-del | pf | List('a) × Nat × Nat → List('a) with λ x, n, m. n + m ≤ # x |
| . .t | RWevent | f | RWevent → T |
| . .t | PLIB | f | PLIBLState → T |
| . .t | PLIB | pf | PLIBAction → T with λ a.
(∃ t. a = callTSync(t)) ∨ (∃ t. a = callARun(t)) ∨ (∃ t. a = ARetWrite(t))
∨ (∃ t, v. a = ARetRead(t, v)) ∨ (∃ t, l, v. a = AInvWrite(t, l, v))
∨ (∃ t, l. a = AInvRead(t, l)) ∨ (∃ t. a = ADoWrite(t)) ∨ (∃ t. a = ADoRead(t)) |
| . .t:= . | PLIB | f | PLIBLState × T → PLIBLState |
| . .tail | list-data | pf | List('a) → List('a) with λ x. x ≠ [] |
| . .take ( . ) | list-del | pf | List('a) × Nat → List('a) with λ x, n. n ≤ # x |
| . .takeRight ( . ) | list-del | pf | List('a) × Nat → List('a) with λ x, n. n ≤ # x |
| . .v | RWevent | f | RWevent → V |
| . .v | PLIB | pf | PLIBAction → V with λ a. ∃ t, v. a = ARetRead(t, v) |
| . .val | PLIB | pf | PLIBAction → V with λ a. ∃ t, l, v. a = AInvWrite(t, l, v) |
| . .vm | PLIB | f | PLIBGState → L → V |
| . .vm:= . | PLIB | f | PLIBGState × (L → V) → PLIBGState |
| . < . | nat-basic | p | Nat × Nat |
| . < . | list-data | p | List('a) × List('a) |
| . > . | nat | p | Nat × Nat |
| . [ . := . ] | list-getput | pf | List('a) × Nat × 'a → List('a) with λ x, n, a. n < # x |
| . [ . ] | list-getput | pf | List('a) × Nat → 'a with λ x, n. n < # x |
| . \ . | list-set | f | List('a) × List('a) → List('a) |
| . | . | PLIB-preds | f | List((RWevent, Bool)) × T → List((RWevent, Bool)) |
| . | . | PLIB-preds | f | List((RWevent, Bool)) × Bool → List((RWevent, Bool)) |
| . | . | PLIB-preds | f | List((RWevent, Bool)) × L → List((RWevent, Bool)) |
| . |R | PLIB-preds | f | List((RWevent, Bool)) → List((RWevent, Bool)) |
| . |W | PLIB-preds | f | List((RWevent, Bool)) → List((RWevent, Bool)) |
| . ∈ . | list | p | 'a × List('a) |
| . ∪ . | list-set | f | List('a) × List('a) → List('a) |
| . ≤ . | nat | p | Nat × Nat |
| . ≥ . | nat | p | Nat × Nat |
| . ⊆ . | list-set | p | List('a) × List('a) |
| . ⊆m . | list-perm | p | List('a) × List('a) |
| . ⊑ . | list-last | p | List('a) × List('a) |
| . ⊑p . | PLIB-preds | p | List((RWevent, Bool)) × List((RWevent, Bool)) |
| . ⊒ . | list-last | p | List('a) × List('a) |
| . ⊕ . | PLIB-preds | f | (L → V) × List((RWevent, Bool)) → L → V |
| . intersect . | list-set | f | List('a) × List('a) → List('a) |
| . zip . | filter-count | f | List('a) × List('b) → List(('a, 'b)) |
| [] | list-data | c | List('a) |
| τ | PLIB | c | PLIBAction |
| ∅ | memory | f | L → V |
| ACrash | PLIB | pr | (L → V) : (L → V) × List((RWevent, Bool)) × (T → PLIBPC) |
| ADOREAD | PLIB | pr | T × L × (L → V) : V × List((RWevent, Bool)) |
| ADoRead | PLIB | f | T → PLIBAction |
| ADoWrite | PLIB | f | T → PLIBAction |
| AInvRead | PLIB | f | T × L → PLIBAction |
| AInvWrite | PLIB | f | T × L × V → PLIBAction |
| APersist | PLIB | pr | L : (L → V) × List((RWevent, Bool)) |
| ARETREAD | PLIB | pr | V : : V |
| ARetRead | PLIB | f | T × V → PLIBAction |
| ARetWrite | PLIB | f | T → PLIBAction |
| ARun | PLIB | pr | : |
| DOWRITE | PLIB | pr | T × L × V : (L → V) × List((RWevent, Bool)) |
| INVREAD | PLIB | pr | L : L |
| INVWRITE | PLIB | pr | L × V : L × V |
| L | memory | s | |
| List | list-data | s | |
| Nat | nat-basic | s | |
| O | memory | c | V |
| PLIBAction | PLIB | s | |
| PLIBGInv | PLIB | p | PLIBGState |
| PLIBGState | PLIB | s | |
| PLIBInv | PLIB | p | PLIBGState × (T → Type(PLIBLState)) × (T → Type(PLIBPC)) |
| PLIBLInv | PLIB | p | PLIBGState × PLIBLState × PLIBPC |
| PLIBLState | PLIB | s | |
| PLIBPC | PLIB | s | |
| PLIBRely | PLIB | p | PLIBGState × T × PLIBGState |
| PLIBState | PLIB | s | |
| R | RWevent | f | T × L × V → RWevent |
| RETWRITE | PLIB | pr | : |
| RWevent | RWevent | s | |
| T | memory | s | |
| TSync | PLIB | pr | T × List((RWevent, Bool)) : |
| V | memory | s | |
| W | RWevent | f | T × L × V → RWevent |
| a | PLIB-proofs | v | PLIBAction |
| allReadsOK | PLIB-preds | p | List((RWevent, Bool)) |
| allReadsOKInd | PLIB-preds | p | (L → Type(V)) × (L → Type(Bool)) × List((RWevent, Bool)) |
| allWritesOK | PLIB-preds | p | List((RWevent, Bool)) |
| allWritesOKInd | PLIB-preds | p | (T → Type(Bool)) × (L → Type(Bool)) × List((RWevent, Bool)) |
| b | PLIB-proofs | v | Bool |
| callARun | PLIB | f | T → PLIBAction |
| callTSync | PLIB | f | T → PLIBAction |
| crashed | PLIB | c | PLIBPC |
| disj | list-dup | p | List('a) × List('a) |
| dups | list-dup | p | List('a) |
| e | PLIB-proofs | v | RWevent |
| events | PLIB-preds | f | List((RWevent, Bool)) → List(RWevent) |
| fillfirst | list-last | f | Nat × 'a × List('a) → List('a) |
| firstVolWrite | PLIB-preds | f | L × List((RWevent, Bool)) → Nat |
| frome | list-del | f | List('a) × 'a → List('a) |
| globalACrash | PLIB | c | PLIBAction |
| globalAPersist | PLIB | f | L → PLIBAction |
| gs | PLIB-proofs | v | PLIBGState |
| gstate | PLIB-proofs | v | PLIBGState |
| gstepf | PLIB | f | PLIBGState × PLIBLState × PLIBPC × PLIBAction → PLIBGState |
| h | PLIB-proofs | v | List((RWevent, Bool)) |
| idle | PLIB | c | PLIBPC |
| il | PLIB-proofs | v | L |
| invAPersistl | PLIB-proofs | v | L |
| invRead | PLIB | c | PLIBPC |
| invWrite | PLIB | c | PLIBPC |
| iv | PLIB-proofs | v | V |
| l | PLIB-proofs | v | L |
| loc | PLIB-proofs | v | L |
| ls | PLIB-proofs | v | PLIBLState |
| lsf | PLIB-proofs | v | T → PLIBLState |
| lstep | PLIB | p | PLIBGState × PLIBLState × PLIBPC × PLIBAction × PLIBGState × PLIBLState × PLIBPC |
| lstepf | PLIB | f | PLIBGState × PLIBLState × PLIBPC × PLIBAction → PLIBLState |
| m | PLIB-proofs | v | Nat |
| mkPLIBgs | PLIB | f | (L → V) × (L → V) × List((RWevent, Bool)) → PLIBGState |
| mkPLIBls | PLIB | f | T × L × V × V → PLIBLState |
| mklist | list-last | f | 'a × Nat → List('a) |
| mkstate | PLIB | f | PLIBGState × (T → PLIBLState) × (T → PLIBPC) → PLIBState |
| n | PLIB-proofs | v | Nat |
| ov | PLIB-proofs | v | V |
| pc | PLIB-proofs | v | PLIBPC |
| pcf | PLIB-proofs | v | T → PLIBPC |
| pcstepf | PLIB | f | PLIBGState × PLIBLState × PLIBPC × PLIBAction → PLIBPC |
| perm | list-perm | p | List('a) × List('a) |
| persistDependentReads | PLIB-preds | f | L × List((RWevent, Bool)) → List((RWevent, Bool)) |
| plibInit | PLIB | p | PLIBState |
| plibStep | PLIB | p | PLIBState × PLIBAction × PLIBState |
| pm | PLIB-proofs | v | L → V |
| pre | PLIB | p | PLIBGState × PLIBLState × PLIBPC × PLIBAction |
| ready | PLIB | c | PLIBPC |
| rely | PLIB-preds | p | T × List((RWevent, Bool)) × List((RWevent, Bool)) |
| resRead | PLIB | c | PLIBPC |
| resWrite | PLIB | c | PLIBPC |
| rev | list-last | f | List('a) → List('a) |
| s | PLIB-proofs | v | PLIBState |
| t | PLIB-proofs | v | T |
| tid | PLIB-proofs | v | T |
| v | PLIB-proofs | v | V |
| val | PLIB-proofs | v | V |
| vm | PLIB-proofs | v | L → V |
| vpe | PLIB-proofs | v | (RWevent, Bool) |