Sets
Basic Set Term Builders
- cvc5.pythonic.SetSort(s)
Create a set sort over element sort s
- cvc5.pythonic.Set(name, elem_sort)
Creates a symbolic set of elements
- cvc5.pythonic.EmptySet(s)
Create the empty set
>>> EmptySet(IntSort()) Empty(Set(Int))
- cvc5.pythonic.Singleton(s)
The single element set of just e
>>> Singleton(IntVal(1)) Singleton(1)
- cvc5.pythonic.FullSet(s)
Create the full set
>>> FullSet(IntSort()) Full(Set(Int))
Set Operators
- cvc5.pythonic.SetUnion(*args)
Take the union of sets
>>> a = Const('a', SetSort(IntSort())) >>> b = Const('b', SetSort(IntSort())) >>> SetUnion(a, b) SetUnion(a, b)
- cvc5.pythonic.SetIntersect(*args)
Take the intersection of sets
>>> a = Const('a', SetSort(IntSort())) >>> b = Const('b', SetSort(IntSort())) >>> SetIntersect(a, b) SetIntersect(a, b)
- cvc5.pythonic.SetAdd(s, e)
Add element e to set s
>>> a = Const('a', SetSort(IntSort())) >>> SetAdd(a, 1) SetAdd(a, 1) >>> SetAdd(a, 1).arg(0) a
- cvc5.pythonic.SetDel(s, e)
Remove element e to set s
>>> a = Const('a', SetSort(IntSort())) >>> SetDel(a, 1) SetDifference(a, Singleton(1))
- cvc5.pythonic.SetComplement(s)
The complement of set s
>>> a = Const('a', SetSort(IntSort())) >>> SetComplement(a) SetComplement(a)
- cvc5.pythonic.SetDifference(a, b)
The set difference of a and b
>>> a = Const('a', SetSort(IntSort())) >>> b = Const('b', SetSort(IntSort())) >>> SetDifference(a, b) SetDifference(a, b)
- cvc5.pythonic.SetMinus(a, b)
The set difference of a and b
>>> a = Const('a', SetSort(IntSort())) >>> b = Const('b', SetSort(IntSort())) >>> SetMinus(a, b) SetDifference(a, b)
- cvc5.pythonic.IsMember(e, s)
Check if e is a member of set s
>>> a = Const('a', SetSort(IntSort())) >>> IsMember(1, a) IsMember(1, a)
- cvc5.pythonic.IsSubset(a, b)
Check if a is a subset of b
>>> a = Const('a', SetSort(IntSort())) >>> b = Const('b', SetSort(IntSort())) >>> IsSubset(a, b) IsSubset(a, b)
See the following operator overload for set terms:
is member:
cvc5.pythonic.SetRef.__getitem__()
Classes (with overloads)
- class cvc5.pythonic.SetSortRef(ast, ctx=None)
Array sorts.
- domain()
Return the domain of the set sort self.
>>> A = SetSort(IntSort()) >>> A.domain() Int
- range()
Return the “range” of the set sort self. Included for compatibility with arrays.
>>> A = SetSort(IntSort()) >>> A.range() Bool
- class cvc5.pythonic.SetRef(ast, ctx=None, reverse_children=False)
Array expressions.
- __and__(other)
Intersection
>>> a = Const('a', SetSort(IntSort())) >>> b = Const('b', SetSort(IntSort())) >>> a & b SetIntersect(a, b)
- __getitem__(arg)
Return the SMT expression self[arg]. Included for compatibility with arrays.
>>> a = Set('a', IntSort()) >>> i = Int('i') >>> a[i] IsMember(i, a)
- __or__(other)
Union
>>> a = Const('a', SetSort(IntSort())) >>> b = Const('b', SetSort(IntSort())) >>> a | b SetUnion(a, b)
- default()
Always returns false.
Included for compatibility with Arrays.
>>> Set('a', IntSort()).default() False
- domain()
Shorthand for self.sort().domain().
>>> a = Set('a', IntSort()) >>> a.domain() Int
- range()
Shorthand for self.sort().range(). Included for compatibility with arrays.
>>> a = Set('a', IntSort()) >>> a.range() Bool
- sort()
Return the set sort of the set expression self.
>>> a = Set('a', IntSort()) >>> a.sort() Set(Int)