Generated Bag constructors, sort-erased #
bagInterMin over two or more terms.
Equations
- Cvc.Untyped.Term.bagInterMinN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_INTER_MIN terms
Instances For
Whether every multiplicity in lft is at most the one in rgt.
Equations
- lft.bagSubbag rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_SUBBAG #[lft, rgt]
Instances For
The empty bag of elements of sort α.
Equations
- Cvc.Untyped.Term.bagEmpty α = do let builtSrt ← pure α >>= Cvc.Srt.bag Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkEmptyBag builtSrt
Instances For
Difference subtracting the multiplicities.
Equations
- lft.bagDifferenceSubtract rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_DIFFERENCE_SUBTRACT #[lft, rgt]
Instances For
Duplicate removal, yielding a bag whose multiplicities are all at most one.
Equations
- b.bagSetof = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_SETOF #[b]
Instances For
bagUnionMax over two or more terms.
Equations
- Cvc.Untyped.Term.bagUnionMaxN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_UNION_MAX terms
Instances For
Whether elm is in b; the element comes first, as in cvc5.
Equations
- elm.bagMember b = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_MEMBER #[elm, b]
Instances For
Union adding the multiplicities.
Equations
- lft.bagUnionDisjoint rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_UNION_DISJOINT #[lft, rgt]
Instances For
The elements of a bag satisfying a predicate, with their multiplicities.
Equations
- p.bagFilter b = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_FILTER #[p, b]
Instances For
Cardinality, counting multiplicities.
Equations
- b.bagCard = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_CARD #[b]
Instances For
An unspecified element of a non-empty bag.
Equations
- b.bagChoose = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_CHOOSE #[b]
Instances For
Union taking the maximum of the multiplicities.
Equations
- lft.bagUnionMax rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_UNION_MAX #[lft, rgt]
Instances For
The bag holding elm count times; the element comes first, as in cvc5.
Equations
- elm.bagMake count = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_MAKE #[elm, count]
Instances For
Intersection taking the minimum of the multiplicities.
Equations
- lft.bagInterMin rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_INTER_MIN #[lft, rgt]
Instances For
Whether some element of a bag satisfies a predicate.
Equations
- p.bagSome b = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_SOME #[p, b]
Instances For
bagUnionDisjoint over two or more terms.
Equations
- Cvc.Untyped.Term.bagUnionDisjointN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_UNION_DISJOINT terms
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Folds f over the elements of b from init, in no specified order.
Equations
- f.bagFold init b = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_FOLD #[f, init, b]
Instances For
Whether every element of a bag satisfies a predicate.
Equations
- p.bagAll b = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_ALL #[p, b]
Instances For
The image of a bag under a function.
Equations
- f.bagMap b = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_MAP #[f, b]
Instances For
Partitions a bag into the equivalence classes of a binary predicate.
The predicate is expected to be an equivalence relation; the result holds one bag per class.
Equations
- p.bagPartition b = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_PARTITION #[p, b]
Instances For
Difference removing every element occurring on the right.
Equations
- lft.bagDifferenceRemove rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_DIFFERENCE_REMOVE #[lft, rgt]
Instances For
Multiplicity of elm in b; the element comes first, as in cvc5.
Equations
- elm.bagCount b = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BAG_COUNT #[elm, b]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Bag's operators, taken apart one level, sort-erased.
- bagMember
[Ω]
(elm b : Term)
: View.Bag
Whether
elmis inb; the element comes first, as in cvc5. - bagSubbag
[Ω]
(lft rgt : Term)
: View.Bag
Whether every multiplicity in
lftis at most the one inrgt. - bagMake
[Ω]
(elm count : Term)
: View.Bag
The bag holding
elmcounttimes; the element comes first, as in cvc5. - bagCount
[Ω]
(elm b : Term)
: View.Bag
Multiplicity of
elminb; the element comes first, as in cvc5. - bagCard
[Ω]
(b : Term)
: View.Bag
Cardinality, counting multiplicities.
- bagSetof
[Ω]
(b : Term)
: View.Bag
Duplicate removal, yielding a bag whose multiplicities are all at most one.
- bagChoose
[Ω]
(b : Term)
: View.Bag
An unspecified element of a non-empty bag.
- bagUnionMax
[Ω]
(kids : Kids)
: View.Bag
Union taking the maximum of the multiplicities.
kidsholds every operand, two or more. - bagUnionDisjoint
[Ω]
(kids : Kids)
: View.Bag
Union adding the multiplicities.
kidsholds every operand, two or more. - bagInterMin
[Ω]
(kids : Kids)
: View.Bag
Intersection taking the minimum of the multiplicities.
kidsholds every operand, two or more. - bagDifferenceSubtract
[Ω]
(lft rgt : Term)
: View.Bag
Difference subtracting the multiplicities.
- bagDifferenceRemove
[Ω]
(lft rgt : Term)
: View.Bag
Difference removing every element occurring on the right.
- bagMap
[Ω]
(f b : Term)
: View.Bag
The image of a bag under a function.
- bagFilter
[Ω]
(p b : Term)
: View.Bag
The elements of a bag satisfying a predicate, with their multiplicities.
- bagFold
[Ω]
(f init b : Term)
: View.Bag
Folds
fover the elements ofbfrominit, in no specified order. - bagAll
[Ω]
(p b : Term)
: View.Bag
Whether every element of a bag satisfies a predicate.
- bagSome
[Ω]
(p b : Term)
: View.Bag
Whether some element of a bag satisfies a predicate.
- bagPartition
[Ω]
(p b : Term)
: View.Bag
Partitions a bag into the equivalence classes of a binary predicate.
The predicate is expected to be an equivalence relation; the result holds one bag per class.
- bagEmpty
[Ω]
: View.Bag
The empty bag of elements of sort
α.
Instances For
Values #
A Cvc.Bag denotes an SMT bag: the empty bag, unioned with one singleton bag per element, each
carrying that element's multiplicity.
The bag term denoting a bag of values.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Cvc.Untyped.Term.instValueToTermBag = { valueToTerm := fun [Cvc.Ω] => Cvc.Untyped.Term.mkBagValue }
Equations
- Cvc.Untyped.Term.instTermToValueBag = { termToValue := fun [Cvc.Ω] => Cvc.Untyped.Term.getBagValue }