Lemma zero_row_product { m n p : nat } (A : Matrix R m n) (B : Matrix R n p) (i : ⟦m⟧%stn) (Ai_zero : row A i = const_vec 0%rig) : row (A ** B) i = const_vec 0%rig. Proof. apply toforallpaths in Ai_zero. apply funextfun; intro k. apply vecsum_eq_zero. intro j; unfold pointwise. etrans. { apply maponpaths_2, Ai_zero. } apply rigmult0x. 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.