Boolean and sort-generic over nullables, sort-erased #
One lifted constructor per liftable operator, <id>?, each answering none unless every argument
is some.
equal? is not Option's equality. The lift is strict, so equal? of two nones is none,
not some true. The same goes for distinct? and for ite?, which is strict in its condition.
equal? over any number of terms: none gives some true, one gives some true. on0 and on1 override these.
Equations
- One or more equations did not get rendered due to their size.
Instances For
and lifted over nullables, strictly: none unless every argument is some.
Equations
- lft.and? rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.AND #[lft, rgt]
Instances For
or? over any number of terms: none gives some false, one gives that term. on0 and on1 override these.
Equations
- One or more equations did not get rendered due to their size.
Instances For
equal lifted over nullables, strictly: none unless every argument is some.
Equations
- lft.equal? rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.EQUAL #[lft, rgt]
Instances For
implies lifted over nullables, strictly: none unless every argument is some.
Equations
- lft.implies? rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.IMPLIES #[lft, rgt]
Instances For
distinct? over two or more terms.
Equations
- Cvc.Untyped.Term.distinctN? terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.DISTINCT terms
Instances For
equal? over two or more terms.
Equations
- Cvc.Untyped.Term.equalN? terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.EQUAL terms
Instances For
and? over any number of terms: none gives some true, one gives that term. on0 and on1 override these.
Equations
- One or more equations did not get rendered due to their size.
Instances For
or? over two or more terms.
Equations
- Cvc.Untyped.Term.orN? terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.OR terms
Instances For
xor? over any number of terms: none gives some false, one gives that term. on0 and on1 override these.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ite lifted over nullables, strictly: none unless every argument is some.
Equations
- cnd.ite? thn els = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.ITE #[cnd, thn, els]
Instances For
distinct lifted over nullables, strictly: none unless every argument is some.
Equations
- lft.distinct? rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.DISTINCT #[lft, rgt]
Instances For
and? over two or more terms.
Equations
- Cvc.Untyped.Term.andN? terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.AND terms
Instances For
not lifted over nullables, strictly: none unless every argument is some.
Equations
- boolTerm.not? = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.NOT #[boolTerm]
Instances For
or lifted over nullables, strictly: none unless every argument is some.
Equations
- lft.or? rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.OR #[lft, rgt]
Instances For
xor lifted over nullables, strictly: none unless every argument is some.
Equations
- lft.xor? rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.XOR #[lft, rgt]
Instances For
xor? over two or more terms.
Equations
- Cvc.Untyped.Term.xorN? terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.XOR terms
Instances For
implies? over two or more terms.
Equations
- Cvc.Untyped.Term.impliesN? terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.IMPLIES terms