TLX.Sets (TLX v0.5.2)

Copy Markdown

Set operation constructors for use in TLA+ expressions.

These functions build tagged tuples that the emitters translate to TLA+ set syntax.

union(a, b)              # a \union b
intersect(a, b)          # a \intersect b
difference(a, b)         # a \ b
subset(a, b)             # a \subseteq b
cardinality(s)           # Cardinality(s)
set_of([e1, e2])         # {e1, e2}
in_set(elem, s)          # elem \in s
set_map(:x, :set, expr)  # {expr : x \in set}
power_set(s)             # SUBSET s
distributed_union(s)     # UNION s

Summary

Functions

Set cardinality: Cardinality(s)

Set difference: a \ b (elements in a but not in b)

Distributed union: UNION s — flatten a set of sets.

Set comprehension (filter): {var \in set : expr} in TLA+.

Set membership test: elem \in s

Set intersection: a \intersect b

Power set: SUBSET s — the set of all subsets of s.

Set image/map: {expr : var \in set} in TLA+.

Set literal: {e1, e2, ...}

Subset relation: a \subseteq b

Set union: a \union b

Functions

cardinality(s)

Set cardinality: Cardinality(s)

difference(a, b)

Set difference: a \ b (elements in a but not in b)

distributed_union(s)

Distributed union: UNION s — flatten a set of sets.

filter(var, set, expr)

Set comprehension (filter): {var \in set : expr} in TLA+.

in_set(elem, s)

Set membership test: elem \in s

intersect(a, b)

Set intersection: a \intersect b

power_set(s)

Power set: SUBSET s — the set of all subsets of s.

set_map(var, set, expr)

Set image/map: {expr : var \in set} in TLA+.

set_of(elements)

Set literal: {e1, e2, ...}

subset(a, b)

Subset relation: a \subseteq b

union(a, b)

Set union: a \union b