proposition: Lemma inv_matrix_prod_invertible {n : nat} (A : Matrix R n n) (A' : Matrix R n n) (pa : matrix_inverse A) (pb : matrix_inverse A') : (matrix_inverse (A ** A')).
proof: Proof. use tpair; simpl. { exact ((pr1 pb) ** (pr1 pa)). } use tpair. - rewrite matrix_mult_assoc. rewrite <- (matrix_mult_assoc _ (pr1 pb) _). rewrite (pr1 (pr2 pb)), matlunax2. now rewrite (pr1 (pr2 pa)). - simpl; rewrite matrix_mult_assoc. now rewrite <- (matrix_mult_assoc _ A _), (pr2 (pr2 pa)), matlunax2, (pr2 (pr2 pb)). Defined.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.Combinatorics.StandardFiniteSets UniMath.Combinatorics.Vectors UniMath.Algebra.RigsAndRings UniMath.Algebra.IteratedBinaryOperations UniMath.Algebra.Matrix UniMath.Algebra.Domains_and_Fields UniMath.Algebra.GaussianElimination.Auxiliary UniMath.Algebra.GaussianElimination.Vectors