Generated Set constructors, sort-erased #
setUnion over two or more terms.
Equations
- Cvc.Untyped.Term.setUnionN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_UNION terms
Instances For
Inserts elm into s; the element comes first, as in cvc5.
Equations
- elm.setInsert s = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_INSERT #[elm, s]
Instances For
The empty set of elements of sort α.
Equations
- Cvc.Untyped.Term.setEmpty α = do let builtSrt ← pure α >>= Cvc.Srt.set Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkEmptySet builtSrt
Instances For
Whether elm is in s; the element comes first, as in cvc5.
Equations
- elm.setMember s = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_MEMBER #[elm, s]
Instances For
Set intersection.
Equations
- lft.setInter rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_INTER #[lft, rgt]
Instances For
The image of a set under a function.
Equations
- f.setMap s = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_MAP #[f, s]
Instances For
Whether every element of a set satisfies a predicate.
Equations
- p.setAll s = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_ALL #[p, s]
Instances For
The set of every element of sort α.
Equations
- Cvc.Untyped.Term.setUniverse α = do let builtSrt ← pure α >>= Cvc.Srt.set Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkUniverseSet builtSrt
Instances For
The singleton set containing one element.
Equations
- elm.setSingleton = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_SINGLETON #[elm]
Instances For
The elements of a set satisfying a predicate.
Equations
- p.setFilter s = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_FILTER #[p, s]
Instances For
Folds f over the elements of s from init, in no specified order.
Equations
- f.setFold init s = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_FOLD #[f, init, s]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Whether s is empty.
Equations
- s.setIsEmpty = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_IS_EMPTY #[s]
Instances For
Whether lft is a subset of rgt.
Equations
- lft.setSubset rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_SUBSET #[lft, rgt]
Instances For
An unspecified element of a non-empty set.
Equations
- s.setChoose = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_CHOOSE #[s]
Instances For
Set difference.
Equations
- lft.setMinus rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_MINUS #[lft, rgt]
Instances For
Set union.
Equations
- lft.setUnion rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_UNION #[lft, rgt]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
setMinus over two or more terms.
Equations
- Cvc.Untyped.Term.setMinusN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_MINUS terms
Instances For
Set complement, relative to the universe set of the element sort.
Equations
- s.setComplement = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_COMPLEMENT #[s]
Instances For
setInter over two or more terms.
Equations
- Cvc.Untyped.Term.setInterN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_INTER terms
Instances For
Whether s has exactly one element.
Equations
- s.setIsSingleton = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_IS_SINGLETON #[s]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Whether some element of a set satisfies a predicate.
Equations
- p.setSome s = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_SOME #[p, s]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Cardinality.
Equations
- s.setCard = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_CARD #[s]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Set's operators, taken apart one level, sort-erased.
- setMember
[Ω]
(elm s : Term)
: View.Set
Whether
elmis ins; the element comes first, as in cvc5. - setSubset
[Ω]
(lft rgt : Term)
: View.Set
Whether
lftis a subset ofrgt. - setIsEmpty
[Ω]
(s : Term)
: View.Set
Whether
sis empty. - setIsSingleton
[Ω]
(s : Term)
: View.Set
Whether
shas exactly one element. - setSingleton
[Ω]
(elm : Term)
: View.Set
The singleton set containing one element.
- setInsert
[Ω]
(elm s : Term)
: View.Set
Inserts
elmintos; the element comes first, as in cvc5. - setUnion
[Ω]
(kids : Kids)
: View.Set
Set union.
kidsholds every operand, two or more. - setInter
[Ω]
(kids : Kids)
: View.Set
Set intersection.
kidsholds every operand, two or more. - setMinus
[Ω]
(kids : Kids)
: View.Set
Set difference.
kidsholds every operand, two or more. - setComplement
[Ω]
(s : Term)
: View.Set
Set complement, relative to the universe set of the element sort.
- setCard
[Ω]
(s : Term)
: View.Set
Cardinality.
- setChoose
[Ω]
(s : Term)
: View.Set
An unspecified element of a non-empty set.
- setMap
[Ω]
(f s : Term)
: View.Set
The image of a set under a function.
- setFilter
[Ω]
(p s : Term)
: View.Set
The elements of a set satisfying a predicate.
- setFold
[Ω]
(f init s : Term)
: View.Set
Folds
fover the elements ofsfrominit, in no specified order. - setAll
[Ω]
(p s : Term)
: View.Set
Whether every element of a set satisfies a predicate.
- setSome
[Ω]
(p s : Term)
: View.Set
Whether some element of a set satisfies a predicate.
- setEmpty
[Ω]
: View.Set
The empty set of elements of sort
α. - setUniverse
[Ω]
: View.Set
The set of every element of sort
α.
Instances For
Whether a term is a set value: a canonical union of singletons of values, as a model answers.
A set built from constructors is generally not one, and the universe set never is.
Equations
- term.isSetValue = (Cvc.Untyped.Term.toUnsafe✝ term).isSetValue
Instances For
The set term denoting a set of values.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The set of values a constant set term denotes.
Equations
- term.getSetValue = do let elems ← term.getSetElems Array.foldlM (fun (set : Cvc.Set α) (elem : Cvc.Untyped.Term) => Std.TreeSet.insert set <$> elem.extractValue) Cvc.Set.empty elems
Instances For
Equations
- Cvc.Untyped.Term.instValueToTermSet = { valueToTerm := fun [Cvc.Ω] => Cvc.Untyped.Term.mkSetValue }
Equations
- Cvc.Untyped.Term.instTermToValueSet = { termToValue := fun [Cvc.Ω] => Cvc.Untyped.Term.getSetValue }
Comprehension #
{ elem | bvs. pred }, a set built by binding variables. cvc5 supports it only under sets-exp,
and its reasoning about one is incomplete: even a membership in a finite comprehension can come back
unknown.
The set of the values elem takes, over the bindings of bvs that satisfy pred.
Equations
- Cvc.Untyped.Term.setComprehension bvs pred elem _nonEmpty = do let vars ← bvs.toTerm Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SET_COMPREHENSION #[vars, pred, elem]