Executable matrix evaluation and finite tests #
Rational formulas are evaluated on square rational matrices by the native formula evaluation
Cslib.Circuits.Formula.eval under an interpretation in Option (Mat d), which rejects a
singular operand at every inverse node and otherwise inverts it exactly through the adjugate.
Partiality here is the computable stand-in for the relational semantics Formula.Eval, to which
it is proved equal in Cslib.Circuits.Rational.Formula.evalMatrix?_eq_some_iff. The finite tests
inspect the exact rational matrix values on a list; their correctness does not assert a bit-time
bound.
Main definitions #
Cslib.Circuits.Rational.matrixInterpretation: the partial interpretation on rational matrices.Cslib.Circuits.Rational.Formula.evalMatrix?: executable evaluation on a matrix tuple.Cslib.Circuits.Rational.Output.admissibilityTest,Cslib.Circuits.Rational.Output.nonzeroTest: search a list for a defined, respectively an invertible, value.
Main results #
Cslib.Circuits.Rational.Formula.evalMatrix?_addand its siblings: the executable evaluation unfolds along the constructors.
References #
The partial interpretation of the rational operations on d × d rational matrices: an
inverse node is undefined at a singular operand, and otherwise takes the exact inverse
det⁻¹ • adjugate.