Bags over nullables, typed #
Each lifted operator has its plain counterpart's signature with an Option around every argument
and around the result, and nothing else changed. The lift is strict: none unless every
argument is some.
The bag term becomes nullable, not its elements — Option (Bag α), not Bag (Option α). The
element type is untouched, so the Ord binders are the plain operators'.
bagInterMin lifted over nullables, strictly: none unless every argument is some.
Equations
- lft.bagInterMin? rgt = Cvc.Untyped.Term.bagInterMin? lft rgt
Instances For
bagInterMin? over two or more terms.
Equations
- Cvc.Typed.Term.bagInterMinN? terms atLeastTwoElements = Cvc.Untyped.Term.bagInterMinN? terms atLeastTwoElements
Instances For
bagDifferenceRemove lifted over nullables, strictly: none unless every argument is some.
Equations
- lft.bagDifferenceRemove? rgt = Cvc.Untyped.Term.bagDifferenceRemove? lft rgt
Instances For
bagUnionMax? over two or more terms.
Equations
- Cvc.Typed.Term.bagUnionMaxN? terms atLeastTwoElements = Cvc.Untyped.Term.bagUnionMaxN? terms atLeastTwoElements
Instances For
bagUnionDisjoint? over two or more terms.
Equations
- Cvc.Typed.Term.bagUnionDisjointN? terms atLeastTwoElements = Cvc.Untyped.Term.bagUnionDisjointN? terms atLeastTwoElements
Instances For
bagDifferenceSubtract lifted over nullables, strictly: none unless every argument is some.
Equations
- lft.bagDifferenceSubtract? rgt = Cvc.Untyped.Term.bagDifferenceSubtract? lft rgt
Instances For
bagUnionMax lifted over nullables, strictly: none unless every argument is some.
Equations
- lft.bagUnionMax? rgt = Cvc.Untyped.Term.bagUnionMax? lft rgt
Instances For
bagSubbag lifted over nullables, strictly: none unless every argument is some.
Equations
- lft.bagSubbag? rgt = Cvc.Untyped.Term.bagSubbag? lft rgt
Instances For
bagUnionDisjoint lifted over nullables, strictly: none unless every argument is some.
Equations
- lft.bagUnionDisjoint? rgt = Cvc.Untyped.Term.bagUnionDisjoint? lft rgt