Rational hitting lists: evaluation #
Basic properties of the partial evaluation of rational formulas: values are unique, they are transported along ring homomorphisms, and they lift back along homomorphisms reflecting units. The second part collects facts on two-by-two block matrices over a possibly noncommutative ring, notably the Schur-complement criterion for invertibility of a block matrix with a zero corner.
Main definitions #
Cslib.Circuits.Rational.NoncommBlocks.matMul: matrix multiplication over a possibly noncommutative ring.
Main results #
Cslib.Circuits.Rational.Formula.Eval.unique: a formula has at most one value.Cslib.Circuits.Rational.Formula.Eval.map: values are mapped by ring homomorphisms.Cslib.Circuits.Rational.Formula.Eval.lift: values lift along homomorphisms reflecting units.Cslib.Circuits.Rational.Formula.Eval.unit_of_division_lift: a nonzero value mapped out of a division ring is a unit.Cslib.Circuits.Rational.NoncommBlocks.schur_unit_iff,Cslib.Circuits.Rational.NoncommBlocks.schur_inverse: invertibility of a block matrix with a zero corner and an invertible corner, through its Schur complement.
References #
Defined evaluations lift through a homomorphism reflecting units. In particular this handles every inverse occurrence before considering the root.
Mapping a defined nonzero value out of a division ring makes it a unit. This is used after the partial-specialization domain proof, not instead of it.
An upper unitriangular block matrix is invertible.
A lower unitriangular block matrix is invertible.
A block diagonal matrix is invertible exactly when both diagonal blocks are.
The Schur factorization of a block matrix with a zero corner and an invertible corner.
A block matrix with a zero corner and an invertible corner is invertible exactly when its Schur complement is.
An inverse of a block matrix with a zero corner and an invertible corner, whose corner block is the inverse of the Schur complement.