The Bareiss decomposition driver #
Given a matrix literal A over a commutative domain, the entry point
mkBareissDecomposition selects a computation model for the element type, runs the
elimination, and elaborates a certificate ⟨L, σ, pivot, …⟩ : Echelon.Decomposition A,
with the certificate conditions checked by the kernel via decide. The elimination
itself is the model-parameterized bareissDecomp in Mathlib.Tactic.Echelon.Core.
Main definitions #
mkBareissDecomposition: produce and elaborate the decomposition of a matrix literal.BareissResult: the elaborated certificate together with the computed decomposition data.checkBareissApplicable: the applicability check of the Bareiss method.producerFor: select the computation model for a ring.
Build the numeral of i in Fin $n.
Equations
- Mathlib.Tactic.Echelon.mkFinNumeral n i = Lean.Meta.mkNumeral q(Fin «$n») i
Instances For
Build the pivot literal ![↑c₀, …, ⊤, …] : Fin m → WithTop (Fin n), sending the
first rows to their pivot columns and the remaining rows to ⊤.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Build the permutation σ = swap a₀ b₀ * swap a₁ b₁ * ⋯ from the recorded swaps.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Check that equality with zero in α reduces to a verdict in the kernel, as the
certificate conditions will be decided by kernel reduction. This needs to be changed when
the cert-checking tactic is updated.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The applicability check of the Bareiss method, which requires a commutative domain with kernel-decidable equality.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Prove the certificate condition c by a kernel-checked decide, with name naming
the condition in errors.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Build the Echelon.Decomposition certificate of A from its constructed components,
with the certificate conditions proven by kernel-checked decide.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Select the computation model for the ring expression R: the first registered
bareiss_ext extension that handles R, or the default rational model.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The result of producing a decomposition by Bareiss.
- cert : Lean.Expr
The elaborated
Echelon.Decompositioncertificate term. - data : BareissData Lean.Expr
The decomposition data underlying the certificate.
Instances For
Produce and elaborate the Echelon.Decomposition certificate of the matrix literal
A.
Equations
- One or more equations did not get rendered due to their size.