Lemma identity_matrix_unique_left {m : nat} (Z : Matrix R m m) : (∏ n : nat, ∏ A : (Matrix R m n), (Z ** A) = A) -> Z = identity_matrix. Proof. intros impl. etrans. { apply pathsinv0, matrunax2. } apply impl. Defined.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.Combinatorics.StandardFiniteSets. Require Import UniMath.Combinatorics.Vectors. Require Import UniMath.Algebra.RigsAndRings. Require Import UniMath.Algebra.IteratedBinaryOperations. Require Import UniMath.Algebra.Matrix. Require Import UniMath.Algebra.Domains_and_Fields. Require Import UniMath.Algebra.GaussianElimination.Auxiliary. Require Import UniMath.Algebra.GaussianElimination.Vectors.