Generated FiniteField constructors, sort-erased #
Negation.
Equations
- ff.ffNeg = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.FINITE_FIELD_NEG #[ff]
Instances For
ffBitsum over two or more terms.
Equations
- Cvc.Untyped.Term.ffBitsumN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.FINITE_FIELD_BITSUM terms
Instances For
Weighted sum lft + 2 * rgt; ffBitsumN weighs further terms by 4, 8, …
Equations
- lft.ffBitsum rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.FINITE_FIELD_BITSUM #[lft, rgt]
Instances For
ffMul over two or more terms.
Equations
- Cvc.Untyped.Term.ffMulN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.FINITE_FIELD_MULT terms
Instances For
ffAdd over two or more terms.
Equations
- Cvc.Untyped.Term.ffAddN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.FINITE_FIELD_ADD terms
Instances For
Multiplication.
Equations
- lft.ffMul rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.FINITE_FIELD_MULT #[lft, rgt]
Instances For
Addition.
Equations
- lft.ffAdd rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.FINITE_FIELD_ADD #[lft, rgt]
Instances For
FiniteField's operators, taken apart one level, sort-erased.
- ffAdd
[Ω]
(kids : Kids)
: View.FiniteField
Addition.
kidsholds every operand, two or more. - ffMul
[Ω]
(kids : Kids)
: View.FiniteField
Multiplication.
kidsholds every operand, two or more. - ffNeg
[Ω]
(ff : Term)
: View.FiniteField
Negation.
- ffBitsum
[Ω]
(kids : Kids)
: View.FiniteField
Weighted sum
lft + 2 * rgt;ffBitsumNweighs further terms by4,8, …kidsholds every operand, two or more.
Instances For
Takes a term apart one level, if FiniteField owns its operator.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An element of the finite field a sort describes.
Equations
- Cvc.Untyped.Term.mkFiniteFieldElem value srt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkFiniteFieldElem value (Cvc.Srt.toUnsafe✝ srt)
Instances For
Values #
The size lives in the sort, so reading a value back recovers it from there and checks it against the one asked for.
Determine if this term is a finite field value.
Equations
Instances For
The term denoting an element of a finite field of known size.
Equations
- Cvc.Untyped.Term.FiniteField.toTerm elem = do let __do_lift ← Cvc.Srt.of (Cvc.FiniteField size) Cvc.Untyped.Term.mkFiniteFieldElem elem.repr __do_lift
Instances For
The finite-field element a constant term denotes, at whatever size it turns out to have.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The finite-field element a constant term denotes, failing unless the size is the expected.
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.