package smtml
Module Expr.SetSource
The set type
Basic functions
mem elt set is true if elt is contained in set, O(log(n)) complexity.
add elt set adds element elt to the set. Preserves physical equality if elt was already present. O(log(n)) complexity.
cardinal set is the size of the set (number of elements), O(n) complexity.
remove elt set returns a set containing all elements of set except elt. Returns a value physically equal to set if elt is not present.
Iterators
filter f set is the subset of set that only contains the elements that satisfy f.
for_all f set is true if f is true on all elements of set. Short-circuits on first false.
fold f set acc returns f elt_n (... (f elt_1 acc) ...), where elt_1, ..., elt_n are the elements of set.
split elt set returns s_lt, present, s_gt where s_lt contains all elements of set smaller than elt, s_gt all those greater than elt, and present is true if elt is in set.
Functions on pairs of sets
union a b is the set union of a and b, i.e. the set containing all elements that are either in a or b.
inter a b is the set intersection of a and b, i.e. the set containing all elements that are in both a or b.
Conversion functions
to_seq st iterates the whole set.
to_rev_seq st iterates the whole set.
add_seq s st adds all elements of the sequence s to st in order.
of_seq s creates a new set from the elements of s.
Smtml Specific
get_symbols exprs extracts all symbolic variables from a list of expressions.
inline_symbol_values symbol_map set replaces each symbol in all expressions of set by its image in symbol_map.