Boolean and sort-generic 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.
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.
xor? over any number of terms: none gives some false, one gives that term.
Equations
- Cvc.Typed.Term.xorN'? terms = Cvc.Untyped.Term.xorN'? terms
Instances For
xor? over two or more terms.
Equations
- Cvc.Typed.Term.xorN? terms atLeastTwoElements = Cvc.Untyped.Term.xorN? terms atLeastTwoElements
Instances For
equal? over two or more terms.
Equations
- Cvc.Typed.Term.equalN? terms atLeastTwoElements = Cvc.Untyped.Term.equalN? terms atLeastTwoElements
Instances For
equal? over any number of terms: none gives some true, one gives some true.
Equations
- Cvc.Typed.Term.equalN'? terms = Cvc.Untyped.Term.equalN'? terms
Instances For
or? over any number of terms: none gives some false, one gives that term.
Equations
- Cvc.Typed.Term.orN'? terms = Cvc.Untyped.Term.orN'? terms
Instances For
implies? over two or more terms.
Equations
- Cvc.Typed.Term.impliesN? terms atLeastTwoElements = Cvc.Untyped.Term.impliesN? terms atLeastTwoElements
Instances For
distinct? over two or more terms.
Equations
- Cvc.Typed.Term.distinctN? terms atLeastTwoElements = Cvc.Untyped.Term.distinctN? terms atLeastTwoElements
Instances For
and? over any number of terms: none gives some true, one gives that term.
Equations
- Cvc.Typed.Term.andN'? terms = Cvc.Untyped.Term.andN'? terms
Instances For
and? over two or more terms.
Equations
- Cvc.Typed.Term.andN? terms atLeastTwoElements = Cvc.Untyped.Term.andN? terms atLeastTwoElements
Instances For
or? over two or more terms.
Equations
- Cvc.Typed.Term.orN? terms atLeastTwoElements = Cvc.Untyped.Term.orN? terms atLeastTwoElements