Gaussian Elimination algorithm #
The first step of Linarith.SimplexAlgorithm.findPositiveVector is finding initial feasible
solution which is done by standard Gaussian Elimination algorithm implemented in this file.
@[reducible, inline]
abbrev
Mathlib.Tactic.Linarith.SimplexAlgorithm.Gauss.GaussM
(n m : â„•)
(matType : ℕ → ℕ → Type)
(α : Type)
:
The monad for the Gaussian Elimination algorithm.
Instances For
def
Mathlib.Tactic.Linarith.SimplexAlgorithm.Gauss.findNonzeroRow
{n m : â„•}
{matType : ℕ → ℕ → Type}
[UsableInSimplexAlgorithm matType]
(rowStart col : â„•)
:
GaussM n m matType (Option â„•)
Finds the first row starting from the rowStart with nonzero element in the column col.
Instances For
def
Mathlib.Tactic.Linarith.SimplexAlgorithm.Gauss.getTableauImp
{n m : â„•}
{matType : ℕ → ℕ → Type}
[UsableInSimplexAlgorithm matType]
:
Implementation of getTableau in GaussM monad.
Instances For
def
Mathlib.Tactic.Linarith.SimplexAlgorithm.Gauss.getTableau
{n m : â„•}
{matType : ℕ → ℕ → Type}
[UsableInSimplexAlgorithm matType]
(A : matType n m)
:
Lean.CoreM (Tableau matType)
Given matrix A, solves the linear equation A x = 0 and returns the solution as a tableau where
some variables are free and others (basic) variable are expressed as linear combinations of the free
ones.