TLX.Sequences
(TLX v0.5.2)
Copy Markdown
Sequence operation constructors for use in TLA+ expressions.
These require EXTENDS Sequences in the TLA+ module. Use
extends [:Sequences] in your spec to include it.
len(s) # Len(s)
append(s, x) # Append(s, x)
head(s) # Head(s)
tail(s) # Tail(s)
sub_seq(s, m, n) # SubSeq(s, m, n)
concat(s, t) # s \o t
seq_set(s) # Seq(s) — type of finite sequences over s
select_seq(:x, s, pred) # SelectSeq(s, LAMBDA x: pred)
Summary
Functions
Append element to sequence: Append(s, x)
Sequence concatenation: s \o t
First element of sequence: Head(s)
Sequence length: Len(s)
Sequence filter: SelectSeq(s, LAMBDA var: pred) in TLA+.
Set of all finite sequences over s: Seq(s) (type constraint).
Subsequence: SubSeq(s, m, n)
All but first element: Tail(s)
Functions
Append element to sequence: Append(s, x)
Sequence concatenation: s \o t
First element of sequence: Head(s)
Sequence length: Len(s)
Sequence filter: SelectSeq(s, LAMBDA var: pred) in TLA+.
Var-first signature mirrors filter/3, choose/3, set_map/3 —
the binding variable is always the first argument for three-arg
binding operators in TLX.
Set of all finite sequences over s: Seq(s) (type constraint).
Subsequence: SubSeq(s, m, n)
All but first element: Tail(s)