diff options
Diffstat (limited to 'docs/htmldoc/mathcomp.algebra.matrix.html')
| -rw-r--r-- | docs/htmldoc/mathcomp.algebra.matrix.html | 2923 |
1 files changed, 0 insertions, 2923 deletions
diff --git a/docs/htmldoc/mathcomp.algebra.matrix.html b/docs/htmldoc/mathcomp.algebra.matrix.html deleted file mode 100644 index 0733b20..0000000 --- a/docs/htmldoc/mathcomp.algebra.matrix.html +++ /dev/null @@ -1,2923 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<link href="coqdoc.css" rel="stylesheet" type="text/css" /> -<title>mathcomp.algebra.matrix</title> -</head> - -<body> - -<div id="page"> - -<div id="header"> -</div> - -<div id="main"> - -<h1 class="libtitle">Library mathcomp.algebra.matrix</h1> - -<div class="code"> -<span class="comment">(* (c) Copyright 2006-2016 Microsoft Corporation and Inria. <br/> - Distributed under the terms of CeCILL-B. *)</span><br/> - -<br/> -</div> - -<div class="doc"> - Basic concrete linear algebra : definition of type for matrices, and all - basic matrix operations including determinant, trace and support for block - decomposition. Matrices are represented by a row-major list of their - coefficients but this implementation is hidden by three levels of wrappers - (Matrix/Finfun/Tuple) so the matrix type should be treated as abstract and - handled using only the operations described below: - 'M[R](m, n) == the type of m rows by n columns matrices with - 'M(m, n) coefficients in R; the [R] is optional and is usually - omitted. - 'M[R]_n, 'M_n == the type of n x n square matrices. - 'rV[R]_n, 'rV_n == the type of 1 x n row vectors. - 'cV[R]_n, 'cV_n == the type of n x 1 column vectors. - \matrix(i < m, j < n) Expr(i, j) == - the m x n matrix with general coefficient Expr(i, j), - with i : 'I_m and j : 'I_n. the < m bound can be omitted - if it is equal to n, though usually both bounds are - omitted as they can be inferred from the context. - \row(j < n) Expr(j), \col(i < m) Expr(i) - the row / column vectors with general term Expr; the - parentheses can be omitted along with the bound. - \matrix(i < m) RowExpr(i) == - the m x n matrix with row i given by RowExpr(i) : 'rV_n. - A i j == the coefficient of matrix A : 'M(m, n) in column j of - row i, where i : 'I_m, and j : 'I_n (via the coercion - fun_of_matrix : matrix >-> Funclass). - const_mx a == the constant matrix whose entries are all a (dimensions - should be determined by context). - map_mx f A == the pointwise image of A by f, i.e., the matrix Af - congruent to A with Af i j = f (A i j) for all i and j. - A^T == the matrix transpose of A. - row i A == the i'th row of A (this is a row vector). - col j A == the j'th column of A (a column vector). - row' i A == A with the i'th row spliced out. - col' i A == A with the j'th column spliced out. - xrow i1 i2 A == A with rows i1 and i2 interchanged. - xcol j1 j2 A == A with columns j1 and j2 interchanged. - row_perm s A == A : 'M(m, n) with rows permuted by s : 'S_m. - col_perm s A == A : 'M(m, n) with columns permuted by s : 'S_n. - row_mx Al Ar == the row block matrix <Al Ar> obtained by contatenating - two matrices Al and Ar of the same height. - col_mx Au Ad == the column block matrix / Au \ (Au and Ad must have the - same width). \ Ad / - block_mx Aul Aur Adl Adr == the block matrix / Aul Aur \ - \ Adl Adr / - [l|r]submx A == the left/right submatrices of a row block matrix A. - Note that the type of A, 'M(m, n1 + n2) indicates how A - should be decomposed. - [u|d]submx A == the up/down submatrices of a column block matrix A. - [u|d] [l|r]submx A == the upper left, etc submatrices of a block matrix A. - castmx eq_mn A == A : 'M(m, n) cast to 'M(m', n') using the equation - pair eq_mn : (m = m') * (n = n'). This is the usual - workaround for the syntactic limitations of dependent - types in Coq, and can be used to introduce a block - decomposition. It simplifies to A when eq_mn is the - pair (erefl m, erefl n) (using rewrite /castmx /=). - conform_mx B A == A if A and B have the same dimensions, else B. - mxvec A == a row vector of width m * n holding all the entries of - the m x n matrix A. - mxvec_index i j == the index of A i j in mxvec A. - vec_mx v == the inverse of mxvec, reshaping a vector of width m * n - back into into an m x n rectangular matrix. - In 'M[R](m, n), R can be any type, but 'M[R](m, n) inherits the eqType, - choiceType, countType, finType, zmodType structures of R; 'M[R](m, n) - also has a natural lmodType R structure when R has a ringType structure. - Because the type of matrices specifies their dimension, only non-trivial - square matrices (of type 'M[R]_n.+1) can inherit the ring structure of R; - indeed they then have an algebra structure (lalgType R, or algType R if R - is a comRingType, or even unitAlgType if R is a comUnitRingType). - We thus provide separate syntax for the general matrix multiplication, - and other operations for matrices over a ringType R: - A *m B == the matrix product of A and B; the width of A must be - equal to the height of B. - a%:M == the scalar matrix with a's on the main diagonal; in - particular 1%:M denotes the identity matrix, and is is - equal to 1%R when n is of the form n'.+1 (e.g., n >= 1). - is_scalar_mx A <=> A is a scalar matrix (A = a%:M for some A). - diag_mx d == the diagonal matrix whose main diagonal is d : 'rV_n. - delta_mx i j == the matrix with a 1 in row i, column j and 0 elsewhere. - pid_mx r == the partial identity matrix with 1s only on the r first - coefficients of the main diagonal; the dimensions of - pid_mx r are determined by the context, and pid_mx r can - be rectangular. - copid_mx r == the complement to 1%:M of pid_mx r: a square diagonal - matrix with 1s on all but the first r coefficients on - its main diagonal. - perm_mx s == the n x n permutation matrix for s : 'S_n. - tperm_mx i1 i2 == the permutation matrix that exchanges i1 i2 : 'I_n. - is_perm_mx A == A is a permutation matrix. - lift0_mx A == the 1 + n square matrix block_mx 1 0 0 A when A : 'M_n. - \tr A == the trace of a square matrix A. - \det A == the determinant of A, using the Leibnitz formula. - cofactor i j A == the i, j cofactor of A (the signed i, j minor of A), - \adj A == the adjugate matrix of A (\adj A i j = cofactor j i A). - A \in unitmx == A is invertible (R must be a comUnitRingType). - invmx A == the inverse matrix of A if A \in unitmx A, otherwise A. - The following operations provide a correspondance between linear functions - and matrices: - lin1_mx f == the m x n matrix that emulates via right product - a (linear) function f : 'rV_m -> 'rV_n on ROW VECTORS - lin_mx f == the (m1 * n1) x (m2 * n2) matrix that emulates, via the - right multiplication on the mxvec encodings, a linear - function f : 'M(m1, n1) -> 'M(m2, n2) - lin_mul_row u := lin1_mx (mulmx u \o vec_mx) (applies a row-encoded - function to the row-vector u). - mulmx A == partially applied matrix multiplication (mulmx A B is - displayed as A *m B), with, for A : 'M(m, n), a - canonical {linear 'M(n, p) -> 'M(m, p}} structure. - mulmxr A == self-simplifying right-hand matrix multiplication, i.e., - mulmxr A B simplifies to B *m A, with, for A : 'M(n, p), - a canonical {linear 'M(m, n) -> 'M(m, p}} structure. - lin_mulmx A := lin_mx (mulmx A). - lin_mulmxr A := lin_mx (mulmxr A). - We also extend any finType structure of R to 'M[R](m, n), and define: - {'GL_n[R]} == the finGroupType of units of 'M[R]_n.-1.+1. - 'GL_n[R] == the general linear group of all matrices in {'GL_n(R)}. - 'GL_n(p) == 'GL_n['F_p], the general linear group of a prime field. - GLval u == the coercion of u : {'GL_n(R)} to a matrix. - In addition to the lemmas relevant to these definitions, this file also - proves several classic results, including : -<ul class="doclist"> -<li> The determinant is a multilinear alternate form. - -</li> -<li> The Laplace determinant expansion formulas: expand_det [row|col]. - -</li> -<li> The Cramer rule : mul_mx_adj & mul_adj_mx. - -</li> -</ul> - Finally, as an example of the use of block products, we program and prove - the correctness of a classical linear algebra algorithm: - cormenLUP A == the triangular decomposition (L, U, P) of a nontrivial - square matrix A into a lower triagular matrix L with 1s - on the main diagonal, an upper matrix U, and a - permutation matrix P, such that P * A = L * U. - This is example only; we use a different, more precise algorithm to - develop the theory of matrix ranks and row spaces in mxalgebra.v -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Set Implicit Arguments</span>.<br/> - -<br/> -<span class="id" title="keyword">Import</span> <span class="id" title="var">GroupScope</span>.<br/> -<span class="id" title="keyword">Import</span> <span class="id" title="var">GRing.Theory</span>.<br/> -<span class="id" title="keyword">Local Open</span> <span class="id" title="keyword">Scope</span> <span class="id" title="var">ring_scope</span>.<br/> - -<br/> -<span class="id" title="keyword">Reserved Notation</span> "''M_' n" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">format</span> "''M_' n").<br/> -<span class="id" title="keyword">Reserved Notation</span> "''rV_' n" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">format</span> "''rV_' n").<br/> -<span class="id" title="keyword">Reserved Notation</span> "''cV_' n" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">format</span> "''cV_' n").<br/> -<span class="id" title="keyword">Reserved Notation</span> "''M_' ( n )" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">only</span> <span class="id" title="var">parsing</span>).<br/> -<span class="id" title="keyword">Reserved Notation</span> "''M_' ( m , n )" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">format</span> "''M_' ( m , n )").<br/> -<span class="id" title="keyword">Reserved Notation</span> "''M[' R ]_ n" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">only</span> <span class="id" title="var">parsing</span>).<br/> -<span class="id" title="keyword">Reserved Notation</span> "''rV[' R ]_ n" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">only</span> <span class="id" title="var">parsing</span>).<br/> -<span class="id" title="keyword">Reserved Notation</span> "''cV[' R ]_ n" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">only</span> <span class="id" title="var">parsing</span>).<br/> -<span class="id" title="keyword">Reserved Notation</span> "''M[' R ]_ ( n )" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">only</span> <span class="id" title="var">parsing</span>).<br/> -<span class="id" title="keyword">Reserved Notation</span> "''M[' R ]_ ( m , n )" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">only</span> <span class="id" title="var">parsing</span>).<br/> - -<br/> -<span class="id" title="keyword">Reserved Notation</span> "\matrix_ i E" <br/> - (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">E</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">i</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2,<br/> - <span class="id" title="var">format</span> "\matrix_ i E").<br/> -<span class="id" title="keyword">Reserved Notation</span> "\matrix_ ( i < n ) E"<br/> - (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">E</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">i</span>, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 50, <span class="id" title="var">only</span> <span class="id" title="var">parsing</span>).<br/> -<span class="id" title="keyword">Reserved Notation</span> "\matrix_ ( i , j ) E"<br/> - (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">E</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">i</span>, <span class="id" title="var">j</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 50,<br/> - <span class="id" title="var">format</span> "\matrix_ ( i , j ) E").<br/> -<span class="id" title="keyword">Reserved Notation</span> "\matrix[ k ]_ ( i , j ) E"<br/> - (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">E</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">i</span>, <span class="id" title="var">j</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 50,<br/> - <span class="id" title="var">format</span> "\matrix[ k ]_ ( i , j ) E").<br/> -<span class="id" title="keyword">Reserved Notation</span> "\matrix_ ( i < m , j < n ) E"<br/> - (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">E</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">i</span>, <span class="id" title="var">m</span>, <span class="id" title="var">j</span>, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 50, <span class="id" title="var">only</span> <span class="id" title="var">parsing</span>).<br/> -<span class="id" title="keyword">Reserved Notation</span> "\matrix_ ( i , j < n ) E"<br/> - (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">E</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">i</span>, <span class="id" title="var">j</span>, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 50, <span class="id" title="var">only</span> <span class="id" title="var">parsing</span>).<br/> -<span class="id" title="keyword">Reserved Notation</span> "\row_ j E"<br/> - (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">E</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">j</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2,<br/> - <span class="id" title="var">format</span> "\row_ j E").<br/> -<span class="id" title="keyword">Reserved Notation</span> "\row_ ( j < n ) E"<br/> - (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">E</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">j</span>, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 50, <span class="id" title="var">only</span> <span class="id" title="var">parsing</span>).<br/> -<span class="id" title="keyword">Reserved Notation</span> "\col_ j E"<br/> - (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">E</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">j</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2,<br/> - <span class="id" title="var">format</span> "\col_ j E").<br/> -<span class="id" title="keyword">Reserved Notation</span> "\col_ ( j < n ) E"<br/> - (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">E</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">j</span>, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 50, <span class="id" title="var">only</span> <span class="id" title="var">parsing</span>).<br/> - -<br/> -<span class="id" title="keyword">Reserved Notation</span> "x %:M" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">format</span> "x %:M").<br/> -<span class="id" title="keyword">Reserved Notation</span> "A *m B" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 40, <span class="id" title="tactic">left</span> <span class="id" title="keyword">associativity</span>, <span class="id" title="var">format</span> "A *m B").<br/> -<span class="id" title="keyword">Reserved Notation</span> "A ^T" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">format</span> "A ^T").<br/> -<span class="id" title="keyword">Reserved Notation</span> "\tr A" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 10, <span class="id" title="var">A</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">format</span> "\tr A").<br/> -<span class="id" title="keyword">Reserved Notation</span> "\det A" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 10, <span class="id" title="var">A</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">format</span> "\det A").<br/> -<span class="id" title="keyword">Reserved Notation</span> "\adj A" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 10, <span class="id" title="var">A</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">format</span> "\adj A").<br/> - -<br/> - -<br/> -</div> - -<div class="doc"> -Type Definition********************************* -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixDef"><span class="id" title="section">MatrixDef</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="MatrixDef.R"><span class="id" title="variable">R</span></a> : <span class="id" title="keyword">Type</span>.<br/> -<span class="id" title="keyword">Variables</span> <a name="MatrixDef.m"><span class="id" title="variable">m</span></a> <a name="MatrixDef.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Basic linear algebra (matrices). - We use dependent types (ordinals) for the indices so that ranges are - mostly inferred automatically -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Inductive</span> <a name="matrix"><span class="id" title="inductive">matrix</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#predArgType"><span class="id" title="definition">predArgType</span></a> := <a name="Matrix"><span class="id" title="constructor">Matrix</span></a> <span class="id" title="keyword">of</span> <a class="idref" href="mathcomp.ssreflect.finfun.html#31493a873acc18a8368490ef56022c0c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.ssreflect.finfun.html#31493a873acc18a8368490ef56022c0c"><span class="id" title="notation">ffun</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixDef.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.ssreflect.finfun.html#31493a873acc18a8368490ef56022c0c"><span class="id" title="notation">}</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="mx_val"><span class="id" title="definition">mx_val</span></a> <span class="id" title="var">A</span> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.matrix.html#Matrix"><span class="id" title="constructor">Matrix</span></a> <span class="id" title="var">g</span> := <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">g</span>.<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_subType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#685b4c9ab7ccde70d9229dfbdb93d490"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#685b4c9ab7ccde70d9229dfbdb93d490"><span class="id" title="notation">newType</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#685b4c9ab7ccde70d9229dfbdb93d490"><span class="id" title="notation">for</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mx_val"><span class="id" title="definition">mx_val</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#685b4c9ab7ccde70d9229dfbdb93d490"><span class="id" title="notation">]</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Fact</span> <a name="matrix_key"><span class="id" title="lemma">matrix_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="matrix_of_fun_def"><span class="id" title="definition">matrix_of_fun_def</span></a> <span class="id" title="var">F</span> := <a class="idref" href="mathcomp.algebra.matrix.html#Matrix"><span class="id" title="constructor">Matrix</span></a> <a class="idref" href="mathcomp.ssreflect.finfun.html#486743bb05c6aa8b9d64fd3cec29ee79"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finfun.html#486743bb05c6aa8b9d64fd3cec29ee79"><span class="id" title="notation">ffun</span></a> <span class="id" title="var">ij</span> <a class="idref" href="mathcomp.ssreflect.finfun.html#486743bb05c6aa8b9d64fd3cec29ee79"><span class="id" title="notation">⇒</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ij"><span class="id" title="variable">ij</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ij"><span class="id" title="variable">ij</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a><a class="idref" href="mathcomp.ssreflect.finfun.html#486743bb05c6aa8b9d64fd3cec29ee79"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Definition</span> <a name="matrix_of_fun"><span class="id" title="definition">matrix_of_fun</span></a> <span class="id" title="var">k</span> := <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#locked_with"><span class="id" title="definition">locked_with</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#matrix_of_fun_def"><span class="id" title="definition">matrix_of_fun_def</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_unlockable</span> <span class="id" title="var">k</span> := <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#84464b412faf5a30a7c5c6423d9b3956"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#84464b412faf5a30a7c5c6423d9b3956"><span class="id" title="notation">unlockable</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#84464b412faf5a30a7c5c6423d9b3956"><span class="id" title="notation">fun</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#matrix_of_fun"><span class="id" title="definition">matrix_of_fun</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#84464b412faf5a30a7c5c6423d9b3956"><span class="id" title="notation">]</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="fun_of_matrix"><span class="id" title="definition">fun_of_matrix</span></a> <span class="id" title="var">A</span> (<span class="id" title="var">i</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_m</span></a>) (<span class="id" title="var">j</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_n</span></a>) := <a class="idref" href="mathcomp.algebra.matrix.html#mx_val"><span class="id" title="definition">mx_val</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.matrix.html#fun_of_matrix"><span class="id" title="definition">fun_of_matrix</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#fun_of_matrix"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#fun_of_matrix"><span class="id" title="definition">matrix</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#fun_of_matrix"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#fun_of_matrix"><span class="id" title="definition">Funclass</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxE"><span class="id" title="lemma">mxE</span></a> <span class="id" title="var">k</span> <span class="id" title="var">F</span> : <a class="idref" href="mathcomp.algebra.matrix.html#matrix_of_fun"><span class="id" title="definition">matrix_of_fun</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#c717e24548d7d4d1086535addc681262"><span class="id" title="notation">=2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#F"><span class="id" title="variable">F</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="matrixP"><span class="id" title="lemma">matrixP</span></a> (<span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#matrix"><span class="id" title="inductive">matrix</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#c717e24548d7d4d1086535addc681262"><span class="id" title="notation">=2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#4bfb4f2d0721ba668e3a802ab1b745a1"><span class="id" title="notation">↔</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="eq_mx"><span class="id" title="lemma">eq_mx</span></a> <span class="id" title="var">k</span> <span class="id" title="var">F1</span> <span class="id" title="var">F2</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#F1"><span class="id" title="variable">F1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#c717e24548d7d4d1086535addc681262"><span class="id" title="notation">=2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#F2"><span class="id" title="variable">F2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#matrix_of_fun"><span class="id" title="definition">matrix_of_fun</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#F1"><span class="id" title="variable">F1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#matrix_of_fun"><span class="id" title="definition">matrix_of_fun</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#F2"><span class="id" title="variable">F2</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixDef"><span class="id" title="section">MatrixDef</span></a>.<br/> - -<br/> - -<br/> - -<br/> -<span class="id" title="keyword">Notation</span> <a name="9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">"</span></a>''M[' R ]_ ( m , n )" := (<a class="idref" href="mathcomp.algebra.matrix.html#matrix"><span class="id" title="inductive">matrix</span></a> <span class="id" title="var">R</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span>) (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>): <span class="id" title="var">type_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">"</span></a>''rV[' R ]_ n" := <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><span class="id" title="var">R</span><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a>1<a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <span class="id" title="var">n</span><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">type_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="dc9828f9767c0872ef9aee2800858bed"><span class="id" title="notation">"</span></a>''cV[' R ]_ n" := <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><span class="id" title="var">R</span><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><span class="id" title="var">n</span><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">type_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">"</span></a>''M[' R ]_ n" := <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><span class="id" title="var">R</span><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><span class="id" title="var">n</span><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <span class="id" title="var">n</span><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">type_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="1a8719a2ddc3d5ba380d052dba75ec31"><span class="id" title="notation">"</span></a>''M[' R ]_ ( n )" := <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><span class="id" title="var">R</span><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a> (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">type_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">"</span></a>''M_' ( m , n )" := <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><span class="id" title="var">_</span><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><span class="id" title="var">m</span><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <span class="id" title="var">n</span><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> : <span class="id" title="var">type_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">"</span></a>''rV_' n" := <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a>1<a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <span class="id" title="var">n</span><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> : <span class="id" title="var">type_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="41fc7f1b746b8b350a4d6421a5f6202b"><span class="id" title="notation">"</span></a>''cV_' n" := <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><span class="id" title="var">n</span><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> : <span class="id" title="var">type_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">"</span></a>''M_' n" := <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><span class="id" title="var">n</span><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <span class="id" title="var">n</span><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> : <span class="id" title="var">type_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">"</span></a>''M_' ( n )" := <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a> (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">type_scope</span>.<br/> - -<br/> -<span class="id" title="keyword">Notation</span> <a name="4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">"</span></a>\matrix[ k ]_ ( i , j ) E" := (<a class="idref" href="mathcomp.algebra.matrix.html#matrix_of_fun"><span class="id" title="definition">matrix_of_fun</span></a> <span class="id" title="var">k</span> (<span class="id" title="keyword">fun</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> ⇒ <span class="id" title="var">E</span>))<br/> - (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">E</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 36, <span class="id" title="var">i</span>, <span class="id" title="var">j</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 50): <span class="id" title="var">ring_scope</span>.<br/> - -<br/> -<span class="id" title="keyword">Notation</span> <a name="54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">"</span></a>\matrix_ ( i < m , j < n ) E" :=<br/> - (@<a class="idref" href="mathcomp.algebra.matrix.html#matrix_of_fun"><span class="id" title="definition">matrix_of_fun</span></a> <span class="id" title="var">_</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <a class="idref" href="mathcomp.algebra.matrix.html#matrix_key"><span class="id" title="lemma">matrix_key</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> ⇒ <span class="id" title="var">E</span>)) (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">ring_scope</span>.<br/> - -<br/> -<span class="id" title="keyword">Notation</span> <a name="afeb5861033e3e7ff02925b9c0f8e034"><span class="id" title="notation">"</span></a>\matrix_ ( i , j < n ) E" :=<br/> - (<a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">matrix_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation"><</span></a> <span class="id" title="var">n</span><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span> <a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation"><</span></a> <span class="id" title="var">n</span><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">)</span></a> <span class="id" title="var">E</span>) (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">ring_scope</span>.<br/> - -<br/> -<span class="id" title="keyword">Notation</span> <a name="9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">"</span></a>\matrix_ ( i , j ) E" := (<a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">matrix_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation"><</span></a> <span class="id" title="var">_</span><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span> <a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation"><</span></a> <span class="id" title="var">_</span><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">)</span></a> <span class="id" title="var">E</span>) : <span class="id" title="var">ring_scope</span>.<br/> - -<br/> -<span class="id" title="keyword">Notation</span> <a name="8741a4b06f31c1d83a8c7654b1254f7b"><span class="id" title="notation">"</span></a>\matrix_ ( i < m ) E" :=<br/> - (<a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">matrix_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation"><</span></a> <span class="id" title="var">m</span><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span> <a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation"><</span></a> <span class="id" title="var">_</span><a class="idref" href="mathcomp.algebra.matrix.html#54af16cfdb12c4fc43c97a572906d8b3"><span class="id" title="notation">)</span></a> @<a class="idref" href="mathcomp.algebra.matrix.html#fun_of_matrix"><span class="id" title="definition">fun_of_matrix</span></a> <span class="id" title="var">_</span> 1 <span class="id" title="var">_</span> <span class="id" title="var">E</span> 0 <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>)<br/> - (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">ring_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="156c57e70d793ff8d6e063eb2f2cbdf2"><span class="id" title="notation">"</span></a>\matrix_ i E" := (<a class="idref" href="mathcomp.algebra.matrix.html#8741a4b06f31c1d83a8c7654b1254f7b"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#8741a4b06f31c1d83a8c7654b1254f7b"><span class="id" title="notation">matrix_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#8741a4b06f31c1d83a8c7654b1254f7b"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.matrix.html#8741a4b06f31c1d83a8c7654b1254f7b"><span class="id" title="notation"><</span></a> <span class="id" title="var">_</span><a class="idref" href="mathcomp.algebra.matrix.html#8741a4b06f31c1d83a8c7654b1254f7b"><span class="id" title="notation">)</span></a> <span class="id" title="var">E</span>) : <span class="id" title="var">ring_scope</span>.<br/> - -<br/> -<span class="id" title="keyword">Notation</span> <a name="3bdb4e1060a71660067c77fac6c5f4a5"><span class="id" title="notation">"</span></a>\col_ ( i < n ) E" := (@<a class="idref" href="mathcomp.algebra.matrix.html#matrix_of_fun"><span class="id" title="definition">matrix_of_fun</span></a> <span class="id" title="var">_</span> <span class="id" title="var">n</span> 1 <a class="idref" href="mathcomp.algebra.matrix.html#matrix_key"><span class="id" title="lemma">matrix_key</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">i</span> <span class="id" title="var">_</span> ⇒ <span class="id" title="var">E</span>))<br/> - (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">ring_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="c766b6624f14d786ac426de9e3f200ad"><span class="id" title="notation">"</span></a>\col_ i E" := (<a class="idref" href="mathcomp.algebra.matrix.html#3bdb4e1060a71660067c77fac6c5f4a5"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#3bdb4e1060a71660067c77fac6c5f4a5"><span class="id" title="notation">col_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#3bdb4e1060a71660067c77fac6c5f4a5"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.matrix.html#3bdb4e1060a71660067c77fac6c5f4a5"><span class="id" title="notation"><</span></a> <span class="id" title="var">_</span><a class="idref" href="mathcomp.algebra.matrix.html#3bdb4e1060a71660067c77fac6c5f4a5"><span class="id" title="notation">)</span></a> <span class="id" title="var">E</span>) : <span class="id" title="var">ring_scope</span>.<br/> - -<br/> -<span class="id" title="keyword">Notation</span> <a name="e008ec0beb9d729fd1ef8df8b1024615"><span class="id" title="notation">"</span></a>\row_ ( j < n ) E" := (@<a class="idref" href="mathcomp.algebra.matrix.html#matrix_of_fun"><span class="id" title="definition">matrix_of_fun</span></a> <span class="id" title="var">_</span> 1 <span class="id" title="var">n</span> <a class="idref" href="mathcomp.algebra.matrix.html#matrix_key"><span class="id" title="lemma">matrix_key</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">_</span> <span class="id" title="var">j</span> ⇒ <span class="id" title="var">E</span>))<br/> - (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">ring_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="e96cc16a4a892792949f73b0ccf32cf1"><span class="id" title="notation">"</span></a>\row_ j E" := (<a class="idref" href="mathcomp.algebra.matrix.html#e008ec0beb9d729fd1ef8df8b1024615"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e008ec0beb9d729fd1ef8df8b1024615"><span class="id" title="notation">row_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e008ec0beb9d729fd1ef8df8b1024615"><span class="id" title="notation">(</span></a><span class="id" title="var">j</span> <a class="idref" href="mathcomp.algebra.matrix.html#e008ec0beb9d729fd1ef8df8b1024615"><span class="id" title="notation"><</span></a> <span class="id" title="var">_</span><a class="idref" href="mathcomp.algebra.matrix.html#e008ec0beb9d729fd1ef8df8b1024615"><span class="id" title="notation">)</span></a> <span class="id" title="var">E</span>) : <span class="id" title="var">ring_scope</span>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="matrix_eqMixin"><span class="id" title="definition">matrix_eqMixin</span></a> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Exports.eqType"><span class="id" title="abbreviation">eqType</span></a>) <span class="id" title="var">m</span> <span class="id" title="var">n</span> :=<br/> - <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b361a0fe0b43cea5c506ee5eccc55542"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#b361a0fe0b43cea5c506ee5eccc55542"><span class="id" title="notation">eqMixin</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b361a0fe0b43cea5c506ee5eccc55542"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b361a0fe0b43cea5c506ee5eccc55542"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b361a0fe0b43cea5c506ee5eccc55542"><span class="id" title="notation"><:]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_eqType</span> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Exports.eqType"><span class="id" title="abbreviation">eqType</span></a>) <span class="id" title="var">m</span> <span class="id" title="var">n</span>:=<br/> - <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Exports.EqType"><span class="id" title="abbreviation">EqType</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#matrix_eqMixin"><span class="id" title="definition">matrix_eqMixin</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> -<span class="id" title="keyword">Definition</span> <a name="matrix_choiceMixin"><span class="id" title="definition">matrix_choiceMixin</span></a> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Exports.choiceType"><span class="id" title="abbreviation">choiceType</span></a>) <span class="id" title="var">m</span> <span class="id" title="var">n</span> :=<br/> - <a class="idref" href="mathcomp.ssreflect.choice.html#035054ba987e1c05f2985518b41ec31f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#035054ba987e1c05f2985518b41ec31f"><span class="id" title="notation">choiceMixin</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#035054ba987e1c05f2985518b41ec31f"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#035054ba987e1c05f2985518b41ec31f"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#035054ba987e1c05f2985518b41ec31f"><span class="id" title="notation"><:]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_choiceType</span> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Exports.choiceType"><span class="id" title="abbreviation">choiceType</span></a>) <span class="id" title="var">m</span> <span class="id" title="var">n</span> :=<br/> - <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Exports.ChoiceType"><span class="id" title="abbreviation">ChoiceType</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#matrix_choiceMixin"><span class="id" title="definition">matrix_choiceMixin</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> -<span class="id" title="keyword">Definition</span> <a name="matrix_countMixin"><span class="id" title="definition">matrix_countMixin</span></a> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Exports.countType"><span class="id" title="abbreviation">countType</span></a>) <span class="id" title="var">m</span> <span class="id" title="var">n</span> :=<br/> - <a class="idref" href="mathcomp.ssreflect.choice.html#c2a823e7a76d1d303efdd00309d93aca"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#c2a823e7a76d1d303efdd00309d93aca"><span class="id" title="notation">countMixin</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#c2a823e7a76d1d303efdd00309d93aca"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#c2a823e7a76d1d303efdd00309d93aca"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#c2a823e7a76d1d303efdd00309d93aca"><span class="id" title="notation"><:]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_countType</span> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Exports.countType"><span class="id" title="abbreviation">countType</span></a>) <span class="id" title="var">m</span> <span class="id" title="var">n</span> :=<br/> - <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Exports.CountType"><span class="id" title="abbreviation">CountType</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#matrix_countMixin"><span class="id" title="definition">matrix_countMixin</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_subCountType</span> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Exports.countType"><span class="id" title="abbreviation">countType</span></a>) <span class="id" title="var">m</span> <span class="id" title="var">n</span> :=<br/> - <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.choice.html#9bbd910cbebcec91f8279b0711b4702d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#9bbd910cbebcec91f8279b0711b4702d"><span class="id" title="notation">subCountType</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#9bbd910cbebcec91f8279b0711b4702d"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#9bbd910cbebcec91f8279b0711b4702d"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Definition</span> <a name="matrix_finMixin"><span class="id" title="definition">matrix_finMixin</span></a> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Exports.finType"><span class="id" title="abbreviation">finType</span></a>) <span class="id" title="var">m</span> <span class="id" title="var">n</span> :=<br/> - <a class="idref" href="mathcomp.ssreflect.fintype.html#fede21e6a36088be0833d2600143b39c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#fede21e6a36088be0833d2600143b39c"><span class="id" title="notation">finMixin</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#fede21e6a36088be0833d2600143b39c"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#fede21e6a36088be0833d2600143b39c"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#fede21e6a36088be0833d2600143b39c"><span class="id" title="notation"><:]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_finType</span> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Exports.finType"><span class="id" title="abbreviation">finType</span></a>) <span class="id" title="var">m</span> <span class="id" title="var">n</span> :=<br/> - <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Exports.FinType"><span class="id" title="abbreviation">FinType</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#matrix_finMixin"><span class="id" title="definition">matrix_finMixin</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_subFinType</span> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Exports.finType"><span class="id" title="abbreviation">finType</span></a>) <span class="id" title="var">m</span> <span class="id" title="var">n</span> :=<br/> - <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#ea70e506e168d39ce0ec3d3ecd2c349f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#ea70e506e168d39ce0ec3d3ecd2c349f"><span class="id" title="notation">subFinType</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#ea70e506e168d39ce0ec3d3ecd2c349f"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#ea70e506e168d39ce0ec3d3ecd2c349f"><span class="id" title="notation">]</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="card_matrix"><span class="id" title="lemma">card_matrix</span></a> (<span class="id" title="var">F</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Exports.finType"><span class="id" title="abbreviation">finType</span></a>) <span class="id" title="var">m</span> <span class="id" title="var">n</span> : (<a class="idref" href="mathcomp.ssreflect.fintype.html#234f50e13366f794cd6877cf832a5935"><span class="id" title="notation">#|</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#fa3b33ae9d0a52de608b305a09f3b881"><span class="id" title="notation">{:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#fa3b33ae9d0a52de608b305a09f3b881"><span class="id" title="notation">}</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#234f50e13366f794cd6877cf832a5935"><span class="id" title="notation">|</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#234f50e13366f794cd6877cf832a5935"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.algebra.matrix.html#F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#234f50e13366f794cd6877cf832a5935"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#81fd94e251a61ee523cdd7855774ae7c"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#81fd94e251a61ee523cdd7855774ae7c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ea2ff3d561159081cea6fb2e8113cc54"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#81fd94e251a61ee523cdd7855774ae7c"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">N</span>.<br/> - -<br/> -</div> - -<div class="doc"> - Matrix structural operations (transpose, permutation, blocks) ******* -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixStructural"><span class="id" title="section">MatrixStructural</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="MatrixStructural.R"><span class="id" title="variable">R</span></a> : <span class="id" title="keyword">Type</span>.<br/> - -<br/> -</div> - -<div class="doc"> - Constant matrix -</div> -<div class="code"> -<span class="id" title="keyword">Fact</span> <a name="const_mx_key"><span class="id" title="lemma">const_mx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="const_mx"><span class="id" title="definition">const_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#const_mx_key"><span class="id" title="lemma">const_mx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixStructural.FixedDim"><span class="id" title="section">FixedDim</span></a>.<br/> -</div> - -<div class="doc"> - Definitions and properties for which we can work with fixed dimensions. -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Variables</span> <a name="MatrixStructural.FixedDim.m"><span class="id" title="variable">m</span></a> <a name="MatrixStructural.FixedDim.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> -<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.FixedDim.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.FixedDim.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Reshape a matrix, to accomodate the block functions for instance. -</div> -<div class="code"> -<span class="id" title="keyword">Definition</span> <a name="castmx"><span class="id" title="definition">castmx</span></a> <span class="id" title="var">m'</span> <span class="id" title="var">n'</span> (<span class="id" title="var">eq_mn</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.FixedDim.m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m'"><span class="id" title="variable">m'</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.FixedDim.n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n'"><span class="id" title="variable">n'</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">)</span></a>) <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m'"><span class="id" title="variable">m'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n'"><span class="id" title="variable">n'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> :=<br/> - <span class="id" title="keyword">let</span>: <span class="id" title="var">erefl</span> <span class="id" title="tactic">in</span> <span class="id" title="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <span class="id" title="var">m'</span> := <a class="idref" href="mathcomp.algebra.matrix.html#eq_mn"><span class="id" title="variable">eq_mn</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m'"><span class="id" title="variable">m'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n'"><span class="id" title="variable">n'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">let</span>: <span class="id" title="var">erefl</span> <span class="id" title="tactic">in</span> <span class="id" title="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <span class="id" title="var">n'</span> := <a class="idref" href="mathcomp.algebra.matrix.html#eq_mn"><span class="id" title="variable">eq_mn</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.FixedDim.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n'"><span class="id" title="variable">n'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="conform_mx"><span class="id" title="definition">conform_mx</span></a> <span class="id" title="var">m'</span> <span class="id" title="var">n'</span> <span class="id" title="var">B</span> <span class="id" title="var">A</span> :=<br/> - <span class="id" title="keyword">match</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.FixedDim.m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#699be9384eca4d7537361910a9a14afe"><span class="id" title="notation">=</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#699be9384eca4d7537361910a9a14afe"><span class="id" title="notation">P</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m'"><span class="id" title="variable">m'</span></a>, <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.FixedDim.n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#699be9384eca4d7537361910a9a14afe"><span class="id" title="notation">=</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#699be9384eca4d7537361910a9a14afe"><span class="id" title="notation">P</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n'"><span class="id" title="variable">n'</span></a> <span class="id" title="keyword">with</span><br/> - | <span class="id" title="var">ReflectT</span> <span class="id" title="var">eq_m</span>, <span class="id" title="var">ReflectT</span> <span class="id" title="var">eq_n</span> ⇒ <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><span class="id" title="var">eq_m</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <span class="id" title="var">eq_n</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><br/> - | <span class="id" title="var">_</span>, <span class="id" title="var">_</span> ⇒ <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><br/> - <span class="id" title="keyword">end</span>.<br/> - -<br/> -</div> - -<div class="doc"> - Transpose a matrix -</div> -<div class="code"> -<span class="id" title="keyword">Fact</span> <a name="trmx_key"><span class="id" title="lemma">trmx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="trmx"><span class="id" title="definition">trmx</span></a> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#trmx_key"><span class="id" title="lemma">trmx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Permute a matrix vertically (rows) or horizontally (columns) -</div> -<div class="code"> -<span class="id" title="keyword">Fact</span> <a name="row_perm_key"><span class="id" title="lemma">row_perm_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="row_perm"><span class="id" title="definition">row_perm</span></a> (<span class="id" title="var">s</span> : <a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">S_m</span></a>) <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#row_perm_key"><span class="id" title="lemma">row_perm_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> -<span class="id" title="keyword">Fact</span> <a name="col_perm_key"><span class="id" title="lemma">col_perm_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="col_perm"><span class="id" title="definition">col_perm</span></a> (<span class="id" title="var">s</span> : <a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">S_n</span></a>) <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#col_perm_key"><span class="id" title="lemma">col_perm_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>).<br/> - -<br/> -</div> - -<div class="doc"> - Exchange two rows/columns of a matrix -</div> -<div class="code"> -<span class="id" title="keyword">Definition</span> <a name="xrow"><span class="id" title="definition">xrow</span></a> <span class="id" title="var">i1</span> <span class="id" title="var">i2</span> := <a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> (<a class="idref" href="mathcomp.fingroup.perm.html#tperm"><span class="id" title="definition">tperm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a>).<br/> -<span class="id" title="keyword">Definition</span> <a name="xcol"><span class="id" title="definition">xcol</span></a> <span class="id" title="var">j1</span> <span class="id" title="var">j2</span> := <a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> (<a class="idref" href="mathcomp.fingroup.perm.html#tperm"><span class="id" title="definition">tperm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a>).<br/> - -<br/> -</div> - -<div class="doc"> - Row/Column sub matrices of a matrix -</div> -<div class="code"> -<span class="id" title="keyword">Definition</span> <a name="row"><span class="id" title="definition">row</span></a> <span class="id" title="var">i0</span> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.algebra.matrix.html#e96cc16a4a892792949f73b0ccf32cf1"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e96cc16a4a892792949f73b0ccf32cf1"><span class="id" title="notation">row_j</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> -<span class="id" title="keyword">Definition</span> <a name="col"><span class="id" title="definition">col</span></a> <span class="id" title="var">j0</span> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.algebra.matrix.html#c766b6624f14d786ac426de9e3f200ad"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#c766b6624f14d786ac426de9e3f200ad"><span class="id" title="notation">col_i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Removing a row/column from a matrix -</div> -<div class="code"> -<span class="id" title="keyword">Definition</span> <a name="row'"><span class="id" title="definition">row'</span></a> <span class="id" title="var">i0</span> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">matrix_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#lift"><span class="id" title="definition">lift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> -<span class="id" title="keyword">Definition</span> <a name="col'"><span class="id" title="definition">col'</span></a> <span class="id" title="var">j0</span> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">matrix_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#lift"><span class="id" title="definition">lift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="castmx_const"><span class="id" title="lemma">castmx_const</span></a> <span class="id" title="var">m'</span> <span class="id" title="var">n'</span> (<span class="id" title="var">eq_mn</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.FixedDim.m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m'"><span class="id" title="variable">m'</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.FixedDim.n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n'"><span class="id" title="variable">n'</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">)</span></a>) <span class="id" title="var">a</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_mn"><span class="id" title="variable">eq_mn</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx_const"><span class="id" title="lemma">trmx_const</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#trmx"><span class="id" title="definition">trmx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_perm_const"><span class="id" title="lemma">row_perm_const</span></a> <span class="id" title="var">s</span> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_perm_const"><span class="id" title="lemma">col_perm_const</span></a> <span class="id" title="var">s</span> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="xrow_const"><span class="id" title="lemma">xrow_const</span></a> <span class="id" title="var">i1</span> <span class="id" title="var">i2</span> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#xrow"><span class="id" title="definition">xrow</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="xcol_const"><span class="id" title="lemma">xcol_const</span></a> <span class="id" title="var">j1</span> <span class="id" title="var">j2</span> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#xcol"><span class="id" title="definition">xcol</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="rowP"><span class="id" title="lemma">rowP</span></a> (<span class="id" title="var">u</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#876aa133fb3472bffd492f74ff496035"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#4bfb4f2d0721ba668e3a802ab1b745a1"><span class="id" title="notation">↔</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="rowK"><span class="id" title="lemma">rowK</span></a> <span class="id" title="var">u_</span> <span class="id" title="var">i0</span> : <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#156c57e70d793ff8d6e063eb2f2cbdf2"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#156c57e70d793ff8d6e063eb2f2cbdf2"><span class="id" title="notation">matrix_i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u_"><span class="id" title="variable">u_</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u_"><span class="id" title="variable">u_</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_matrixP"><span class="id" title="lemma">row_matrixP</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#4bfb4f2d0721ba668e3a802ab1b745a1"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">i</span>, <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#4bfb4f2d0721ba668e3a802ab1b745a1"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#4bfb4f2d0721ba668e3a802ab1b745a1"><span class="id" title="notation">↔</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="colP"><span class="id" title="lemma">colP</span></a> (<span class="id" title="var">u</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.matrix.html#dc9828f9767c0872ef9aee2800858bed"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#dc9828f9767c0872ef9aee2800858bed"><span class="id" title="notation">cV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#dc9828f9767c0872ef9aee2800858bed"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#dc9828f9767c0872ef9aee2800858bed"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#dc9828f9767c0872ef9aee2800858bed"><span class="id" title="notation">_m</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#d89396f990d6b54d736cfe259e498cf4"><span class="id" title="notation">^~</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#876aa133fb3472bffd492f74ff496035"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#d89396f990d6b54d736cfe259e498cf4"><span class="id" title="notation">^~</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#4bfb4f2d0721ba668e3a802ab1b745a1"><span class="id" title="notation">↔</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_const"><span class="id" title="lemma">row_const</span></a> <span class="id" title="var">i0</span> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_const"><span class="id" title="lemma">col_const</span></a> <span class="id" title="var">j0</span> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row'_const"><span class="id" title="lemma">row'_const</span></a> <span class="id" title="var">i0</span> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col'_const"><span class="id" title="lemma">col'_const</span></a> <span class="id" title="var">j0</span> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_perm1"><span class="id" title="lemma">col_perm1</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> 1 <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_perm1"><span class="id" title="lemma">row_perm1</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> 1 <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_permM"><span class="id" title="lemma">col_permM</span></a> <span class="id" title="var">s</span> <span class="id" title="var">t</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#8b8794efbfbae1b793d9cb62ce802285"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#t"><span class="id" title="variable">t</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#t"><span class="id" title="variable">t</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_permM"><span class="id" title="lemma">row_permM</span></a> <span class="id" title="var">s</span> <span class="id" title="var">t</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#8b8794efbfbae1b793d9cb62ce802285"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#t"><span class="id" title="variable">t</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#t"><span class="id" title="variable">t</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_row_permC"><span class="id" title="lemma">col_row_permC</span></a> <span class="id" title="var">s</span> <span class="id" title="var">t</span> <span class="id" title="var">A</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#t"><span class="id" title="variable">t</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#t"><span class="id" title="variable">t</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>).<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.FixedDim"><span class="id" title="section">FixedDim</span></a>.<br/> - -<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="castmx_id"><span class="id" title="lemma">castmx_id</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">erefl_mn</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#erefl_mn"><span class="id" title="variable">erefl_mn</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="castmx_comp"><span class="id" title="lemma">castmx_comp</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">n1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n2</span> <span class="id" title="var">m3</span> <span class="id" title="var">n3</span> (<span class="id" title="var">eq_m1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a>) (<span class="id" title="var">eq_n1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a>)<br/> - (<span class="id" title="var">eq_m2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m3"><span class="id" title="variable">m3</span></a>) (<span class="id" title="var">eq_n2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n3"><span class="id" title="variable">n3</span></a>) <span class="id" title="var">A</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#eq_m2"><span class="id" title="variable">eq_m2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_n2"><span class="id" title="variable">eq_n2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#eq_m1"><span class="id" title="variable">eq_m1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_n1"><span class="id" title="variable">eq_n1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>)<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#etrans"><span class="id" title="definition">etrans</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_m1"><span class="id" title="variable">eq_m1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_m2"><span class="id" title="variable">eq_m2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#etrans"><span class="id" title="definition">etrans</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_n1"><span class="id" title="variable">eq_n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_n2"><span class="id" title="variable">eq_n2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="castmxK"><span class="id" title="lemma">castmxK</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">n1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n2</span> (<span class="id" title="var">eq_m</span> : <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a>) (<span class="id" title="var">eq_n</span> : <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#eq_m"><span class="id" title="variable">eq_m</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_n"><span class="id" title="variable">eq_n</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#esym"><span class="id" title="definition">esym</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_m"><span class="id" title="variable">eq_m</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#esym"><span class="id" title="definition">esym</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_n"><span class="id" title="variable">eq_n</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="castmxKV"><span class="id" title="lemma">castmxKV</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">n1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n2</span> (<span class="id" title="var">eq_m</span> : <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a>) (<span class="id" title="var">eq_n</span> : <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#esym"><span class="id" title="definition">esym</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_m"><span class="id" title="variable">eq_m</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#esym"><span class="id" title="definition">esym</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_n"><span class="id" title="variable">eq_n</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#eq_m"><span class="id" title="variable">eq_m</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_n"><span class="id" title="variable">eq_n</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a>).<br/> - -<br/> -</div> - -<div class="doc"> - This can be use to reverse an equation that involves a cast. -</div> -<div class="code"> -<span class="id" title="keyword">Lemma</span> <a name="castmx_sym"><span class="id" title="lemma">castmx_sym</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">n1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n2</span> (<span class="id" title="var">eq_m</span> : <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a>) (<span class="id" title="var">eq_n</span> : <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a>) <span class="id" title="var">A1</span> <span class="id" title="var">A2</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#eq_m"><span class="id" title="variable">eq_m</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_n"><span class="id" title="variable">eq_n</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#esym"><span class="id" title="definition">esym</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_m"><span class="id" title="variable">eq_m</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#esym"><span class="id" title="definition">esym</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_n"><span class="id" title="variable">eq_n</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="castmxE"><span class="id" title="lemma">castmxE</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">n1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n2</span> (<span class="id" title="var">eq_mn</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">)</span></a>) <span class="id" title="var">A</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_mn"><span class="id" title="variable">eq_mn</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a><br/> - <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#cast_ord"><span class="id" title="definition">cast_ord</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#esym"><span class="id" title="definition">esym</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_mn"><span class="id" title="variable">eq_mn</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>) (<a class="idref" href="mathcomp.ssreflect.fintype.html#cast_ord"><span class="id" title="definition">cast_ord</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#esym"><span class="id" title="definition">esym</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_mn"><span class="id" title="variable">eq_mn</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="conform_mx_id"><span class="id" title="lemma">conform_mx_id</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">B</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#conform_mx"><span class="id" title="definition">conform_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="nonconform_mx"><span class="id" title="lemma">nonconform_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">m'</span> <span class="id" title="var">n</span> <span class="id" title="var">n'</span> (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m'"><span class="id" title="variable">m'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n'"><span class="id" title="variable">n'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#081ff67d3116402bb680e8692aa39185"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m'"><span class="id" title="variable">m'</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#081ff67d3116402bb680e8692aa39185"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#081ff67d3116402bb680e8692aa39185"><span class="id" title="notation">||</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#081ff67d3116402bb680e8692aa39185"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n'"><span class="id" title="variable">n'</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#081ff67d3116402bb680e8692aa39185"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#conform_mx"><span class="id" title="definition">conform_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="conform_castmx"><span class="id" title="lemma">conform_castmx</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">n1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n2</span> <span class="id" title="var">m3</span> <span class="id" title="var">n3</span><br/> - (<span class="id" title="var">e_mn</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m3"><span class="id" title="variable">m3</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n3"><span class="id" title="variable">n3</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) <span class="id" title="var">A</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#conform_mx"><span class="id" title="definition">conform_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#e_mn"><span class="id" title="variable">e_mn</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#conform_mx"><span class="id" title="definition">conform_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmxK"><span class="id" title="lemma">trmxK</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#trmx"><span class="id" title="definition">trmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>) (@<a class="idref" href="mathcomp.algebra.matrix.html#trmx"><span class="id" title="definition">trmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx_inj"><span class="id" title="lemma">trmx_inj</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#injective"><span class="id" title="definition">injective</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#trmx"><span class="id" title="definition">trmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx_cast"><span class="id" title="lemma">trmx_cast</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">n1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n2</span> (<span class="id" title="var">eq_mn</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">)</span></a>) <span class="id" title="var">A</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_mn"><span class="id" title="variable">eq_mn</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#eq_mn"><span class="id" title="variable">eq_mn</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_mn"><span class="id" title="variable">eq_mn</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">.1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_row_perm"><span class="id" title="lemma">tr_row_perm</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">s</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_col_perm"><span class="id" title="lemma">tr_col_perm</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">s</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_xrow"><span class="id" title="lemma">tr_xrow</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i1</span> <span class="id" title="var">i2</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#xrow"><span class="id" title="definition">xrow</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#xcol"><span class="id" title="definition">xcol</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_xcol"><span class="id" title="lemma">tr_xcol</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">j1</span> <span class="id" title="var">j2</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#xcol"><span class="id" title="definition">xcol</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#xrow"><span class="id" title="definition">xrow</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_id"><span class="id" title="lemma">row_id</span></a> <span class="id" title="var">n</span> <span class="id" title="var">i</span> (<span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#V"><span class="id" title="variable">V</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_id"><span class="id" title="lemma">col_id</span></a> <span class="id" title="var">n</span> <span class="id" title="var">j</span> (<span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.matrix.html#41fc7f1b746b8b350a4d6421a5f6202b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#41fc7f1b746b8b350a4d6421a5f6202b"><span class="id" title="notation">cV_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#V"><span class="id" title="variable">V</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_eq"><span class="id" title="lemma">row_eq</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> <span class="id" title="var">i1</span> <span class="id" title="var">i2</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#876aa133fb3472bffd492f74ff496035"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_eq"><span class="id" title="lemma">col_eq</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">j1</span> <span class="id" title="var">j2</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#d89396f990d6b54d736cfe259e498cf4"><span class="id" title="notation">^~</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#876aa133fb3472bffd492f74ff496035"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#d89396f990d6b54d736cfe259e498cf4"><span class="id" title="notation">^~</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row'_eq"><span class="id" title="lemma">row'_eq</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i0</span> (<span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#predC1"><span class="id" title="definition">predC1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#c717e24548d7d4d1086535addc681262"><span class="id" title="notation">=2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col'_eq"><span class="id" title="lemma">col'_eq</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">j0</span> (<span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">i</span>, <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#predC1"><span class="id" title="definition">predC1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#876aa133fb3472bffd492f74ff496035"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_row"><span class="id" title="lemma">tr_row</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i0</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_row'"><span class="id" title="lemma">tr_row'</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i0</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_col"><span class="id" title="lemma">tr_col</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">j0</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_col'"><span class="id" title="lemma">tr_col'</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">j0</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Ltac</span> <span class="id" title="var">split_mxE</span> := <span class="id" title="tactic">apply</span>/<a class="idref" href="mathcomp.algebra.matrix.html#matrixP"><span class="id" title="lemma">matrixP</span></a>⇒ <span class="id" title="var">i</span> <span class="id" title="var">j</span>; <span class="id" title="tactic">do</span> ![<span class="id" title="tactic">rewrite</span> <a class="idref" href="mathcomp.algebra.matrix.html#mxE"><span class="id" title="lemma">mxE</span></a> | <span class="id" title="tactic">case</span>: <a class="idref" href="mathcomp.ssreflect.fintype.html#split"><span class="id" title="definition">split</span></a> ⇒ ?].<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixStructural.CutPaste"><span class="id" title="section">CutPaste</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> <a name="MatrixStructural.CutPaste.m"><span class="id" title="variable">m</span></a> <a name="MatrixStructural.CutPaste.m1"><span class="id" title="variable">m1</span></a> <a name="MatrixStructural.CutPaste.m2"><span class="id" title="variable">m2</span></a> <a name="MatrixStructural.CutPaste.n"><span class="id" title="variable">n</span></a> <a name="MatrixStructural.CutPaste.n1"><span class="id" title="variable">n1</span></a> <a name="MatrixStructural.CutPaste.n2"><span class="id" title="variable">n2</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Concatenating two matrices, in either direction. -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Fact</span> <a name="row_mx_key"><span class="id" title="lemma">row_mx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="row_mx"><span class="id" title="definition">row_mx</span></a> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#row_mx_key"><span class="id" title="lemma">row_mx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a><br/> - <span class="id" title="keyword">match</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#split"><span class="id" title="definition">split</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <span class="id" title="keyword">with</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#inl"><span class="id" title="constructor">inl</span></a> <span class="id" title="var">j1</span> ⇒ <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">j1</span> | <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#inr"><span class="id" title="constructor">inr</span></a> <span class="id" title="var">j2</span> ⇒ <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="var">j2</span> <span class="id" title="keyword">end</span>.<br/> - -<br/> -<span class="id" title="keyword">Fact</span> <a name="col_mx_key"><span class="id" title="lemma">col_mx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="col_mx"><span class="id" title="definition">col_mx</span></a> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#col_mx_key"><span class="id" title="lemma">col_mx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a><br/> - <span class="id" title="keyword">match</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#split"><span class="id" title="definition">split</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <span class="id" title="keyword">with</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#inl"><span class="id" title="constructor">inl</span></a> <span class="id" title="var">i1</span> ⇒ <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <span class="id" title="var">i1</span> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> | <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#inr"><span class="id" title="constructor">inr</span></a> <span class="id" title="var">i2</span> ⇒ <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <span class="id" title="var">i2</span> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <span class="id" title="keyword">end</span>.<br/> - -<br/> -</div> - -<div class="doc"> - Left/Right | Up/Down submatrices of a rows | columns matrix. - The shape of the (dependent) width parameters of the type of A - determines which submatrix is selected. -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Fact</span> <a name="lsubmx_key"><span class="id" title="lemma">lsubmx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="lsubmx"><span class="id" title="definition">lsubmx</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#lsubmx_key"><span class="id" title="lemma">lsubmx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#lshift"><span class="id" title="definition">lshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n2"><span class="id" title="variable">n2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Fact</span> <a name="rsubmx_key"><span class="id" title="lemma">rsubmx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="rsubmx"><span class="id" title="definition">rsubmx</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#rsubmx_key"><span class="id" title="lemma">rsubmx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#rshift"><span class="id" title="definition">rshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Fact</span> <a name="usubmx_key"><span class="id" title="lemma">usubmx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="usubmx"><span class="id" title="definition">usubmx</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#usubmx_key"><span class="id" title="lemma">usubmx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#lshift"><span class="id" title="definition">lshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Fact</span> <a name="dsubmx_key"><span class="id" title="lemma">dsubmx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="dsubmx"><span class="id" title="definition">dsubmx</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#dsubmx_key"><span class="id" title="lemma">dsubmx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#rshift"><span class="id" title="definition">rshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_mxEl"><span class="id" title="lemma">row_mxEl</span></a> <span class="id" title="var">A1</span> <span class="id" title="var">A2</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#lshift"><span class="id" title="definition">lshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n2"><span class="id" title="variable">n2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_mxKl"><span class="id" title="lemma">row_mxKl</span></a> <span class="id" title="var">A1</span> <span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#lsubmx"><span class="id" title="definition">lsubmx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_mxEr"><span class="id" title="lemma">row_mxEr</span></a> <span class="id" title="var">A1</span> <span class="id" title="var">A2</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#rshift"><span class="id" title="definition">rshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_mxKr"><span class="id" title="lemma">row_mxKr</span></a> <span class="id" title="var">A1</span> <span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#rsubmx"><span class="id" title="definition">rsubmx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="hsubmxK"><span class="id" title="lemma">hsubmxK</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#lsubmx"><span class="id" title="definition">lsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#rsubmx"><span class="id" title="definition">rsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_mxEu"><span class="id" title="lemma">col_mxEu</span></a> <span class="id" title="var">A1</span> <span class="id" title="var">A2</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#lshift"><span class="id" title="definition">lshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_mxKu"><span class="id" title="lemma">col_mxKu</span></a> <span class="id" title="var">A1</span> <span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#usubmx"><span class="id" title="definition">usubmx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_mxEd"><span class="id" title="lemma">col_mxEd</span></a> <span class="id" title="var">A1</span> <span class="id" title="var">A2</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#rshift"><span class="id" title="definition">rshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste.m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_mxKd"><span class="id" title="lemma">col_mxKd</span></a> <span class="id" title="var">A1</span> <span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#dsubmx"><span class="id" title="definition">dsubmx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="eq_row_mx"><span class="id" title="lemma">eq_row_mx</span></a> <span class="id" title="var">A1</span> <span class="id" title="var">A2</span> <span class="id" title="var">B1</span> <span class="id" title="var">B2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B1"><span class="id" title="variable">B1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B2"><span class="id" title="variable">B2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B1"><span class="id" title="variable">B1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#ba2b0e492d2b4675a0acf3ea92aabadd"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B2"><span class="id" title="variable">B2</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="eq_col_mx"><span class="id" title="lemma">eq_col_mx</span></a> <span class="id" title="var">A1</span> <span class="id" title="var">A2</span> <span class="id" title="var">B1</span> <span class="id" title="var">B2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B1"><span class="id" title="variable">B1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B2"><span class="id" title="variable">B2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B1"><span class="id" title="variable">B1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#ba2b0e492d2b4675a0acf3ea92aabadd"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B2"><span class="id" title="variable">B2</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_mx_const"><span class="id" title="lemma">row_mx_const</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_mx_const"><span class="id" title="lemma">col_mx_const</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.CutPaste"><span class="id" title="section">CutPaste</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx_lsub"><span class="id" title="lemma">trmx_lsub</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#lsubmx"><span class="id" title="definition">lsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#usubmx"><span class="id" title="definition">usubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx_rsub"><span class="id" title="lemma">trmx_rsub</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#rsubmx"><span class="id" title="definition">rsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#dsubmx"><span class="id" title="definition">dsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_row_mx"><span class="id" title="lemma">tr_row_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_col_mx"><span class="id" title="lemma">tr_col_mx</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx_usub"><span class="id" title="lemma">trmx_usub</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#usubmx"><span class="id" title="definition">usubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lsubmx"><span class="id" title="definition">lsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx_dsub"><span class="id" title="lemma">trmx_dsub</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#dsubmx"><span class="id" title="definition">dsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#rsubmx"><span class="id" title="definition">rsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="vsubmxK"><span class="id" title="lemma">vsubmxK</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#usubmx"><span class="id" title="definition">usubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#dsubmx"><span class="id" title="definition">dsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="cast_row_mx"><span class="id" title="lemma">cast_row_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">m'</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> (<span class="id" title="var">eq_m</span> : <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m'"><span class="id" title="variable">m'</span></a>) <span class="id" title="var">A1</span> <span class="id" title="var">A2</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#eq_m"><span class="id" title="variable">eq_m</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#erefl"><span class="id" title="abbreviation">erefl</span></a> <span class="id" title="var">_</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>)<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#eq_m"><span class="id" title="variable">eq_m</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#erefl"><span class="id" title="abbreviation">erefl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#eq_m"><span class="id" title="variable">eq_m</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#erefl"><span class="id" title="abbreviation">erefl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="cast_col_mx"><span class="id" title="lemma">cast_col_mx</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> <span class="id" title="var">n'</span> (<span class="id" title="var">eq_n</span> : <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n'"><span class="id" title="variable">n'</span></a>) <span class="id" title="var">A1</span> <span class="id" title="var">A2</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#erefl"><span class="id" title="abbreviation">erefl</span></a> <span class="id" title="var">_</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_n"><span class="id" title="variable">eq_n</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>)<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#erefl"><span class="id" title="abbreviation">erefl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_n"><span class="id" title="variable">eq_n</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#erefl"><span class="id" title="abbreviation">erefl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#eq_n"><span class="id" title="variable">eq_n</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>).<br/> - -<br/> -</div> - -<div class="doc"> - This lemma has Prenex Implicits to help RL rewrititng with castmx_sym. -</div> -<div class="code"> -<span class="id" title="keyword">Lemma</span> <a name="row_mxA"><span class="id" title="lemma">row_mxA</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">n3</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A3</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n3"><span class="id" title="variable">n3</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">cast</span> := <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#erefl"><span class="id" title="abbreviation">erefl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#esym"><span class="id" title="definition">esym</span></a> (<a class="idref" href="mathcomp.ssreflect.ssrnat.html#addnA"><span class="id" title="lemma">addnA</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n3"><span class="id" title="variable">n3</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <span class="id" title="tactic">in</span><br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A3"><span class="id" title="variable">A3</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#cast"><span class="id" title="variable">cast</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#A3"><span class="id" title="variable">A3</span></a>).<br/> -<span class="id" title="keyword">Definition</span> <a name="row_mxAx"><span class="id" title="definition">row_mxAx</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#row_mxA"><span class="id" title="lemma">row_mxA</span></a>. <span class="comment">(* bypass Prenex Implicits. *)</span><br/> - -<br/> -</div> - -<div class="doc"> - This lemma has Prenex Implicits to help RL rewrititng with castmx_sym. -</div> -<div class="code"> -<span class="id" title="keyword">Lemma</span> <a name="col_mxA"><span class="id" title="lemma">col_mxA</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">m3</span> <span class="id" title="var">n</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A3</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m3"><span class="id" title="variable">m3</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">cast</span> := <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#esym"><span class="id" title="definition">esym</span></a> (<a class="idref" href="mathcomp.ssreflect.ssrnat.html#addnA"><span class="id" title="lemma">addnA</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m3"><span class="id" title="variable">m3</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#erefl"><span class="id" title="abbreviation">erefl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <span class="id" title="tactic">in</span><br/> - <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A3"><span class="id" title="variable">A3</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#cast"><span class="id" title="variable">cast</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#A3"><span class="id" title="variable">A3</span></a>).<br/> - <span class="id" title="keyword">Definition</span> <a name="col_mxAx"><span class="id" title="definition">col_mxAx</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#col_mxA"><span class="id" title="lemma">col_mxA</span></a>. <span class="comment">(* bypass Prenex Implicits. *)</span><br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_row_mx"><span class="id" title="lemma">row_row_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">i0</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_col_mx"><span class="id" title="lemma">col_col_mx</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> <span class="id" title="var">j0</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row'_row_mx"><span class="id" title="lemma">row'_row_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">i0</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col'_col_mx"><span class="id" title="lemma">col'_col_mx</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> <span class="id" title="var">j0</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="colKl"><span class="id" title="lemma">colKl</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">j1</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#lshift"><span class="id" title="definition">lshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="colKr"><span class="id" title="lemma">colKr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">j2</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#rshift"><span class="id" title="definition">rshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="rowKu"><span class="id" title="lemma">rowKu</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> <span class="id" title="var">i1</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#lshift"><span class="id" title="definition">lshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="rowKd"><span class="id" title="lemma">rowKd</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> <span class="id" title="var">i2</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#rshift"><span class="id" title="definition">rshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col'Kl"><span class="id" title="lemma">col'Kl</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">j1</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#lshift"><span class="id" title="definition">lshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row'Ku"><span class="id" title="lemma">row'Ku</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> <span class="id" title="var">i1</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#lshift"><span class="id" title="definition">lshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a>) (@<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mx'_cast"><span class="id" title="lemma">mx'_cast</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">.-1</span></a>)%<span class="id" title="var">N</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">).-1</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col'Kr"><span class="id" title="lemma">col'Kr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">j2</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#rshift"><span class="id" title="definition">rshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a>) (@<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>)<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#erefl"><span class="id" title="abbreviation">erefl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mx'_cast"><span class="id" title="lemma">mx'_cast</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>)).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row'Kd"><span class="id" title="lemma">row'Kd</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> <span class="id" title="var">i2</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#rshift"><span class="id" title="definition">rshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>)<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#mx'_cast"><span class="id" title="lemma">mx'_cast</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#erefl"><span class="id" title="abbreviation">erefl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>)).<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixStructural.Block"><span class="id" title="section">Block</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> <a name="MatrixStructural.Block.m1"><span class="id" title="variable">m1</span></a> <a name="MatrixStructural.Block.m2"><span class="id" title="variable">m2</span></a> <a name="MatrixStructural.Block.n1"><span class="id" title="variable">n1</span></a> <a name="MatrixStructural.Block.n2"><span class="id" title="variable">n2</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Building a block matrix from 4 matrices : - up left, up right, down left and down right components -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="block_mx"><span class="id" title="definition">block_mx</span></a> <span class="id" title="var">Aul</span> <span class="id" title="var">Aur</span> <span class="id" title="var">Adl</span> <span class="id" title="var">Adr</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="eq_block_mx"><span class="id" title="lemma">eq_block_mx</span></a> <span class="id" title="var">Aul</span> <span class="id" title="var">Aur</span> <span class="id" title="var">Adl</span> <span class="id" title="var">Adr</span> <span class="id" title="var">Bul</span> <span class="id" title="var">Bur</span> <span class="id" title="var">Bdl</span> <span class="id" title="var">Bdr</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bul"><span class="id" title="variable">Bul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bur"><span class="id" title="variable">Bur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdl"><span class="id" title="variable">Bdl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdr"><span class="id" title="variable">Bdr</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#554fc3f3cf0a27fe0863b7741d119014"><span class="id" title="notation">[/\</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bul"><span class="id" title="variable">Bul</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#554fc3f3cf0a27fe0863b7741d119014"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bur"><span class="id" title="variable">Bur</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#554fc3f3cf0a27fe0863b7741d119014"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdl"><span class="id" title="variable">Bdl</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#554fc3f3cf0a27fe0863b7741d119014"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdr"><span class="id" title="variable">Bdr</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#554fc3f3cf0a27fe0863b7741d119014"><span class="id" title="notation">]</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="block_mx_const"><span class="id" title="lemma">block_mx_const</span></a> <span class="id" title="var">a</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixStructural.Block.CutBlock"><span class="id" title="section">CutBlock</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="MatrixStructural.Block.CutBlock.A"><span class="id" title="variable">A</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#matrix"><span class="id" title="inductive">matrix</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.m2"><span class="id" title="variable">m2</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.n2"><span class="id" title="variable">n2</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="ulsubmx"><span class="id" title="definition">ulsubmx</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#lsubmx"><span class="id" title="definition">lsubmx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#usubmx"><span class="id" title="definition">usubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CutBlock.A"><span class="id" title="variable">A</span></a>).<br/> -<span class="id" title="keyword">Definition</span> <a name="ursubmx"><span class="id" title="definition">ursubmx</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#rsubmx"><span class="id" title="definition">rsubmx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#usubmx"><span class="id" title="definition">usubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CutBlock.A"><span class="id" title="variable">A</span></a>).<br/> -<span class="id" title="keyword">Definition</span> <a name="dlsubmx"><span class="id" title="definition">dlsubmx</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#lsubmx"><span class="id" title="definition">lsubmx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#dsubmx"><span class="id" title="definition">dsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CutBlock.A"><span class="id" title="variable">A</span></a>).<br/> -<span class="id" title="keyword">Definition</span> <a name="drsubmx"><span class="id" title="definition">drsubmx</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#rsubmx"><span class="id" title="definition">rsubmx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#dsubmx"><span class="id" title="definition">dsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CutBlock.A"><span class="id" title="variable">A</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="submxK"><span class="id" title="lemma">submxK</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ulsubmx"><span class="id" title="definition">ulsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ursubmx"><span class="id" title="definition">ursubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#dlsubmx"><span class="id" title="definition">dlsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#drsubmx"><span class="id" title="definition">drsubmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CutBlock.A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CutBlock"><span class="id" title="section">CutBlock</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixStructural.Block.CatBlock"><span class="id" title="section">CatBlock</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> (<a name="MatrixStructural.Block.CatBlock.Aul"><span class="id" title="variable">Aul</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) (<a name="MatrixStructural.Block.CatBlock.Aur"><span class="id" title="variable">Aur</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>).<br/> -<span class="id" title="keyword">Variables</span> (<a name="MatrixStructural.Block.CatBlock.Adl"><span class="id" title="variable">Adl</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) (<a name="MatrixStructural.Block.CatBlock.Adr"><span class="id" title="variable">Adr</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Let</span> <a name="MatrixStructural.Block.CatBlock.A"><span class="id" title="variable">A</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Adr"><span class="id" title="variable">Adr</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="block_mxEul"><span class="id" title="lemma">block_mxEul</span></a> <span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.A"><span class="id" title="variable">A</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#lshift"><span class="id" title="definition">lshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>) (<a class="idref" href="mathcomp.ssreflect.fintype.html#lshift"><span class="id" title="definition">lshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.n2"><span class="id" title="variable">n2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - <span class="id" title="keyword">Lemma</span> <a name="block_mxKul"><span class="id" title="lemma">block_mxKul</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#ulsubmx"><span class="id" title="definition">ulsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Aul"><span class="id" title="variable">Aul</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="block_mxEur"><span class="id" title="lemma">block_mxEur</span></a> <span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.A"><span class="id" title="variable">A</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#lshift"><span class="id" title="definition">lshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>) (<a class="idref" href="mathcomp.ssreflect.fintype.html#rshift"><span class="id" title="definition">rshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - <span class="id" title="keyword">Lemma</span> <a name="block_mxKur"><span class="id" title="lemma">block_mxKur</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#ursubmx"><span class="id" title="definition">ursubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Aur"><span class="id" title="variable">Aur</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="block_mxEdl"><span class="id" title="lemma">block_mxEdl</span></a> <span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.A"><span class="id" title="variable">A</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#rshift"><span class="id" title="definition">rshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>) (<a class="idref" href="mathcomp.ssreflect.fintype.html#lshift"><span class="id" title="definition">lshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.n2"><span class="id" title="variable">n2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - <span class="id" title="keyword">Lemma</span> <a name="block_mxKdl"><span class="id" title="lemma">block_mxKdl</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#dlsubmx"><span class="id" title="definition">dlsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Adl"><span class="id" title="variable">Adl</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="block_mxEdr"><span class="id" title="lemma">block_mxEdr</span></a> <span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.A"><span class="id" title="variable">A</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#rshift"><span class="id" title="definition">rshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>) (<a class="idref" href="mathcomp.ssreflect.fintype.html#rshift"><span class="id" title="definition">rshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Adr"><span class="id" title="variable">Adr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - <span class="id" title="keyword">Lemma</span> <a name="block_mxKdr"><span class="id" title="lemma">block_mxKdr</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#drsubmx"><span class="id" title="definition">drsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Adr"><span class="id" title="variable">Adr</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="block_mxEv"><span class="id" title="lemma">block_mxEv</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Aur"><span class="id" title="variable">Aur</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock.Adr"><span class="id" title="variable">Adr</span></a>).<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block.CatBlock"><span class="id" title="section">CatBlock</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.Block"><span class="id" title="section">Block</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixStructural.TrCutBlock"><span class="id" title="section">TrCutBlock</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> <a name="MatrixStructural.TrCutBlock.m1"><span class="id" title="variable">m1</span></a> <a name="MatrixStructural.TrCutBlock.m2"><span class="id" title="variable">m2</span></a> <a name="MatrixStructural.TrCutBlock.n1"><span class="id" title="variable">n1</span></a> <a name="MatrixStructural.TrCutBlock.n2"><span class="id" title="variable">n2</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> -<span class="id" title="keyword">Variable</span> <a name="MatrixStructural.TrCutBlock.A"><span class="id" title="variable">A</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrCutBlock.m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrCutBlock.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrCutBlock.n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrCutBlock.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx_ulsub"><span class="id" title="lemma">trmx_ulsub</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ulsubmx"><span class="id" title="definition">ulsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrCutBlock.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ulsubmx"><span class="id" title="definition">ulsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrCutBlock.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx_ursub"><span class="id" title="lemma">trmx_ursub</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ursubmx"><span class="id" title="definition">ursubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrCutBlock.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#dlsubmx"><span class="id" title="definition">dlsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrCutBlock.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx_dlsub"><span class="id" title="lemma">trmx_dlsub</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#dlsubmx"><span class="id" title="definition">dlsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrCutBlock.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ursubmx"><span class="id" title="definition">ursubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrCutBlock.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx_drsub"><span class="id" title="lemma">trmx_drsub</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#drsubmx"><span class="id" title="definition">drsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrCutBlock.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#drsubmx"><span class="id" title="definition">drsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrCutBlock.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrCutBlock"><span class="id" title="section">TrCutBlock</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixStructural.TrBlock"><span class="id" title="section">TrBlock</span></a>.<br/> -<span class="id" title="keyword">Variables</span> <a name="MatrixStructural.TrBlock.m1"><span class="id" title="variable">m1</span></a> <a name="MatrixStructural.TrBlock.m2"><span class="id" title="variable">m2</span></a> <a name="MatrixStructural.TrBlock.n1"><span class="id" title="variable">n1</span></a> <a name="MatrixStructural.TrBlock.n2"><span class="id" title="variable">n2</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> -<span class="id" title="keyword">Variables</span> (<a name="MatrixStructural.TrBlock.Aul"><span class="id" title="variable">Aul</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) (<a name="MatrixStructural.TrBlock.Aur"><span class="id" title="variable">Aur</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>).<br/> -<span class="id" title="keyword">Variables</span> (<a name="MatrixStructural.TrBlock.Adl"><span class="id" title="variable">Adl</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) (<a name="MatrixStructural.TrBlock.Adr"><span class="id" title="variable">Adr</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_block_mx"><span class="id" title="lemma">tr_block_mx</span></a> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Adr"><span class="id" title="variable">Adr</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Aul"><span class="id" title="variable">Aul</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Adl"><span class="id" title="variable">Adl</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Aur"><span class="id" title="variable">Aur</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Adr"><span class="id" title="variable">Adr</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#82d06d97ea622769b781f4bb9951aa48"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="block_mxEh"><span class="id" title="lemma">block_mxEh</span></a> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Adr"><span class="id" title="variable">Adr</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Adl"><span class="id" title="variable">Adl</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock.Adr"><span class="id" title="variable">Adr</span></a>).<br/> - <span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.TrBlock"><span class="id" title="section">TrBlock</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - This lemma has Prenex Implicits to help RL rewrititng with castmx_sym. -</div> -<div class="code"> -<span class="id" title="keyword">Lemma</span> <a name="block_mxA"><span class="id" title="lemma">block_mxA</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">m3</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">n3</span><br/> - (<span class="id" title="var">A11</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A12</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A13</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n3"><span class="id" title="variable">n3</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>)<br/> - (<span class="id" title="var">A21</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A22</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A23</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n3"><span class="id" title="variable">n3</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>)<br/> - (<span class="id" title="var">A31</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m3"><span class="id" title="variable">m3</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A32</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m3"><span class="id" title="variable">m3</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A33</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m3"><span class="id" title="variable">m3</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n3"><span class="id" title="variable">n3</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">cast</span> := <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#esym"><span class="id" title="definition">esym</span></a> (<a class="idref" href="mathcomp.ssreflect.ssrnat.html#addnA"><span class="id" title="lemma">addnA</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m3"><span class="id" title="variable">m3</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#esym"><span class="id" title="definition">esym</span></a> (<a class="idref" href="mathcomp.ssreflect.ssrnat.html#addnA"><span class="id" title="lemma">addnA</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n3"><span class="id" title="variable">n3</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">row1</span> := <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A12"><span class="id" title="variable">A12</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A13"><span class="id" title="variable">A13</span></a> <span class="id" title="tactic">in</span> <span class="id" title="keyword">let</span> <span class="id" title="var">col1</span> := <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A21"><span class="id" title="variable">A21</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A31"><span class="id" title="variable">A31</span></a> <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">row3</span> := <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A31"><span class="id" title="variable">A31</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A32"><span class="id" title="variable">A32</span></a> <span class="id" title="tactic">in</span> <span class="id" title="keyword">let</span> <span class="id" title="var">col3</span> := <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A13"><span class="id" title="variable">A13</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A23"><span class="id" title="variable">A23</span></a> <span class="id" title="tactic">in</span><br/> - <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A11"><span class="id" title="variable">A11</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row1"><span class="id" title="variable">row1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col1"><span class="id" title="variable">col1</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A22"><span class="id" title="variable">A22</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A23"><span class="id" title="variable">A23</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A32"><span class="id" title="variable">A32</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A33"><span class="id" title="variable">A33</span></a>)<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#cast"><span class="id" title="variable">cast</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A11"><span class="id" title="variable">A11</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A12"><span class="id" title="variable">A12</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A21"><span class="id" title="variable">A21</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A22"><span class="id" title="variable">A22</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#col3"><span class="id" title="variable">col3</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row3"><span class="id" title="variable">row3</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A33"><span class="id" title="variable">A33</span></a>).<br/> -<span class="id" title="keyword">Definition</span> <a name="block_mxAx"><span class="id" title="definition">block_mxAx</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#block_mxA"><span class="id" title="lemma">block_mxA</span></a>. <span class="comment">(* Bypass Prenex Implicits *)</span><br/> - -<br/> -</div> - -<div class="doc"> - Bijections mxvec : 'M(m, n) <----> 'rV(m * n) : vec_mx -</div> -<div class="code"> -<span class="id" title="keyword">Section</span> <a name="MatrixStructural.VecMatrix"><span class="id" title="section">VecMatrix</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> <a name="MatrixStructural.VecMatrix.m"><span class="id" title="variable">m</span></a> <a name="MatrixStructural.VecMatrix.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxvec_cast"><span class="id" title="lemma">mxvec_cast</span></a> : <a class="idref" href="mathcomp.ssreflect.fintype.html#234f50e13366f794cd6877cf832a5935"><span class="id" title="notation">#|</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#fa3b33ae9d0a52de608b305a09f3b881"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_n</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#fa3b33ae9d0a52de608b305a09f3b881"><span class="id" title="notation">}</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#234f50e13366f794cd6877cf832a5935"><span class="id" title="notation">|</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.VecMatrix.m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ea2ff3d561159081cea6fb2e8113cc54"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.VecMatrix.n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">N</span>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="mxvec_index"><span class="id" title="definition">mxvec_index</span></a> (<span class="id" title="var">i</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_m</span></a>) (<span class="id" title="var">j</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_n</span></a>) :=<br/> - <a class="idref" href="mathcomp.ssreflect.fintype.html#cast_ord"><span class="id" title="definition">cast_ord</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mxvec_cast"><span class="id" title="lemma">mxvec_cast</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#enum_rank"><span class="id" title="definition">enum_rank</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Variant</span> <a name="is_mxvec_index"><span class="id" title="inductive">is_mxvec_index</span></a> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.VecMatrix.m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ea2ff3d561159081cea6fb2e8113cc54"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.VecMatrix.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">Type</span> :=<br/> - <a name="IsMxvecIndex"><span class="id" title="constructor">IsMxvecIndex</span></a> <span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.algebra.matrix.html#is_mxvec_index"><span class="id" title="inductive">is_mxvec_index</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#mxvec_index"><span class="id" title="definition">mxvec_index</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxvec_indexP"><span class="id" title="lemma">mxvec_indexP</span></a> <span class="id" title="var">k</span> : <a class="idref" href="mathcomp.algebra.matrix.html#is_mxvec_index"><span class="id" title="inductive">is_mxvec_index</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Coercion</span> <span class="id" title="var">pair_of_mxvec_index</span> <span class="id" title="var">k</span> (<span class="id" title="var">i_k</span> : <a class="idref" href="mathcomp.algebra.matrix.html#is_mxvec_index"><span class="id" title="inductive">is_mxvec_index</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a>) :=<br/> - <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.matrix.html#IsMxvecIndex"><span class="id" title="constructor">IsMxvecIndex</span></a> <span class="id" title="var">i</span> <span class="id" title="var">j</span> := <a class="idref" href="mathcomp.algebra.matrix.html#i_k"><span class="id" title="variable">i_k</span></a> <span class="id" title="tactic">in</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="mxvec"><span class="id" title="definition">mxvec</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.VecMatrix.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.VecMatrix.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#erefl"><span class="id" title="abbreviation">erefl</span></a> <span class="id" title="var">_</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mxvec_cast"><span class="id" title="lemma">mxvec_cast</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#e96cc16a4a892792949f73b0ccf32cf1"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e96cc16a4a892792949f73b0ccf32cf1"><span class="id" title="notation">row_k</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#enum_val"><span class="id" title="definition">enum_val</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">).1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#enum_val"><span class="id" title="definition">enum_val</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">).2</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Fact</span> <a name="vec_mx_key"><span class="id" title="lemma">vec_mx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="vec_mx"><span class="id" title="definition">vec_mx</span></a> (<span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.VecMatrix.m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ea2ff3d561159081cea6fb2e8113cc54"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.VecMatrix.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">)</span></a>) :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#vec_mx_key"><span class="id" title="lemma">vec_mx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> 0 (<a class="idref" href="mathcomp.algebra.matrix.html#mxvec_index"><span class="id" title="definition">mxvec_index</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxvecE"><span class="id" title="lemma">mxvecE</span></a> <span class="id" title="var">A</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> 0 (<a class="idref" href="mathcomp.algebra.matrix.html#mxvec_index"><span class="id" title="definition">mxvec_index</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxvecK"><span class="id" title="lemma">mxvecK</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="vec_mxK"><span class="id" title="lemma">vec_mxK</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="curry_mxvec_bij"><span class="id" title="lemma">curry_mxvec_bij</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#7a12faf7e5f15d58335f3e4b34342ab7"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#7a12faf7e5f15d58335f3e4b34342ab7"><span class="id" title="notation">on</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.VecMatrix.m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ea2ff3d561159081cea6fb2e8113cc54"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.VecMatrix.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">)</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#7a12faf7e5f15d58335f3e4b34342ab7"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#7a12faf7e5f15d58335f3e4b34342ab7"><span class="id" title="notation">bijective</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#7a12faf7e5f15d58335f3e4b34342ab7"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#prod_curry"><span class="id" title="definition">prod_curry</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mxvec_index"><span class="id" title="definition">mxvec_index</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#7a12faf7e5f15d58335f3e4b34342ab7"><span class="id" title="notation">)}</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural.VecMatrix"><span class="id" title="section">VecMatrix</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixStructural"><span class="id" title="section">MatrixStructural</span></a>.<br/> - -<br/> - -<br/> -<span class="id" title="keyword">Notation</span> <a name="21ca0474978189f352b592dccdd75860"><span class="id" title="notation">"</span></a>A ^T" := (<a class="idref" href="mathcomp.algebra.matrix.html#trmx"><span class="id" title="definition">trmx</span></a> <span class="id" title="var">A</span>) : <span class="id" title="var">ring_scope</span>.<br/> - -<br/> -</div> - -<div class="doc"> - Matrix parametricity. -</div> -<div class="code"> -<span class="id" title="keyword">Section</span> <a name="MapMatrix"><span class="id" title="section">MapMatrix</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> (<a name="MapMatrix.aT"><span class="id" title="variable">aT</span></a> <a name="MapMatrix.rT"><span class="id" title="variable">rT</span></a> : <span class="id" title="keyword">Type</span>) (<a name="MapMatrix.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#aT"><span class="id" title="variable">aT</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#rT"><span class="id" title="variable">rT</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Fact</span> <a name="map_mx_key"><span class="id" title="lemma">map_mx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="map_mx"><span class="id" title="definition">map_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) := <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#map_mx_key"><span class="id" title="lemma">map_mx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Notation</span> <a name="d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">"</span></a>A ^f" := (<a class="idref" href="mathcomp.algebra.matrix.html#map_mx"><span class="id" title="definition">map_mx</span></a> <span class="id" title="var">A</span>) : <span class="id" title="var">ring_scope</span>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MapMatrix.OneMatrix"><span class="id" title="section">OneMatrix</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> (<a name="MapMatrix.OneMatrix.m"><span class="id" title="variable">m</span></a> <a name="MapMatrix.OneMatrix.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<a name="MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_trmx"><span class="id" title="lemma">map_trmx</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_const_mx"><span class="id" title="lemma">map_const_mx</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_row"><span class="id" title="lemma">map_row</span></a> <span class="id" title="var">i</span> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_col"><span class="id" title="lemma">map_col</span></a> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_row'"><span class="id" title="lemma">map_row'</span></a> <span class="id" title="var">i0</span> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_col'"><span class="id" title="lemma">map_col'</span></a> <span class="id" title="var">j0</span> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_row_perm"><span class="id" title="lemma">map_row_perm</span></a> <span class="id" title="var">s</span> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_col_perm"><span class="id" title="lemma">map_col_perm</span></a> <span class="id" title="var">s</span> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_xrow"><span class="id" title="lemma">map_xrow</span></a> <span class="id" title="var">i1</span> <span class="id" title="var">i2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#xrow"><span class="id" title="definition">xrow</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#xrow"><span class="id" title="definition">xrow</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_xcol"><span class="id" title="lemma">map_xcol</span></a> <span class="id" title="var">j1</span> <span class="id" title="var">j2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#xcol"><span class="id" title="definition">xcol</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#xcol"><span class="id" title="definition">xcol</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_castmx"><span class="id" title="lemma">map_castmx</span></a> <span class="id" title="var">m'</span> <span class="id" title="var">n'</span> <span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#castmx"><span class="id" title="definition">castmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m'"><span class="id" title="variable">m'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n'"><span class="id" title="variable">n'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_conform_mx"><span class="id" title="lemma">map_conform_mx</span></a> <span class="id" title="var">m'</span> <span class="id" title="var">n'</span> (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m'"><span class="id" title="variable">m'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n'"><span class="id" title="variable">n'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#conform_mx"><span class="id" title="definition">conform_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#conform_mx"><span class="id" title="definition">conform_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_mxvec"><span class="id" title="lemma">map_mxvec</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_vec_mx"><span class="id" title="lemma">map_vec_mx</span></a> (<span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ea2ff3d561159081cea6fb2e8113cc54"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.OneMatrix"><span class="id" title="section">OneMatrix</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MapMatrix.Block"><span class="id" title="section">Block</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> <a name="MapMatrix.Block.m1"><span class="id" title="variable">m1</span></a> <a name="MapMatrix.Block.m2"><span class="id" title="variable">m2</span></a> <a name="MapMatrix.Block.n1"><span class="id" title="variable">n1</span></a> <a name="MapMatrix.Block.n2"><span class="id" title="variable">n2</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> -<span class="id" title="keyword">Variables</span> (<a name="MapMatrix.Block.Aul"><span class="id" title="variable">Aul</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) (<a name="MapMatrix.Block.Aur"><span class="id" title="variable">Aur</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>).<br/> -<span class="id" title="keyword">Variables</span> (<a name="MapMatrix.Block.Adl"><span class="id" title="variable">Adl</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) (<a name="MapMatrix.Block.Adr"><span class="id" title="variable">Adr</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>).<br/> -<span class="id" title="keyword">Variables</span> (<a name="MapMatrix.Block.Bh"><span class="id" title="variable">Bh</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) (<a name="MapMatrix.Block.Bv"><span class="id" title="variable">Bv</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>).<br/> -<span class="id" title="keyword">Variable</span> <a name="MapMatrix.Block.B"><span class="id" title="variable">B</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_row_mx"><span class="id" title="lemma">map_row_mx</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Aur"><span class="id" title="variable">Aur</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Aul"><span class="id" title="variable">Aul</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Aur"><span class="id" title="variable">Aur</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_col_mx"><span class="id" title="lemma">map_col_mx</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Adl"><span class="id" title="variable">Adl</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Aul"><span class="id" title="variable">Aul</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Adl"><span class="id" title="variable">Adl</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_block_mx"><span class="id" title="lemma">map_block_mx</span></a> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Adr"><span class="id" title="variable">Adr</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Aul"><span class="id" title="variable">Aul</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Aur"><span class="id" title="variable">Aur</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Adl"><span class="id" title="variable">Adl</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Adr"><span class="id" title="variable">Adr</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_lsubmx"><span class="id" title="lemma">map_lsubmx</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#lsubmx"><span class="id" title="definition">lsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Bh"><span class="id" title="variable">Bh</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lsubmx"><span class="id" title="definition">lsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Bh"><span class="id" title="variable">Bh</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_rsubmx"><span class="id" title="lemma">map_rsubmx</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#rsubmx"><span class="id" title="definition">rsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Bh"><span class="id" title="variable">Bh</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#rsubmx"><span class="id" title="definition">rsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Bh"><span class="id" title="variable">Bh</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_usubmx"><span class="id" title="lemma">map_usubmx</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#usubmx"><span class="id" title="definition">usubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Bv"><span class="id" title="variable">Bv</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#usubmx"><span class="id" title="definition">usubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Bv"><span class="id" title="variable">Bv</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_dsubmx"><span class="id" title="lemma">map_dsubmx</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#dsubmx"><span class="id" title="definition">dsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Bv"><span class="id" title="variable">Bv</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#dsubmx"><span class="id" title="definition">dsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.Bv"><span class="id" title="variable">Bv</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_ulsubmx"><span class="id" title="lemma">map_ulsubmx</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ulsubmx"><span class="id" title="definition">ulsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ulsubmx"><span class="id" title="definition">ulsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_ursubmx"><span class="id" title="lemma">map_ursubmx</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ursubmx"><span class="id" title="definition">ursubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ursubmx"><span class="id" title="definition">ursubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_dlsubmx"><span class="id" title="lemma">map_dlsubmx</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#dlsubmx"><span class="id" title="definition">dlsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#dlsubmx"><span class="id" title="definition">dlsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_drsubmx"><span class="id" title="lemma">map_drsubmx</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#drsubmx"><span class="id" title="definition">drsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#drsubmx"><span class="id" title="definition">drsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block.B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d36c85c08e6bc06a03a0af528e062f26"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix.Block"><span class="id" title="section">Block</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MapMatrix"><span class="id" title="section">MapMatrix</span></a>.<br/> - -<br/> - -<br/> -</div> - -<div class="doc"> - Matrix Zmodule (additive) structure ****************** -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixZmodule"><span class="id" title="section">MatrixZmodule</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="MatrixZmodule.V"><span class="id" title="variable">V</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Exports.zmodType"><span class="id" title="abbreviation">zmodType</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixZmodule.FixedDim"><span class="id" title="section">FixedDim</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> <a name="MatrixZmodule.FixedDim.m"><span class="id" title="variable">m</span></a> <a name="MatrixZmodule.FixedDim.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> -<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.FixedDim.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.FixedDim.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Fact</span> <a name="oppmx_key"><span class="id" title="lemma">oppmx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Fact</span> <a name="addmx_key"><span class="id" title="lemma">addmx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="oppmx"><span class="id" title="definition">oppmx</span></a> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#oppmx_key"><span class="id" title="lemma">oppmx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a>.<br/> -<span class="id" title="keyword">Definition</span> <a name="addmx"><span class="id" title="definition">addmx</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> := <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#addmx_key"><span class="id" title="lemma">addmx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a>.<br/> -</div> - -<div class="doc"> - In principle, diag_mx and scalar_mx could be defined here, but since they - only make sense with the graded ring operations, we defer them to the - next section. -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="addmxA"><span class="id" title="lemma">addmxA</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#associative"><span class="id" title="definition">associative</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#addmx"><span class="id" title="definition">addmx</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="addmxC"><span class="id" title="lemma">addmxC</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#commutative"><span class="id" title="definition">commutative</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#addmx"><span class="id" title="definition">addmx</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="add0mx"><span class="id" title="lemma">add0mx</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#left_id"><span class="id" title="definition">left_id</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> 0) <a class="idref" href="mathcomp.algebra.matrix.html#addmx"><span class="id" title="definition">addmx</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="addNmx"><span class="id" title="lemma">addNmx</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#left_inverse"><span class="id" title="definition">left_inverse</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> 0) <a class="idref" href="mathcomp.algebra.matrix.html#oppmx"><span class="id" title="definition">oppmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#addmx"><span class="id" title="definition">addmx</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="matrix_zmodMixin"><span class="id" title="definition">matrix_zmodMixin</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Exports.ZmodMixin"><span class="id" title="abbreviation">ZmodMixin</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#addmxA"><span class="id" title="lemma">addmxA</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#addmxC"><span class="id" title="lemma">addmxC</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#add0mx"><span class="id" title="lemma">add0mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#addNmx"><span class="id" title="lemma">addNmx</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_zmodType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Exports.ZmodType"><span class="id" title="abbreviation">ZmodType</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.FixedDim.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.FixedDim.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#matrix_zmodMixin"><span class="id" title="definition">matrix_zmodMixin</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmxnE"><span class="id" title="lemma">mulmxnE</span></a> <span class="id" title="var">A</span> <span class="id" title="var">d</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> : (<a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">*+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">*+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="summxE"><span class="id" title="lemma">summxE</span></a> <span class="id" title="var">I</span> <span class="id" title="var">r</span> (<span class="id" title="var">P</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#I"><span class="id" title="variable">I</span></a>) (<span class="id" title="var">E</span> : <a class="idref" href="mathcomp.algebra.matrix.html#I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.FixedDim.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.FixedDim.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) <span class="id" title="var">i</span> <span class="id" title="var">j</span> :<br/> - (<a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">(</span></a><span class="id" title="var">k</span> <a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">(</span></a><span class="id" title="var">k</span> <a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="const_mx_is_additive"><span class="id" title="lemma">const_mx_is_additive</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.additive"><span class="id" title="abbreviation">additive</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a>.<br/> - <span class="id" title="keyword">Canonical</span> <span class="id" title="var">const_mx_additive</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx_is_additive"><span class="id" title="lemma">const_mx_is_additive</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.FixedDim"><span class="id" title="section">FixedDim</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixZmodule.Additive"><span class="id" title="section">Additive</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> (<a name="MatrixZmodule.Additive.m"><span class="id" title="variable">m</span></a> <a name="MatrixZmodule.Additive.n"><span class="id" title="variable">n</span></a> <a name="MatrixZmodule.Additive.p"><span class="id" title="variable">p</span></a> <a name="MatrixZmodule.Additive.q"><span class="id" title="variable">q</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<a name="MatrixZmodule.Additive.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_m</span></a>) (<a name="MatrixZmodule.Additive.g"><span class="id" title="variable">g</span></a> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_n</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="swizzle_mx"><span class="id" title="definition">swizzle_mx</span></a> <span class="id" title="var">k</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.Additive.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.Additive.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.Additive.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.Additive.g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="swizzle_mx_is_additive"><span class="id" title="lemma">swizzle_mx_is_additive</span></a> <span class="id" title="var">k</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.additive"><span class="id" title="abbreviation">additive</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#swizzle_mx"><span class="id" title="definition">swizzle_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a>).<br/> - <span class="id" title="keyword">Canonical</span> <span class="id" title="var">swizzle_mx_additive</span> <span class="id" title="var">k</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#swizzle_mx_is_additive"><span class="id" title="lemma">swizzle_mx_is_additive</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a>).<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.Additive"><span class="id" title="section">Additive</span></a>.<br/> - -<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">trmx_additive</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleAdd"><span class="id" title="abbreviation">SwizzleAdd</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#trmx"><span class="id" title="definition">trmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">row_additive</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleAdd"><span class="id" title="abbreviation">SwizzleAdd</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">col_additive</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">j</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleAdd"><span class="id" title="abbreviation">SwizzleAdd</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">row'_additive</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleAdd"><span class="id" title="abbreviation">SwizzleAdd</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">col'_additive</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">j</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleAdd"><span class="id" title="abbreviation">SwizzleAdd</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">row_perm_additive</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">s</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleAdd"><span class="id" title="abbreviation">SwizzleAdd</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">col_perm_additive</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">s</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleAdd"><span class="id" title="abbreviation">SwizzleAdd</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">xrow_additive</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i1</span> <span class="id" title="var">i2</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleAdd"><span class="id" title="abbreviation">SwizzleAdd</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#xrow"><span class="id" title="definition">xrow</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">xcol_additive</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">j1</span> <span class="id" title="var">j2</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleAdd"><span class="id" title="abbreviation">SwizzleAdd</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#xcol"><span class="id" title="definition">xcol</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lsubmx_additive</span> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleAdd"><span class="id" title="abbreviation">SwizzleAdd</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#lsubmx"><span class="id" title="definition">lsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">rsubmx_additive</span> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleAdd"><span class="id" title="abbreviation">SwizzleAdd</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#rsubmx"><span class="id" title="definition">rsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">usubmx_additive</span> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleAdd"><span class="id" title="abbreviation">SwizzleAdd</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#usubmx"><span class="id" title="definition">usubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">dsubmx_additive</span> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleAdd"><span class="id" title="abbreviation">SwizzleAdd</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#dsubmx"><span class="id" title="definition">dsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vec_mx_additive</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleAdd"><span class="id" title="abbreviation">SwizzleAdd</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">mxvec_additive</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> :=<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.can2_additive"><span class="id" title="definition">can2_additive</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#vec_mxK"><span class="id" title="lemma">vec_mxK</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#mxvecK"><span class="id" title="lemma">mxvecK</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="flatmx0"><span class="id" title="lemma">flatmx0</span></a> <span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#all_equal_to"><span class="id" title="definition">all_equal_to</span></a> (0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a>0<a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="thinmx0"><span class="id" title="lemma">thinmx0</span></a> <span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#all_equal_to"><span class="id" title="definition">all_equal_to</span></a> (0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> 0<a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx0"><span class="id" title="lemma">trmx0</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">(</span></a>0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 0.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row0"><span class="id" title="lemma">row0</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i0</span> : <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> (0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 0.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col0"><span class="id" title="lemma">col0</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">j0</span> : <a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> (0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 0.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxvec_eq0"><span class="id" title="lemma">mxvec_eq0</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="vec_mx_eq0"><span class="id" title="lemma">vec_mx_eq0</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ea2ff3d561159081cea6fb2e8113cc54"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">)</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_mx0"><span class="id" title="lemma">row_mx0</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> 0 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_mx0"><span class="id" title="lemma">col_mx0</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> 0 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="block_mx0"><span class="id" title="lemma">block_mx0</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> 0 0 0 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Ltac</span> <span class="id" title="var">split_mxE</span> := <span class="id" title="tactic">apply</span>/<a class="idref" href="mathcomp.algebra.matrix.html#matrixP"><span class="id" title="lemma">matrixP</span></a>⇒ <span class="id" title="var">i</span> <span class="id" title="var">j</span>; <span class="id" title="tactic">do</span> ![<span class="id" title="tactic">rewrite</span> <a class="idref" href="mathcomp.algebra.matrix.html#mxE"><span class="id" title="lemma">mxE</span></a> | <span class="id" title="tactic">case</span>: <a class="idref" href="mathcomp.ssreflect.fintype.html#split"><span class="id" title="definition">split</span></a> ⇒ ?].<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="opp_row_mx"><span class="id" title="lemma">opp_row_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>) (<a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="opp_col_mx"><span class="id" title="lemma">opp_col_mx</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>) (<a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="opp_block_mx"><span class="id" title="lemma">opp_block_mx</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> (<span class="id" title="var">Aul</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) <span class="id" title="var">Aur</span> <span class="id" title="var">Adl</span> (<span class="id" title="var">Adr</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a>) (<a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a>) (<a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a>) (<a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="add_row_mx"><span class="id" title="lemma">add_row_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) <span class="id" title="var">B1</span> <span class="id" title="var">B2</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B1"><span class="id" title="variable">B1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B2"><span class="id" title="variable">B2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B1"><span class="id" title="variable">B1</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B2"><span class="id" title="variable">B2</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="add_col_mx"><span class="id" title="lemma">add_col_mx</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) <span class="id" title="var">B1</span> <span class="id" title="var">B2</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B1"><span class="id" title="variable">B1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B2"><span class="id" title="variable">B2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B1"><span class="id" title="variable">B1</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B2"><span class="id" title="variable">B2</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="add_block_mx"><span class="id" title="lemma">add_block_mx</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> (<span class="id" title="var">Aul</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) <span class="id" title="var">Aur</span> <span class="id" title="var">Adl</span> (<span class="id" title="var">Adr</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>)<br/> - <span class="id" title="var">Bul</span> <span class="id" title="var">Bur</span> <span class="id" title="var">Bdl</span> <span class="id" title="var">Bdr</span> :<br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a> <span class="id" title="tactic">in</span> <span class="id" title="keyword">let</span> <span class="id" title="var">B</span> := <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bul"><span class="id" title="variable">Bul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bur"><span class="id" title="variable">Bur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdl"><span class="id" title="variable">Bdl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdr"><span class="id" title="variable">Bdr</span></a> <span class="id" title="tactic">in</span><br/> - <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bul"><span class="id" title="variable">Bul</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bur"><span class="id" title="variable">Bur</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdl"><span class="id" title="variable">Bdl</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdr"><span class="id" title="variable">Bdr</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_mx_eq0"><span class="id" title="lemma">row_mx_eq0</span></a> (<span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>):<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">&&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_mx_eq0"><span class="id" title="lemma">col_mx_eq0</span></a> (<span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>):<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">&&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="block_mx_eq0"><span class="id" title="lemma">block_mx_eq0</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> (<span class="id" title="var">Aul</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) <span class="id" title="var">Aur</span> <span class="id" title="var">Adl</span> (<span class="id" title="var">Adr</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a><br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#5a7d806905be2a0d04047156433535f1"><span class="id" title="notation">[&&</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#5a7d806905be2a0d04047156433535f1"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#5a7d806905be2a0d04047156433535f1"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#5a7d806905be2a0d04047156433535f1"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#5a7d806905be2a0d04047156433535f1"><span class="id" title="notation">]</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="nz_row"><span class="id" title="definition">nz_row</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :=<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#oapp"><span class="id" title="abbreviation">oapp</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">i</span> ⇒ <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>) 0 <a class="idref" href="mathcomp.ssreflect.fintype.html#17198bb01f8e546f36bb74df399b01c5"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#17198bb01f8e546f36bb74df399b01c5"><span class="id" title="notation">pick</span></a> <span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#17198bb01f8e546f36bb74df399b01c5"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> 0<a class="idref" href="mathcomp.ssreflect.fintype.html#17198bb01f8e546f36bb74df399b01c5"><span class="id" title="notation">]</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="nz_row_eq0"><span class="id" title="lemma">nz_row_eq0</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#nz_row"><span class="id" title="definition">nz_row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixZmodule"><span class="id" title="section">MatrixZmodule</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="FinZmodMatrix"><span class="id" title="section">FinZmodMatrix</span></a>.<br/> -<span class="id" title="keyword">Variables</span> (<a name="FinZmodMatrix.V"><span class="id" title="variable">V</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Exports.finZmodType"><span class="id" title="abbreviation">finZmodType</span></a>) (<a name="FinZmodMatrix.m"><span class="id" title="variable">m</span></a> <a name="FinZmodMatrix.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_finZmodType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.finalg.html#144f70011c058d1c741eaa431b4b8944"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.finalg.html#144f70011c058d1c741eaa431b4b8944"><span class="id" title="notation">finZmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#144f70011c058d1c741eaa431b4b8944"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MV"><span class="id" title="abbreviation">MV</span></a><a class="idref" href="mathcomp.algebra.finalg.html#144f70011c058d1c741eaa431b4b8944"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_baseFinGroupType</span> :=<br/> - <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.finalg.html#d6b25f501b9fb5e9b743073d52f24511"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.finalg.html#d6b25f501b9fb5e9b743073d52f24511"><span class="id" title="notation">baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#d6b25f501b9fb5e9b743073d52f24511"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MV"><span class="id" title="abbreviation">MV</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#d6b25f501b9fb5e9b743073d52f24511"><span class="id" title="notation">for</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#d6b25f501b9fb5e9b743073d52f24511"><span class="id" title="notation">+%</span></a><a class="idref" href="mathcomp.algebra.finalg.html#d6b25f501b9fb5e9b743073d52f24511"><span class="id" title="notation">R</span></a><a class="idref" href="mathcomp.algebra.finalg.html#d6b25f501b9fb5e9b743073d52f24511"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_finGroupType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.finalg.html#a37f16a335f7a3ac65f83e3545c3e50c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.finalg.html#a37f16a335f7a3ac65f83e3545c3e50c"><span class="id" title="notation">finGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#a37f16a335f7a3ac65f83e3545c3e50c"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MV"><span class="id" title="abbreviation">MV</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#a37f16a335f7a3ac65f83e3545c3e50c"><span class="id" title="notation">for</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#a37f16a335f7a3ac65f83e3545c3e50c"><span class="id" title="notation">+%</span></a><a class="idref" href="mathcomp.algebra.finalg.html#a37f16a335f7a3ac65f83e3545c3e50c"><span class="id" title="notation">R</span></a><a class="idref" href="mathcomp.algebra.finalg.html#a37f16a335f7a3ac65f83e3545c3e50c"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#FinZmodMatrix"><span class="id" title="section">FinZmodMatrix</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Parametricity over the additive structure. -</div> -<div class="code"> -<span class="id" title="keyword">Section</span> <a name="MapZmodMatrix"><span class="id" title="section">MapZmodMatrix</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> (<a name="MapZmodMatrix.aR"><span class="id" title="variable">aR</span></a> <a name="MapZmodMatrix.rR"><span class="id" title="variable">rR</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Exports.zmodType"><span class="id" title="abbreviation">zmodType</span></a>) (<a name="MapZmodMatrix.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#b15d1bebaaff5b5ed693647b6d36f348"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b15d1bebaaff5b5ed693647b6d36f348"><span class="id" title="notation">additive</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#aR"><span class="id" title="variable">aR</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#rR"><span class="id" title="variable">rR</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b15d1bebaaff5b5ed693647b6d36f348"><span class="id" title="notation">}</span></a>) (<a name="MapZmodMatrix.m"><span class="id" title="variable">m</span></a> <a name="MapZmodMatrix.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>).<br/> -<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapZmodMatrix.aR"><span class="id" title="variable">aR</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapZmodMatrix.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapZmodMatrix.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_mx0"><span class="id" title="lemma">map_mx0</span></a> : 0<a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapZmodMatrix.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapZmodMatrix.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_mxN"><span class="id" title="lemma">map_mxN</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_mxD"><span class="id" title="lemma">map_mxD</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_mx_sub"><span class="id" title="lemma">map_mx_sub</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#76b5aeafe828ce631ffccd8f78f059ea"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="map_mx_sum"><span class="id" title="definition">map_mx_sum</span></a> := <a class="idref" href="mathcomp.ssreflect.bigop.html#big_morph"><span class="id" title="lemma">big_morph</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.algebra.matrix.html#map_mxD"><span class="id" title="lemma">map_mxD</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#map_mx0"><span class="id" title="lemma">map_mx0</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">map_mx_additive</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#map_mx_sub"><span class="id" title="lemma">map_mx_sub</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MapZmodMatrix"><span class="id" title="section">MapZmodMatrix</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Matrix ring module, graded ring, and ring structures *********** -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixAlgebra"><span class="id" title="section">MatrixAlgebra</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="MatrixAlgebra.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixAlgebra.RingModule"><span class="id" title="section">RingModule</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - The ring module/vector space structure -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Variables</span> <a name="MatrixAlgebra.RingModule.m"><span class="id" title="variable">m</span></a> <a name="MatrixAlgebra.RingModule.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> -<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.RingModule.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.RingModule.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Fact</span> <a name="scalemx_key"><span class="id" title="lemma">scalemx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="scalemx"><span class="id" title="definition">scalemx</span></a> <span class="id" title="var">x</span> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#scalemx_key"><span class="id" title="lemma">scalemx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Basis -</div> -<div class="code"> -<span class="id" title="keyword">Fact</span> <a name="delta_mx_key"><span class="id" title="lemma">delta_mx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="delta_mx"><span class="id" title="definition">delta_mx</span></a> <span class="id" title="var">i0</span> <span class="id" title="var">j0</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.RingModule.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.RingModule.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#delta_mx_key"><span class="id" title="lemma">delta_mx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">&&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">R</span></a>.<br/> - -<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scale1mx"><span class="id" title="lemma">scale1mx</span></a> <span class="id" title="var">A</span> : 1 <a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalemxDl"><span class="id" title="lemma">scalemxDl</span></a> <span class="id" title="var">A</span> <span class="id" title="var">x</span> <span class="id" title="var">y</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalemxDr"><span class="id" title="lemma">scalemxDr</span></a> <span class="id" title="var">x</span> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalemxA"><span class="id" title="lemma">scalemxA</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9debb1fd6a4126e6680903c55c018a93"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="matrix_lmodMixin"><span class="id" title="definition">matrix_lmodMixin</span></a> := <br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Exports.LmodMixin"><span class="id" title="abbreviation">LmodMixin</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#scalemxA"><span class="id" title="lemma">scalemxA</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#scale1mx"><span class="id" title="lemma">scale1mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#scalemxDr"><span class="id" title="lemma">scalemxDr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#scalemxDl"><span class="id" title="lemma">scalemxDl</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_lmodType</span> :=<br/> - <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Exports.LmodType"><span class="id" title="abbreviation">LmodType</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.RingModule.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.RingModule.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#matrix_lmodMixin"><span class="id" title="definition">matrix_lmodMixin</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalemx_const"><span class="id" title="lemma">scalemx_const</span></a> <span class="id" title="var">a</span> <span class="id" title="var">b</span> : <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b"><span class="id" title="variable">b</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="matrix_sum_delta"><span class="id" title="lemma">matrix_sum_delta</span></a> <span class="id" title="var">A</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#784f0af919f467115774be372bf0dbd7"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#784f0af919f467115774be372bf0dbd7"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#784f0af919f467115774be372bf0dbd7"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#784f0af919f467115774be372bf0dbd7"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.RingModule.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#784f0af919f467115774be372bf0dbd7"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#784f0af919f467115774be372bf0dbd7"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#784f0af919f467115774be372bf0dbd7"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#784f0af919f467115774be372bf0dbd7"><span class="id" title="notation">(</span></a><span class="id" title="var">j</span> <a class="idref" href="mathcomp.algebra.ssralg.html#784f0af919f467115774be372bf0dbd7"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.RingModule.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#784f0af919f467115774be372bf0dbd7"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.RingModule"><span class="id" title="section">RingModule</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixAlgebra.StructuralLinear"><span class="id" title="section">StructuralLinear</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="swizzle_mx_is_scalable"><span class="id" title="lemma">swizzle_mx_is_scalable</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">f</span> <span class="id" title="var">g</span> <span class="id" title="var">k</span> :<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.scalable"><span class="id" title="abbreviation">scalable</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#swizzle_mx"><span class="id" title="definition">swizzle_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a>).<br/> - <span class="id" title="keyword">Canonical</span> <span class="id" title="var">swizzle_mx_scalable</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">f</span> <span class="id" title="var">g</span> <span class="id" title="var">k</span> :=<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.AddLinear"><span class="id" title="abbreviation">AddLinear</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#swizzle_mx_is_scalable"><span class="id" title="lemma">swizzle_mx_is_scalable</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a>).<br/> - -<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">trmx_linear</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleLin"><span class="id" title="abbreviation">SwizzleLin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#trmx"><span class="id" title="definition">trmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">row_linear</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleLin"><span class="id" title="abbreviation">SwizzleLin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">col_linear</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">j</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleLin"><span class="id" title="abbreviation">SwizzleLin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#col"><span class="id" title="definition">col</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">row'_linear</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleLin"><span class="id" title="abbreviation">SwizzleLin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">col'_linear</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">j</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleLin"><span class="id" title="abbreviation">SwizzleLin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">row_perm_linear</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">s</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleLin"><span class="id" title="abbreviation">SwizzleLin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">col_perm_linear</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">s</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleLin"><span class="id" title="abbreviation">SwizzleLin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">xrow_linear</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i1</span> <span class="id" title="var">i2</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleLin"><span class="id" title="abbreviation">SwizzleLin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#xrow"><span class="id" title="definition">xrow</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">xcol_linear</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">j1</span> <span class="id" title="var">j2</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleLin"><span class="id" title="abbreviation">SwizzleLin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#xcol"><span class="id" title="definition">xcol</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lsubmx_linear</span> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleLin"><span class="id" title="abbreviation">SwizzleLin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#lsubmx"><span class="id" title="definition">lsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">rsubmx_linear</span> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleLin"><span class="id" title="abbreviation">SwizzleLin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#rsubmx"><span class="id" title="definition">rsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">usubmx_linear</span> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleLin"><span class="id" title="abbreviation">SwizzleLin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#usubmx"><span class="id" title="definition">usubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">dsubmx_linear</span> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleLin"><span class="id" title="abbreviation">SwizzleLin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#dsubmx"><span class="id" title="definition">dsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vec_mx_linear</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.algebra.matrix.html#SwizzleLin"><span class="id" title="abbreviation">SwizzleLin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> -<span class="id" title="keyword">Definition</span> <a name="mxvec_is_linear"><span class="id" title="definition">mxvec_is_linear</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.can2_linear"><span class="id" title="definition">can2_linear</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#vec_mxK"><span class="id" title="lemma">vec_mxK</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#mxvecK"><span class="id" title="lemma">mxvecK</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">mxvec_linear</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.AddLinear"><span class="id" title="abbreviation">AddLinear</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#mxvec_is_linear"><span class="id" title="definition">mxvec_is_linear</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.StructuralLinear"><span class="id" title="section">StructuralLinear</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx_delta"><span class="id" title="lemma">trmx_delta</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_sum_delta"><span class="id" title="lemma">row_sum_delta</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#784f0af919f467115774be372bf0dbd7"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#784f0af919f467115774be372bf0dbd7"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#784f0af919f467115774be372bf0dbd7"><span class="id" title="notation">(</span></a><span class="id" title="var">j</span> <a class="idref" href="mathcomp.algebra.ssralg.html#784f0af919f467115774be372bf0dbd7"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#784f0af919f467115774be372bf0dbd7"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="delta_mx_lshift"><span class="id" title="lemma">delta_mx_lshift</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#lshift"><span class="id" title="definition">lshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="delta_mx_rshift"><span class="id" title="lemma">delta_mx_rshift</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#rshift"><span class="id" title="definition">rshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> 0 (<a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="delta_mx_ushift"><span class="id" title="lemma">delta_mx_ushift</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#lshift"><span class="id" title="definition">lshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="delta_mx_dshift"><span class="id" title="lemma">delta_mx_dshift</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#rshift"><span class="id" title="definition">rshift</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> 0 (<a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="vec_mx_delta"><span class="id" title="lemma">vec_mx_delta</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> 0 (<a class="idref" href="mathcomp.algebra.matrix.html#mxvec_index"><span class="id" title="definition">mxvec_index</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>)) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxvec_delta"><span class="id" title="lemma">mxvec_delta</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i</span> <span class="id" title="var">j</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> 0 (<a class="idref" href="mathcomp.algebra.matrix.html#mxvec_index"><span class="id" title="definition">mxvec_index</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ea2ff3d561159081cea6fb2e8113cc54"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Ltac</span> <span class="id" title="var">split_mxE</span> := <span class="id" title="tactic">apply</span>/<a class="idref" href="mathcomp.algebra.matrix.html#matrixP"><span class="id" title="lemma">matrixP</span></a>⇒ <span class="id" title="var">i</span> <span class="id" title="var">j</span>; <span class="id" title="tactic">do</span> ![<span class="id" title="tactic">rewrite</span> <a class="idref" href="mathcomp.algebra.matrix.html#mxE"><span class="id" title="lemma">mxE</span></a> | <span class="id" title="tactic">case</span>: <a class="idref" href="mathcomp.ssreflect.fintype.html#split"><span class="id" title="definition">split</span></a> ⇒ ?].<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scale_row_mx"><span class="id" title="lemma">scale_row_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">a</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scale_col_mx"><span class="id" title="lemma">scale_col_mx</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> <span class="id" title="var">a</span> (<span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scale_block_mx"><span class="id" title="lemma">scale_block_mx</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">a</span> (<span class="id" title="var">Aul</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Aur</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>)<br/> - (<span class="id" title="var">Adl</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Adr</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a><br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a>).<br/> - -<br/> -</div> - -<div class="doc"> - Diagonal matrices -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Fact</span> <a name="diag_mx_key"><span class="id" title="lemma">diag_mx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="diag_mx"><span class="id" title="definition">diag_mx</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">_n</span></a>) :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#diag_mx_key"><span class="id" title="lemma">diag_mx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">*+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_diag_mx"><span class="id" title="lemma">tr_diag_mx</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="diag_mx_is_linear"><span class="id" title="lemma">diag_mx_is_linear</span></a> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.linear"><span class="id" title="abbreviation">linear</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">diag_mx_additive</span> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#diag_mx_is_linear"><span class="id" title="lemma">diag_mx_is_linear</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">diag_mx_linear</span> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.Linear"><span class="id" title="abbreviation">Linear</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#diag_mx_is_linear"><span class="id" title="lemma">diag_mx_is_linear</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="diag_mx_sum_delta"><span class="id" title="lemma">diag_mx_sum_delta</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_n</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">sum_i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Scalar matrix : a diagonal matrix with a constant on the diagonal -</div> -<div class="code"> -<span class="id" title="keyword">Section</span> <a name="MatrixAlgebra.ScalarMx"><span class="id" title="section">ScalarMx</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="MatrixAlgebra.ScalarMx.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Fact</span> <a name="scalar_mx_key"><span class="id" title="lemma">scalar_mx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="scalar_mx"><span class="id" title="definition">scalar_mx</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a> :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#scalar_mx_key"><span class="id" title="lemma">scalar_mx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">*+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a>.<br/> -<span class="id" title="keyword">Notation</span> <a name="7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">"</span></a>x %:M" := (<a class="idref" href="mathcomp.algebra.matrix.html#scalar_mx"><span class="id" title="definition">scalar_mx</span></a> <span class="id" title="var">x</span>) : <span class="id" title="var">ring_scope</span>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="diag_const_mx"><span class="id" title="lemma">diag_const_mx</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#const_mx"><span class="id" title="definition">const_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_scalar_mx"><span class="id" title="lemma">tr_scalar_mx</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">M</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx1"><span class="id" title="lemma">trmx1</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">(</span></a>1<a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">M</span></a>. <br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalar_mx_is_additive"><span class="id" title="lemma">scalar_mx_is_additive</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.additive"><span class="id" title="abbreviation">additive</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#scalar_mx"><span class="id" title="definition">scalar_mx</span></a>.<br/> - <span class="id" title="keyword">Canonical</span> <span class="id" title="var">scalar_mx_additive</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#scalar_mx_is_additive"><span class="id" title="lemma">scalar_mx_is_additive</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scale_scalar_mx"><span class="id" title="lemma">scale_scalar_mx</span></a> <span class="id" title="var">a1</span> <span class="id" title="var">a2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#a1"><span class="id" title="variable">a1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a2"><span class="id" title="variable">a2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#a1"><span class="id" title="variable">a1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a2"><span class="id" title="variable">a2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalemx1"><span class="id" title="lemma">scalemx1</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">M</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalar_mx_sum_delta"><span class="id" title="lemma">scalar_mx_sum_delta</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">sum_i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mx1_sum_delta"><span class="id" title="lemma">mx1_sum_delta</span></a> : 1<a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">sum_i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row1"><span class="id" title="lemma">row1</span></a> <span class="id" title="var">i</span> : <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="is_scalar_mx"><span class="id" title="definition">is_scalar_mx</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) :=<br/> - <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#insub"><span class="id" title="definition">insub</span></a> 0%<span class="id" title="var">N</span> <span class="id" title="keyword">is</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#Some"><span class="id" title="constructor">Some</span></a> <span class="id" title="var">i</span> <span class="id" title="keyword">then</span> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <span class="id" title="var">i</span> <span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">M</span></a> <span class="id" title="keyword">else</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#true"><span class="id" title="constructor">true</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="is_scalar_mxP"><span class="id" title="lemma">is_scalar_mxP</span></a> <span class="id" title="var">A</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span class="id" title="notation">∃</span></a> <span class="id" title="var">a</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">M</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#is_scalar_mx"><span class="id" title="definition">is_scalar_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalar_mx_is_scalar"><span class="id" title="lemma">scalar_mx_is_scalar</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#is_scalar_mx"><span class="id" title="definition">is_scalar_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#7e03ba8094ca395d410e19b2de7bc7f0"><span class="id" title="notation">M</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mx0_is_scalar"><span class="id" title="lemma">mx0_is_scalar</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#is_scalar_mx"><span class="id" title="definition">is_scalar_mx</span></a> 0.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.ScalarMx"><span class="id" title="section">ScalarMx</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Notation</span> <a name="71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">"</span></a>x %:M" := (<a class="idref" href="mathcomp.algebra.matrix.html#scalar_mx"><span class="id" title="definition">scalar_mx</span></a> <span class="id" title="var">_</span> <span class="id" title="var">x</span>) : <span class="id" title="var">ring_scope</span>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mx11_scalar"><span class="id" title="lemma">mx11_scalar</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_1</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> 0 0<a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalar_mx_block"><span class="id" title="lemma">scalar_mx_block</span></a> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> 0 0 <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Matrix multiplication using bigops. -</div> -<div class="code"> -<span class="id" title="keyword">Fact</span> <a name="mulmx_key"><span class="id" title="lemma">mulmx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="mulmx"><span class="id" title="definition">mulmx</span></a> {<span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span>} (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#mulmx_key"><span class="id" title="lemma">mulmx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">k</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">sum_j</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">)</span></a>.<br/> - -<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmxA"><span class="id" title="lemma">mulmxA</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">C</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#C"><span class="id" title="variable">C</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#C"><span class="id" title="variable">C</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul0mx"><span class="id" title="lemma">mul0mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : 0 <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmx0"><span class="id" title="lemma">mulmx0</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmxN"><span class="id" title="lemma">mulmxN</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulNmx"><span class="id" title="lemma">mulNmx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#8d0566c961139ec21811f52ef0c317db"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmxDl"><span class="id" title="lemma">mulmxDl</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">A1</span> <span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmxDr"><span class="id" title="lemma">mulmxDr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B1</span> <span class="id" title="var">B2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#B1"><span class="id" title="variable">B1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B2"><span class="id" title="variable">B2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B1"><span class="id" title="variable">B1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B2"><span class="id" title="variable">B2</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmxBl"><span class="id" title="lemma">mulmxBl</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">A1</span> <span class="id" title="var">A2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A2"><span class="id" title="variable">A2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmxBr"><span class="id" title="lemma">mulmxBr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B1</span> <span class="id" title="var">B2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#B1"><span class="id" title="variable">B1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B2"><span class="id" title="variable">B2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B1"><span class="id" title="variable">B1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B2"><span class="id" title="variable">B2</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmx_suml"><span class="id" title="lemma">mulmx_suml</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) <span class="id" title="var">I</span> <span class="id" title="var">r</span> <span class="id" title="var">P</span> (<span class="id" title="var">B_</span> : <a class="idref" href="mathcomp.algebra.matrix.html#I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B_"><span class="id" title="variable">B_</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B_"><span class="id" title="variable">B_</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmx_sumr"><span class="id" title="lemma">mulmx_sumr</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) <span class="id" title="var">I</span> <span class="id" title="var">r</span> <span class="id" title="var">P</span> (<span class="id" title="var">B_</span> : <a class="idref" href="mathcomp.algebra.matrix.html#I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B_"><span class="id" title="variable">B_</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0e493beb85c9c1b3ab2241ceeaa98b08"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B_"><span class="id" title="variable">B_</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalemxAl"><span class="id" title="lemma">scalemxAl</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> <span class="id" title="var">a</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>.<br/> -</div> - -<div class="doc"> - Right scaling associativity requires a commutative ring -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="rowE"><span class="id" title="lemma">rowE</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_mul"><span class="id" title="lemma">row_mul</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">i</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_m</span></a>) <span class="id" title="var">A</span> (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmx_sum_row"><span class="id" title="lemma">mulmx_sum_row</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_m</span></a>) (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">sum_i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_delta_mx_cond"><span class="id" title="lemma">mul_delta_mx_cond</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">j1</span> <span class="id" title="var">j2</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_n</span></a>) (<span class="id" title="var">i1</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_m</span></a>) (<span class="id" title="var">k2</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_p</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k2"><span class="id" title="variable">k2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k2"><span class="id" title="variable">k2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">*+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_delta_mx"><span class="id" title="lemma">mul_delta_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">j</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_n</span></a>) (<span class="id" title="var">i</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_m</span></a>) (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_p</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_delta_mx_0"><span class="id" title="lemma">mul_delta_mx_0</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">j1</span> <span class="id" title="var">j2</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_n</span></a>) (<span class="id" title="var">i1</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_m</span></a>) (<span class="id" title="var">k2</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_p</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k2"><span class="id" title="variable">k2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 0.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_diag_mx"><span class="id" title="lemma">mul_diag_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">d</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">matrix_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_mx_diag"><span class="id" title="lemma">mul_mx_diag</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) <span class="id" title="var">d</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">matrix_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9b7ac910045fe3e3a8253dae2e2bc494"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmx_diag"><span class="id" title="lemma">mulmx_diag</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">d</span> <span class="id" title="var">e</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_n</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#e96cc16a4a892792949f73b0ccf32cf1"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e96cc16a4a892792949f73b0ccf32cf1"><span class="id" title="notation">row_j</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#e96cc16a4a892792949f73b0ccf32cf1"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#e"><span class="id" title="variable">e</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e96cc16a4a892792949f73b0ccf32cf1"><span class="id" title="notation">)</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_scalar_mx"><span class="id" title="lemma">mul_scalar_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">a</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalar_mxM"><span class="id" title="lemma">scalar_mxM</span></a> <span class="id" title="var">n</span> <span class="id" title="var">a</span> <span class="id" title="var">b</span> : <a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul1mx"><span class="id" title="lemma">mul1mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : 1<a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmx1"><span class="id" title="lemma">mulmx1</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_col_perm"><span class="id" title="lemma">mul_col_perm</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> <span class="id" title="var">s</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#766fd55608aa0e125ed6f55c83bcc09a"><span class="id" title="notation">^-1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_row_perm"><span class="id" title="lemma">mul_row_perm</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> <span class="id" title="var">s</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#766fd55608aa0e125ed6f55c83bcc09a"><span class="id" title="notation">^-1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_xcol"><span class="id" title="lemma">mul_xcol</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> <span class="id" title="var">j1</span> <span class="id" title="var">j2</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#xcol"><span class="id" title="definition">xcol</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#xrow"><span class="id" title="definition">xrow</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Permutation matrix -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="perm_mx"><span class="id" title="definition">perm_mx</span></a> <span class="id" title="var">n</span> <span class="id" title="var">s</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="tperm_mx"><span class="id" title="definition">tperm_mx</span></a> <span class="id" title="var">n</span> <span class="id" title="var">i1</span> <span class="id" title="var">i2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> (<a class="idref" href="mathcomp.fingroup.perm.html#tperm"><span class="id" title="definition">tperm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="col_permE"><span class="id" title="lemma">col_permE</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">s</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#col_perm"><span class="id" title="definition">col_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#766fd55608aa0e125ed6f55c83bcc09a"><span class="id" title="notation">^-1</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="row_permE"><span class="id" title="lemma">row_permE</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">s</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#row_perm"><span class="id" title="definition">row_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="xcolE"><span class="id" title="lemma">xcolE</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">j1</span> <span class="id" title="var">j2</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#xcol"><span class="id" title="definition">xcol</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#tperm_mx"><span class="id" title="definition">tperm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j1"><span class="id" title="variable">j1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j2"><span class="id" title="variable">j2</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="xrowE"><span class="id" title="lemma">xrowE</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">i1</span> <span class="id" title="var">i2</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#xrow"><span class="id" title="definition">xrow</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#tperm_mx"><span class="id" title="definition">tperm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_perm_mx"><span class="id" title="lemma">tr_perm_mx</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">s</span> : <a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">S_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#766fd55608aa0e125ed6f55c83bcc09a"><span class="id" title="notation">^-1</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_tperm_mx"><span class="id" title="lemma">tr_tperm_mx</span></a> <span class="id" title="var">n</span> <span class="id" title="var">i1</span> <span class="id" title="var">i2</span> : <a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#tperm_mx"><span class="id" title="definition">tperm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#tperm_mx"><span class="id" title="definition">tperm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="perm_mx1"><span class="id" title="lemma">perm_mx1</span></a> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="perm_mxM"><span class="id" title="lemma">perm_mxM</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">s</span> <span class="id" title="var">t</span> : <a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">S_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#8b8794efbfbae1b793d9cb62ce802285"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#t"><span class="id" title="variable">t</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#t"><span class="id" title="variable">t</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) := <a class="idref" href="mathcomp.ssreflect.fintype.html#ea6c97f834d69613538d4da1fb704b25"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#ea6c97f834d69613538d4da1fb704b25"><span class="id" title="notation">∃</span></a> <span class="id" title="var">s</span><a class="idref" href="mathcomp.ssreflect.fintype.html#f3be25edeb0349b0a76405eded9d0b98"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#ea6c97f834d69613538d4da1fb704b25"><span class="id" title="notation">]</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="is_perm_mxP"><span class="id" title="lemma">is_perm_mxP</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span class="id" title="notation">∃</span></a> <span class="id" title="var">s</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#a883bdd010993579f99d60b3775bcf54"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="perm_mx_is_perm"><span class="id" title="lemma">perm_mx_is_perm</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">s</span> : <a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">S_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="is_perm_mx1"><span class="id" title="lemma">is_perm_mx1</span></a> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.matrix.html#is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> (1<a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="is_perm_mxMl"><span class="id" title="lemma">is_perm_mxMl</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="is_perm_mx_tr"><span class="id" title="lemma">is_perm_mx_tr</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="is_perm_mxMr"><span class="id" title="lemma">is_perm_mxMr</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Partial identity matrix (used in rank decomposition). -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Fact</span> <a name="pid_mx_key"><span class="id" title="lemma">pid_mx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="pid_mx"><span class="id" title="definition">pid_mx</span></a> {<span class="id" title="var">m</span> <span class="id" title="var">n</span>} <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#pid_mx_key"><span class="id" title="lemma">pid_mx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#28a3089bb29d95d7bdc98c2c73b31552"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#28a3089bb29d95d7bdc98c2c73b31552"><span class="id" title="notation">:></span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">&&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#00fe0eaf5e6949f0a31725357afa4bba"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">R</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="pid_mx_0"><span class="id" title="lemma">pid_mx_0</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="pid_mx_1"><span class="id" title="lemma">pid_mx_1</span></a> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_r</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="pid_mx_row"><span class="id" title="lemma">pid_mx_row</span></a> <span class="id" title="var">n</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="pid_mx_col"><span class="id" title="lemma">pid_mx_col</span></a> <span class="id" title="var">m</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="pid_mx_block"><span class="id" title="lemma">pid_mx_block</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> 0 0 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="tr_pid_mx"><span class="id" title="lemma">tr_pid_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="pid_mx_minv"><span class="id" title="lemma">pid_mx_minv</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> (<a class="idref" href="mathcomp.ssreflect.ssrnat.html#minn"><span class="id" title="definition">minn</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="pid_mx_minh"><span class="id" title="lemma">pid_mx_minh</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> (<a class="idref" href="mathcomp.ssreflect.ssrnat.html#minn"><span class="id" title="definition">minn</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_pid_mx"><span class="id" title="lemma">mul_pid_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> <span class="id" title="var">q</span> <span class="id" title="var">r</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> (<a class="idref" href="mathcomp.ssreflect.ssrnat.html#minn"><span class="id" title="definition">minn</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> (<a class="idref" href="mathcomp.ssreflect.ssrnat.html#minn"><span class="id" title="definition">minn</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#q"><span class="id" title="variable">q</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a>)).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="pid_mx_id"><span class="id" title="lemma">pid_mx_id</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> <span class="id" title="var">r</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="copid_mx"><span class="id" title="definition">copid_mx</span></a> {<span class="id" title="var">n</span>} <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a> := 1<a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_copid_mx_pid"><span class="id" title="lemma">mul_copid_mx_pid</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">r</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#copid_mx"><span class="id" title="definition">copid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_pid_mx_copid"><span class="id" title="lemma">mul_pid_mx_copid</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">r</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#copid_mx"><span class="id" title="definition">copid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="copid_mx_id"><span class="id" title="lemma">copid_mx_id</span></a> <span class="id" title="var">n</span> <span class="id" title="var">r</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#copid_mx"><span class="id" title="definition">copid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#copid_mx"><span class="id" title="definition">copid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#copid_mx"><span class="id" title="definition">copid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Block products; we cover all 1 x 2, 2 x 1, and 2 x 2 block products. -</div> -<div class="code"> -<span class="id" title="keyword">Lemma</span> <a name="mul_mx_row"><span class="id" title="lemma">mul_mx_row</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p1</span> <span class="id" title="var">p2</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Bl</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p1"><span class="id" title="variable">p1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Br</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p2"><span class="id" title="variable">p2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bl"><span class="id" title="variable">Bl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Br"><span class="id" title="variable">Br</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bl"><span class="id" title="variable">Bl</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Br"><span class="id" title="variable">Br</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_col_mx"><span class="id" title="lemma">mul_col_mx</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">Au</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Ad</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Au"><span class="id" title="variable">Au</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Ad"><span class="id" title="variable">Ad</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#Au"><span class="id" title="variable">Au</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#Ad"><span class="id" title="variable">Ad</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_row_col"><span class="id" title="lemma">mul_row_col</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">p</span> (<span class="id" title="var">Al</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Ar</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>)<br/> - (<span class="id" title="var">Bu</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Bd</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Al"><span class="id" title="variable">Al</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Ar"><span class="id" title="variable">Ar</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bu"><span class="id" title="variable">Bu</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bd"><span class="id" title="variable">Bd</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Al"><span class="id" title="variable">Al</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bu"><span class="id" title="variable">Bu</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Ar"><span class="id" title="variable">Ar</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bd"><span class="id" title="variable">Bd</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_col_row"><span class="id" title="lemma">mul_col_row</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n</span> <span class="id" title="var">p1</span> <span class="id" title="var">p2</span> (<span class="id" title="var">Au</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Ad</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>)<br/> - (<span class="id" title="var">Bl</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p1"><span class="id" title="variable">p1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Br</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p2"><span class="id" title="variable">p2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Au"><span class="id" title="variable">Au</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Ad"><span class="id" title="variable">Ad</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bl"><span class="id" title="variable">Bl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Br"><span class="id" title="variable">Br</span></a><br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#Au"><span class="id" title="variable">Au</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bl"><span class="id" title="variable">Bl</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#Au"><span class="id" title="variable">Au</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Br"><span class="id" title="variable">Br</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#Ad"><span class="id" title="variable">Ad</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bl"><span class="id" title="variable">Bl</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#Ad"><span class="id" title="variable">Ad</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Br"><span class="id" title="variable">Br</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_row_block"><span class="id" title="lemma">mul_row_block</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">p1</span> <span class="id" title="var">p2</span> (<span class="id" title="var">Al</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Ar</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>)<br/> - (<span class="id" title="var">Bul</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p1"><span class="id" title="variable">p1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Bur</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p2"><span class="id" title="variable">p2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>)<br/> - (<span class="id" title="var">Bdl</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p1"><span class="id" title="variable">p1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Bdr</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p2"><span class="id" title="variable">p2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Al"><span class="id" title="variable">Al</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Ar"><span class="id" title="variable">Ar</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bul"><span class="id" title="variable">Bul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bur"><span class="id" title="variable">Bur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdl"><span class="id" title="variable">Bdl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdr"><span class="id" title="variable">Bdr</span></a><br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row_mx"><span class="id" title="definition">row_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#Al"><span class="id" title="variable">Al</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bul"><span class="id" title="variable">Bul</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Ar"><span class="id" title="variable">Ar</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdl"><span class="id" title="variable">Bdl</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#Al"><span class="id" title="variable">Al</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bur"><span class="id" title="variable">Bur</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Ar"><span class="id" title="variable">Ar</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdr"><span class="id" title="variable">Bdr</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_block_col"><span class="id" title="lemma">mul_block_col</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">p</span> (<span class="id" title="var">Aul</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Aur</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>)<br/> - (<span class="id" title="var">Adl</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Adr</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>)<br/> - (<span class="id" title="var">Bu</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Bd</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bu"><span class="id" title="variable">Bu</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bd"><span class="id" title="variable">Bd</span></a><br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#col_mx"><span class="id" title="definition">col_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bu"><span class="id" title="variable">Bu</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bd"><span class="id" title="variable">Bd</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bu"><span class="id" title="variable">Bu</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bd"><span class="id" title="variable">Bd</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmx_block"><span class="id" title="lemma">mulmx_block</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">p1</span> <span class="id" title="var">p2</span> (<span class="id" title="var">Aul</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Aur</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>)<br/> - (<span class="id" title="var">Adl</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Adr</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>)<br/> - (<span class="id" title="var">Bul</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p1"><span class="id" title="variable">p1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Bur</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p2"><span class="id" title="variable">p2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>)<br/> - (<span class="id" title="var">Bdl</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p1"><span class="id" title="variable">p1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">Bdr</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p2"><span class="id" title="variable">p2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bul"><span class="id" title="variable">Bul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bur"><span class="id" title="variable">Bur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdl"><span class="id" title="variable">Bdl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdr"><span class="id" title="variable">Bdr</span></a><br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bul"><span class="id" title="variable">Bul</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdl"><span class="id" title="variable">Bdl</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bur"><span class="id" title="variable">Bur</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdr"><span class="id" title="variable">Bdr</span></a>)<br/> - (<a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bul"><span class="id" title="variable">Bul</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdl"><span class="id" title="variable">Bdl</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bur"><span class="id" title="variable">Bur</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Bdr"><span class="id" title="variable">Bdr</span></a>).<br/> - -<br/> -</div> - -<div class="doc"> - Correspondance between matrices and linear function on row vectors. -</div> -<div class="code"> -<span class="id" title="keyword">Section</span> <a name="MatrixAlgebra.LinRowVector"><span class="id" title="section">LinRowVector</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> <a name="MatrixAlgebra.LinRowVector.m"><span class="id" title="variable">m</span></a> <a name="MatrixAlgebra.LinRowVector.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Fact</span> <a name="lin1_mx_key"><span class="id" title="lemma">lin1_mx_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="lin1_mx"><span class="id" title="definition">lin1_mx</span></a> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">_m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">_n</span></a>) :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#lin1_mx_key"><span class="id" title="lemma">lin1_mx_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>) 0 <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="MatrixAlgebra.LinRowVector.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#b9a9030f88e15d1a3aacd4e8ec9a2391"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b9a9030f88e15d1a3aacd4e8ec9a2391"><span class="id" title="notation">linear</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">_m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">_n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b9a9030f88e15d1a3aacd4e8ec9a2391"><span class="id" title="notation">}</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_rV_lin1"><span class="id" title="lemma">mul_rV_lin1</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin1_mx"><span class="id" title="definition">lin1_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinRowVector.f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinRowVector.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinRowVector"><span class="id" title="section">LinRowVector</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Correspondance between matrices and linear function on matrices. -</div> -<div class="code"> -<span class="id" title="keyword">Section</span> <a name="MatrixAlgebra.LinMatrix"><span class="id" title="section">LinMatrix</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> <a name="MatrixAlgebra.LinMatrix.m1"><span class="id" title="variable">m1</span></a> <a name="MatrixAlgebra.LinMatrix.n1"><span class="id" title="variable">n1</span></a> <a name="MatrixAlgebra.LinMatrix.m2"><span class="id" title="variable">m2</span></a> <a name="MatrixAlgebra.LinMatrix.n2"><span class="id" title="variable">n2</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="lin_mx"><span class="id" title="definition">lin_mx</span></a> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) :=<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#lin1_mx"><span class="id" title="definition">lin1_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#8b4742e3f67816503ce4ab2f3b81c27e"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#8b4742e3f67816503ce4ab2f3b81c27e"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#8b4742e3f67816503ce4ab2f3b81c27e"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#8b4742e3f67816503ce4ab2f3b81c27e"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="MatrixAlgebra.LinMatrix.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#b9a9030f88e15d1a3aacd4e8ec9a2391"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b9a9030f88e15d1a3aacd4e8ec9a2391"><span class="id" title="notation">linear</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b9a9030f88e15d1a3aacd4e8ec9a2391"><span class="id" title="notation">}</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_rV_lin"><span class="id" title="lemma">mul_rV_lin</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin_mx"><span class="id" title="definition">lin_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a>)).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_vec_lin"><span class="id" title="lemma">mul_vec_lin</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin_mx"><span class="id" title="definition">lin_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mx_rV_lin"><span class="id" title="lemma">mx_rV_lin</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin_mx"><span class="id" title="definition">lin_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.f"><span class="id" title="variable">f</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mx_vec_lin"><span class="id" title="lemma">mx_vec_lin</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin_mx"><span class="id" title="definition">lin_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.f"><span class="id" title="variable">f</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LinMatrix"><span class="id" title="section">LinMatrix</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">mulmx_additive</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#mulmxBr"><span class="id" title="lemma">mulmxBr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixAlgebra.Mulmxr"><span class="id" title="section">Mulmxr</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> <a name="MatrixAlgebra.Mulmxr.m"><span class="id" title="variable">m</span></a> <a name="MatrixAlgebra.Mulmxr.n"><span class="id" title="variable">n</span></a> <a name="MatrixAlgebra.Mulmxr.p"><span class="id" title="variable">p</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> -<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.Mulmxr.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.Mulmxr.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>.<br/> -<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.Mulmxr.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.Mulmxr.p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="mulmxr_head"><span class="id" title="definition">mulmxr_head</span></a> <span class="id" title="var">t</span> <span class="id" title="var">B</span> <span class="id" title="var">A</span> := <span class="id" title="keyword">let</span>: <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#tt"><span class="id" title="constructor">tt</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#t"><span class="id" title="variable">t</span></a> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#94b466ee24f49d7e561171fc23a36c8d"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="lin_mulmxr"><span class="id" title="definition">lin_mulmxr</span></a> <span class="id" title="var">B</span> := <a class="idref" href="mathcomp.algebra.matrix.html#lin_mx"><span class="id" title="definition">lin_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#mulmxr"><span class="id" title="abbreviation">mulmxr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmxr_is_linear"><span class="id" title="lemma">mulmxr_is_linear</span></a> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.linear"><span class="id" title="abbreviation">linear</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#mulmxr"><span class="id" title="abbreviation">mulmxr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>).<br/> - <span class="id" title="keyword">Canonical</span> <span class="id" title="var">mulmxr_additive</span> <span class="id" title="var">B</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#mulmxr_is_linear"><span class="id" title="lemma">mulmxr_is_linear</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">mulmxr_linear</span> <span class="id" title="var">B</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.Linear"><span class="id" title="abbreviation">Linear</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#mulmxr_is_linear"><span class="id" title="lemma">mulmxr_is_linear</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="lin_mulmxr_is_linear"><span class="id" title="lemma">lin_mulmxr_is_linear</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.linear"><span class="id" title="abbreviation">linear</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin_mulmxr"><span class="id" title="definition">lin_mulmxr</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lin_mulmxr_additive</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin_mulmxr_is_linear"><span class="id" title="lemma">lin_mulmxr_is_linear</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lin_mulmxr_linear</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.Linear"><span class="id" title="abbreviation">Linear</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin_mulmxr_is_linear"><span class="id" title="lemma">lin_mulmxr_is_linear</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.Mulmxr"><span class="id" title="section">Mulmxr</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - The trace. -</div> -<div class="code"> -<span class="id" title="keyword">Section</span> <a name="MatrixAlgebra.Trace"><span class="id" title="section">Trace</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="MatrixAlgebra.Trace.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="mxtrace"><span class="id" title="definition">mxtrace</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) := <a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">sum_i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxtrace_tr"><span class="id" title="lemma">mxtrace_tr</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxtrace_is_scalar"><span class="id" title="lemma">mxtrace_is_scalar</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.scalar"><span class="id" title="abbreviation">scalar</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mxtrace"><span class="id" title="definition">mxtrace</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">mxtrace_additive</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mxtrace_is_scalar"><span class="id" title="lemma">mxtrace_is_scalar</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">mxtrace_linear</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.Linear"><span class="id" title="abbreviation">Linear</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mxtrace_is_scalar"><span class="id" title="lemma">mxtrace_is_scalar</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxtrace0"><span class="id" title="lemma">mxtrace0</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">tr</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 0. <br/> -<span class="id" title="keyword">Lemma</span> <a name="mxtraceD"><span class="id" title="lemma">mxtraceD</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>. <br/> -<span class="id" title="keyword">Lemma</span> <a name="mxtraceZ"><span class="id" title="lemma">mxtraceZ</span></a> <span class="id" title="var">a</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>. <br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxtrace_diag"><span class="id" title="lemma">mxtrace_diag</span></a> <span class="id" title="var">D</span> : <a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#D"><span class="id" title="variable">D</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">sum_j</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#D"><span class="id" title="variable">D</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxtrace_scalar"><span class="id" title="lemma">mxtrace_scalar</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e9001f602764f7896bb1eb34bf606a23"><span class="id" title="notation">*+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.Trace.n"><span class="id" title="variable">n</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxtrace1"><span class="id" title="lemma">mxtrace1</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4a3574d5d59f5b06ea258779cba9ae4a"><span class="id" title="notation">tr</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.Trace.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">R</span></a>. <br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.Trace"><span class="id" title="section">Trace</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trace_mx11"><span class="id" title="lemma">trace_mx11</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_1</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#18306fb4f25d05e26085dcdbda0e43a4"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#18306fb4f25d05e26085dcdbda0e43a4"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> 0 0.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxtrace_block"><span class="id" title="lemma">mxtrace_block</span></a> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> (<span class="id" title="var">Aul</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n1</span></a>) <span class="id" title="var">Aur</span> <span class="id" title="var">Adl</span> (<span class="id" title="var">Adr</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n2</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#18306fb4f25d05e26085dcdbda0e43a4"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#18306fb4f25d05e26085dcdbda0e43a4"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#18306fb4f25d05e26085dcdbda0e43a4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a><a class="idref" href="mathcomp.algebra.matrix.html#18306fb4f25d05e26085dcdbda0e43a4"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#18306fb4f25d05e26085dcdbda0e43a4"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#18306fb4f25d05e26085dcdbda0e43a4"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#18306fb4f25d05e26085dcdbda0e43a4"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#18306fb4f25d05e26085dcdbda0e43a4"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - The matrix ring structure requires a strutural condition (dimension of the - form n.+1) to statisfy the nontriviality condition we have imposed. -</div> -<div class="code"> -<span class="id" title="keyword">Section</span> <a name="MatrixAlgebra.MatrixRing"><span class="id" title="section">MatrixRing</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="MatrixAlgebra.MatrixRing.n'"><span class="id" title="variable">n'</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="matrix_nonzero1"><span class="id" title="lemma">matrix_nonzero1</span></a> : 1<a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#228e85e3c31a939cba019f255574c875"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="mathcomp.ssreflect.eqtype.html#228e85e3c31a939cba019f255574c875"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="matrix_ringMixin"><span class="id" title="definition">matrix_ringMixin</span></a> :=<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.RingMixin"><span class="id" title="abbreviation">RingMixin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#mulmxA"><span class="id" title="lemma">mulmxA</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a>) (@<a class="idref" href="mathcomp.algebra.matrix.html#mul1mx"><span class="id" title="lemma">mul1mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a>) (@<a class="idref" href="mathcomp.algebra.matrix.html#mulmx1"><span class="id" title="lemma">mulmx1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a>)<br/> - (@<a class="idref" href="mathcomp.algebra.matrix.html#mulmxDl"><span class="id" title="lemma">mulmxDl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a>) (@<a class="idref" href="mathcomp.algebra.matrix.html#mulmxDr"><span class="id" title="lemma">mulmxDr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#matrix_nonzero1"><span class="id" title="lemma">matrix_nonzero1</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_ringType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.RingType"><span class="id" title="abbreviation">RingType</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#matrix_ringMixin"><span class="id" title="definition">matrix_ringMixin</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_lAlgType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lalgebra.Exports.LalgType"><span class="id" title="abbreviation">LalgType</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#scalemxAl"><span class="id" title="lemma">scalemxAl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmxE"><span class="id" title="lemma">mulmxE</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#mulmx"><span class="id" title="definition">mulmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3609d85e23333c9e68741ad96b416eec"><span class="id" title="notation">*%</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#3609d85e23333c9e68741ad96b416eec"><span class="id" title="notation">R</span></a>. <br/> -<span class="id" title="keyword">Lemma</span> <a name="idmxE"><span class="id" title="lemma">idmxE</span></a> : 1<a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#71bd40847c76c3652311fa22e057bab2"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>. <br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalar_mx_is_multiplicative"><span class="id" title="lemma">scalar_mx_is_multiplicative</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.RMorphism.Exports.multiplicative"><span class="id" title="abbreviation">multiplicative</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#scalar_mx"><span class="id" title="definition">scalar_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a>).<br/> - <span class="id" title="keyword">Canonical</span> <span class="id" title="var">scalar_mx_rmorphism</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.RMorphism.Exports.AddRMorphism"><span class="id" title="abbreviation">AddRMorphism</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#scalar_mx_is_multiplicative"><span class="id" title="lemma">scalar_mx_is_multiplicative</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.MatrixRing"><span class="id" title="section">MatrixRing</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixAlgebra.LiftPerm"><span class="id" title="section">LiftPerm</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Block expresssion of a lifted permutation matrix, for the Cormen LUP. -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="MatrixAlgebra.LiftPerm.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - These could be in zmodp, but that would introduce a dependency on perm. -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="lift0_perm"><span class="id" title="definition">lift0_perm</span></a> <span class="id" title="var">s</span> : <a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">S_n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> := <a class="idref" href="mathcomp.fingroup.perm.html#lift_perm"><span class="id" title="definition">lift_perm</span></a> 0 0 <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="lift0_perm0"><span class="id" title="lemma">lift0_perm0</span></a> <span class="id" title="var">s</span> : <a class="idref" href="mathcomp.algebra.matrix.html#lift0_perm"><span class="id" title="definition">lift0_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 0.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="lift0_perm_lift"><span class="id" title="lemma">lift0_perm_lift</span></a> <span class="id" title="var">s</span> <span class="id" title="var">k'</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#lift0_perm"><span class="id" title="definition">lift0_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#lift"><span class="id" title="definition">lift</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#k'"><span class="id" title="variable">k'</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#lift"><span class="id" title="definition">lift</span></a> (0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k'"><span class="id" title="variable">k'</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="lift0_permK"><span class="id" title="lemma">lift0_permK</span></a> <span class="id" title="var">s</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#lift0_perm"><span class="id" title="definition">lift0_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#lift0_perm"><span class="id" title="definition">lift0_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#766fd55608aa0e125ed6f55c83bcc09a"><span class="id" title="notation">^-1</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="lift0_perm_eq0"><span class="id" title="lemma">lift0_perm_eq0</span></a> <span class="id" title="var">s</span> <span class="id" title="var">i</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#lift0_perm"><span class="id" title="definition">lift0_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Block expresssion of a lifted permutation matrix -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="lift0_mx"><span class="id" title="definition">lift0_mx</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">(</span></a>1 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LiftPerm.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">)</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> 1 0 0 <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="lift0_mx_perm"><span class="id" title="lemma">lift0_mx_perm</span></a> <span class="id" title="var">s</span> : <a class="idref" href="mathcomp.algebra.matrix.html#lift0_mx"><span class="id" title="definition">lift0_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#lift0_perm"><span class="id" title="definition">lift0_perm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="lift0_mx_is_perm"><span class="id" title="lemma">lift0_mx_is_perm</span></a> <span class="id" title="var">s</span> : <a class="idref" href="mathcomp.algebra.matrix.html#is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#lift0_mx"><span class="id" title="definition">lift0_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a>)).<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.LiftPerm"><span class="id" title="section">LiftPerm</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Determinants and adjugates are defined here, but most of their properties - only hold for matrices over a commutative ring, so their theory is - deferred to that section. -<div class="paragraph"> </div> - - The determinant, in one line with the Leibniz Formula -</div> -<div class="code"> -<span class="id" title="keyword">Definition</span> <a name="determinant"><span class="id" title="definition">determinant</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> :=<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#210141cbb4af7051facf94762acee6df"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#210141cbb4af7051facf94762acee6df"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#210141cbb4af7051facf94762acee6df"><span class="id" title="notation">(</span></a><span class="id" title="var">s</span> <a class="idref" href="mathcomp.algebra.ssralg.html#210141cbb4af7051facf94762acee6df"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">S_n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#210141cbb4af7051facf94762acee6df"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">(</span></a>-1<a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#bba809eef925bb2b4e421c8b99ce8372"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#bba809eef925bb2b4e421c8b99ce8372"><span class="id" title="notation">prod_i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>).<br/> - -<br/> -</div> - -<div class="doc"> - The cofactor of a matrix on the indexes i and j -</div> -<div class="code"> -<span class="id" title="keyword">Definition</span> <a name="cofactor"><span class="id" title="definition">cofactor</span></a> <span class="id" title="var">n</span> <span class="id" title="var">A</span> (<span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra.R"><span class="id" title="variable">R</span></a> :=<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">(</span></a>-1<a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#determinant"><span class="id" title="definition">determinant</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#col'"><span class="id" title="definition">col'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>)).<br/> - -<br/> -</div> - -<div class="doc"> - The adjugate matrix : defined as the transpose of the matrix of cofactors -</div> -<div class="code"> -<span class="id" title="keyword">Fact</span> <a name="adjugate_key"><span class="id" title="lemma">adjugate_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#unit"><span class="id" title="inductive">unit</span></a>. <br/> -<span class="id" title="keyword">Definition</span> <a name="adjugate"><span class="id" title="definition">adjugate</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) := <a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">matrix</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#adjugate_key"><span class="id" title="lemma">adjugate_key</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span><a class="idref" href="mathcomp.algebra.matrix.html#4f413f10e0e00a58d0b3678e7bbe6a9d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#cofactor"><span class="id" title="definition">cofactor</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixAlgebra"><span class="id" title="section">MatrixAlgebra</span></a>.<br/> - -<br/> - -<br/> - -<br/> -<span class="id" title="keyword">Notation</span> <a name="850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">"</span></a>a %:M" := (<a class="idref" href="mathcomp.algebra.matrix.html#scalar_mx"><span class="id" title="definition">scalar_mx</span></a> <span class="id" title="var">a</span>) : <span class="id" title="var">ring_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">"</span></a>A *m B" := (<a class="idref" href="mathcomp.algebra.matrix.html#mulmx"><span class="id" title="definition">mulmx</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span>) : <span class="id" title="var">ring_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="mulmxr"><span class="id" title="abbreviation">mulmxr</span></a> := (<a class="idref" href="mathcomp.algebra.matrix.html#mulmxr_head"><span class="id" title="definition">mulmxr_head</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#tt"><span class="id" title="constructor">tt</span></a>).<br/> -<span class="id" title="keyword">Notation</span> <a name="055f111b06ebab166375c628a8e0315f"><span class="id" title="notation">"</span></a>\tr A" := (<a class="idref" href="mathcomp.algebra.matrix.html#mxtrace"><span class="id" title="definition">mxtrace</span></a> <span class="id" title="var">A</span>) : <span class="id" title="var">ring_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">"</span></a>'\det' A" := (<a class="idref" href="mathcomp.algebra.matrix.html#determinant"><span class="id" title="definition">determinant</span></a> <span class="id" title="var">A</span>) : <span class="id" title="var">ring_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">"</span></a>'\adj' A" := (<a class="idref" href="mathcomp.algebra.matrix.html#adjugate"><span class="id" title="definition">adjugate</span></a> <span class="id" title="var">A</span>) : <span class="id" title="var">ring_scope</span>.<br/> - -<br/> -</div> - -<div class="doc"> - Non-commutative transpose requires multiplication in the converse ring. -</div> -<div class="code"> -<span class="id" title="keyword">Lemma</span> <a name="trmx_mul_rev"><span class="id" title="lemma">trmx_mul_rev</span></a> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>) <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">p</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#dbec222c7229fb284575ab42ea1e4c8d"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#dbec222c7229fb284575ab42ea1e4c8d"><span class="id" title="notation">c</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#dbec222c7229fb284575ab42ea1e4c8d"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#dbec222c7229fb284575ab42ea1e4c8d"><span class="id" title="notation">c</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_countZmodType</span> (<span class="id" title="var">M</span> : <a class="idref" href="mathcomp.algebra.countalg.html#CountRing.Zmodule.Exports.countZmodType"><span class="id" title="abbreviation">countZmodType</span></a>) <span class="id" title="var">m</span> <span class="id" title="var">n</span> :=<br/> - <a class="idref" href="mathcomp.algebra.countalg.html#c4cf911b6276243d26c2dd85fdb53f8f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.countalg.html#c4cf911b6276243d26c2dd85fdb53f8f"><span class="id" title="notation">countZmodType</span></a> <a class="idref" href="mathcomp.algebra.countalg.html#c4cf911b6276243d26c2dd85fdb53f8f"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#M"><span class="id" title="variable">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.countalg.html#c4cf911b6276243d26c2dd85fdb53f8f"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_countRingType</span> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.countalg.html#CountRing.Ring.Exports.countRingType"><span class="id" title="abbreviation">countRingType</span></a>) <span class="id" title="var">n</span> :=<br/> - <a class="idref" href="mathcomp.algebra.countalg.html#5d38f59e59d31b0f5328b7330ff4d0f6"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.countalg.html#5d38f59e59d31b0f5328b7330ff4d0f6"><span class="id" title="notation">countRingType</span></a> <a class="idref" href="mathcomp.algebra.countalg.html#5d38f59e59d31b0f5328b7330ff4d0f6"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.algebra.countalg.html#5d38f59e59d31b0f5328b7330ff4d0f6"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_finLmodType</span> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Exports.finRingType"><span class="id" title="abbreviation">finRingType</span></a>) <span class="id" title="var">m</span> <span class="id" title="var">n</span> :=<br/> - <a class="idref" href="mathcomp.algebra.finalg.html#89ed2b9c4fe0e2b73b78eb3dc17a4b6f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.finalg.html#89ed2b9c4fe0e2b73b78eb3dc17a4b6f"><span class="id" title="notation">finLmodType</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#89ed2b9c4fe0e2b73b78eb3dc17a4b6f"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.finalg.html#89ed2b9c4fe0e2b73b78eb3dc17a4b6f"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_finRingType</span> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Exports.finRingType"><span class="id" title="abbreviation">finRingType</span></a>) <span class="id" title="var">n'</span> :=<br/> - <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.finalg.html#dfd62d789441026daed4d1ea30e2ff11"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.finalg.html#dfd62d789441026daed4d1ea30e2ff11"><span class="id" title="notation">finRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#dfd62d789441026daed4d1ea30e2ff11"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n'</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.algebra.finalg.html#dfd62d789441026daed4d1ea30e2ff11"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_finLalgType</span> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Exports.finRingType"><span class="id" title="abbreviation">finRingType</span></a>) <span class="id" title="var">n'</span> :=<br/> - <a class="idref" href="mathcomp.algebra.finalg.html#006f6a476eaf49ff2271764c2e9c0634"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.finalg.html#006f6a476eaf49ff2271764c2e9c0634"><span class="id" title="notation">finLalgType</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#006f6a476eaf49ff2271764c2e9c0634"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n'</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.algebra.finalg.html#006f6a476eaf49ff2271764c2e9c0634"><span class="id" title="notation">]</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Parametricity over the algebra structure. -</div> -<div class="code"> -<span class="id" title="keyword">Section</span> <a name="MapRingMatrix"><span class="id" title="section">MapRingMatrix</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> (<a name="MapRingMatrix.aR"><span class="id" title="variable">aR</span></a> <a name="MapRingMatrix.rR"><span class="id" title="variable">rR</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>) (<a name="MapRingMatrix.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#aR"><span class="id" title="variable">aR</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#rR"><span class="id" title="variable">rR</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">}</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MapRingMatrix.FixedSize"><span class="id" title="section">FixedSize</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> <a name="MapRingMatrix.FixedSize.m"><span class="id" title="variable">m</span></a> <a name="MapRingMatrix.FixedSize.n"><span class="id" title="variable">n</span></a> <a name="MapRingMatrix.FixedSize.p"><span class="id" title="variable">p</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> -<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.aR"><span class="id" title="variable">aR</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.FixedSize.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.FixedSize.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_mxZ"><span class="id" title="lemma">map_mxZ</span></a> <span class="id" title="var">a</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_mxM"><span class="id" title="lemma">map_mxM</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.FixedSize.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.FixedSize.p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_delta_mx"><span class="id" title="lemma">map_delta_mx</span></a> <span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#delta_mx"><span class="id" title="definition">delta_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.FixedSize.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.FixedSize.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_diag_mx"><span class="id" title="lemma">map_diag_mx</span></a> <span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_scalar_mx"><span class="id" title="lemma">map_scalar_mx</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_mx1"><span class="id" title="lemma">map_mx1</span></a> : 1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_perm_mx"><span class="id" title="lemma">map_perm_mx</span></a> (<span class="id" title="var">s</span> : <a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">S_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_tperm_mx"><span class="id" title="lemma">map_tperm_mx</span></a> (<span class="id" title="var">i1</span> <span class="id" title="var">i2</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#tperm_mx"><span class="id" title="definition">tperm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#tperm_mx"><span class="id" title="definition">tperm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_pid_mx"><span class="id" title="lemma">map_pid_mx</span></a> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#pid_mx"><span class="id" title="definition">pid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.FixedSize.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.FixedSize.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trace_map_mx"><span class="id" title="lemma">trace_map_mx</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#055f111b06ebab166375c628a8e0315f"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#055f111b06ebab166375c628a8e0315f"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#055f111b06ebab166375c628a8e0315f"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#055f111b06ebab166375c628a8e0315f"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="det_map_mx"><span class="id" title="lemma">det_map_mx</span></a> <span class="id" title="var">n'</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n'</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="cofactor_map_mx"><span class="id" title="lemma">cofactor_map_mx</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) <span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.algebra.matrix.html#cofactor"><span class="id" title="definition">cofactor</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#cofactor"><span class="id" title="definition">cofactor</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_mx_adj"><span class="id" title="lemma">map_mx_adj</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">adj</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">adj</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.FixedSize"><span class="id" title="section">FixedSize</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_copid_mx"><span class="id" title="lemma">map_copid_mx</span></a> <span class="id" title="var">n</span> <span class="id" title="var">r</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#copid_mx"><span class="id" title="definition">copid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#copid_mx"><span class="id" title="definition">copid_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_mx_is_multiplicative"><span class="id" title="lemma">map_mx_is_multiplicative</span></a> <span class="id" title="var">n'</span> (<span class="id" title="var">n</span> := <a class="idref" href="mathcomp.algebra.matrix.html#n'"><span class="id" title="variable">n'</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.RMorphism.Exports.multiplicative"><span class="id" title="abbreviation">multiplicative</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#map_mx"><span class="id" title="definition">map_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix.f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">map_mx_rmorphism</span> <span class="id" title="var">n'</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.RMorphism.Exports.AddRMorphism"><span class="id" title="abbreviation">AddRMorphism</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#map_mx_is_multiplicative"><span class="id" title="lemma">map_mx_is_multiplicative</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n'"><span class="id" title="variable">n'</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_lin1_mx"><span class="id" title="lemma">map_lin1_mx</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">g</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2f65cfd766dcf020894d753750ad1a23"><span class="id" title="notation">rV_n</span></a>) <span class="id" title="var">gf</span> :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">v</span>, <a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#gf"><span class="id" title="variable">gf</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#lin1_mx"><span class="id" title="definition">lin1_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin1_mx"><span class="id" title="definition">lin1_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#gf"><span class="id" title="variable">gf</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_lin_mx"><span class="id" title="lemma">map_lin_mx</span></a> <span class="id" title="var">m1</span> <span class="id" title="var">n1</span> <span class="id" title="var">m2</span> <span class="id" title="var">n2</span> (<span class="id" title="var">g</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m1"><span class="id" title="variable">m1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m2"><span class="id" title="variable">m2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) <span class="id" title="var">gf</span> : <br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">A</span>, <a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#gf"><span class="id" title="variable">gf</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#lin_mx"><span class="id" title="definition">lin_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9ade10a0869c3a521d87ab9890c112dd"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin_mx"><span class="id" title="definition">lin_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#gf"><span class="id" title="variable">gf</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MapRingMatrix"><span class="id" title="section">MapRingMatrix</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="ComMatrix"><span class="id" title="section">ComMatrix</span></a>.<br/> -</div> - -<div class="doc"> - Lemmas for matrices with coefficients in a commutative ring -</div> -<div class="code"> -<span class="id" title="keyword">Variable</span> <a name="ComMatrix.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Exports.comRingType"><span class="id" title="abbreviation">comRingType</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="ComMatrix.AssocLeft"><span class="id" title="section">AssocLeft</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> <a name="ComMatrix.AssocLeft.m"><span class="id" title="variable">m</span></a> <a name="ComMatrix.AssocLeft.n"><span class="id" title="variable">n</span></a> <a name="ComMatrix.AssocLeft.p"><span class="id" title="variable">p</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> -<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.AssocLeft.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.AssocLeft.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>.<br/> -<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.AssocLeft.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.AssocLeft.p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx_mul"><span class="id" title="lemma">trmx_mul</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalemxAr"><span class="id" title="lemma">scalemxAr</span></a> <span class="id" title="var">a</span> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmx_is_scalable"><span class="id" title="lemma">mulmx_is_scalable</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.scalable"><span class="id" title="abbreviation">scalable</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#mulmx"><span class="id" title="definition">mulmx</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.AssocLeft.m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.AssocLeft.n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.AssocLeft.p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>).<br/> - <span class="id" title="keyword">Canonical</span> <span class="id" title="var">mulmx_linear</span> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.AddLinear"><span class="id" title="abbreviation">AddLinear</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#mulmx_is_scalable"><span class="id" title="lemma">mulmx_is_scalable</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="lin_mulmx"><span class="id" title="definition">lin_mulmx</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.AssocLeft.n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ea2ff3d561159081cea6fb2e8113cc54"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.AssocLeft.p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.AssocLeft.m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ea2ff3d561159081cea6fb2e8113cc54"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.AssocLeft.p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#lin_mx"><span class="id" title="definition">lin_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#mulmx"><span class="id" title="definition">mulmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="lin_mulmx_is_linear"><span class="id" title="lemma">lin_mulmx_is_linear</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.linear"><span class="id" title="abbreviation">linear</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin_mulmx"><span class="id" title="definition">lin_mulmx</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lin_mulmx_additive</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin_mulmx_is_linear"><span class="id" title="lemma">lin_mulmx_is_linear</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lin_mulmx_linear</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.Linear"><span class="id" title="abbreviation">Linear</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin_mulmx_is_linear"><span class="id" title="lemma">lin_mulmx_is_linear</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.AssocLeft"><span class="id" title="section">AssocLeft</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="ComMatrix.LinMulRow"><span class="id" title="section">LinMulRow</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> <a name="ComMatrix.LinMulRow.m"><span class="id" title="variable">m</span></a> <a name="ComMatrix.LinMulRow.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="lin_mul_row"><span class="id" title="definition">lin_mul_row</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.LinMulRow.m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#ea2ff3d561159081cea6fb2e8113cc54"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.LinMulRow.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.LinMulRow.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#lin1_mx"><span class="id" title="definition">lin1_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#mulmx"><span class="id" title="definition">mulmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#8b4742e3f67816503ce4ab2f3b81c27e"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#8b4742e3f67816503ce4ab2f3b81c27e"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#vec_mx"><span class="id" title="definition">vec_mx</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="lin_mul_row_is_linear"><span class="id" title="lemma">lin_mul_row_is_linear</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.linear"><span class="id" title="abbreviation">linear</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin_mul_row"><span class="id" title="definition">lin_mul_row</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lin_mul_row_additive</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin_mul_row_is_linear"><span class="id" title="lemma">lin_mul_row_is_linear</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lin_mul_row_linear</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.Linear"><span class="id" title="abbreviation">Linear</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin_mul_row_is_linear"><span class="id" title="lemma">lin_mul_row_is_linear</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_vec_lin_row"><span class="id" title="lemma">mul_vec_lin_row</span></a> <span class="id" title="var">A</span> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#lin_mul_row"><span class="id" title="definition">lin_mul_row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.LinMulRow"><span class="id" title="section">LinMulRow</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxvec_dotmul"><span class="id" title="lemma">mxvec_dotmul</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) <span class="id" title="var">u</span> <span class="id" title="var">v</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#mxvec"><span class="id" title="definition">mxvec</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="ComMatrix.MatrixAlgType"><span class="id" title="section">MatrixAlgType</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="ComMatrix.MatrixAlgType.n'"><span class="id" title="variable">n'</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_algType</span> :=<br/> - <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Algebra.Exports.AlgType"><span class="id" title="abbreviation">AlgType</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">k</span> ⇒ <a class="idref" href="mathcomp.algebra.matrix.html#scalemxAr"><span class="id" title="lemma">scalemxAr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a>).<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.MatrixAlgType"><span class="id" title="section">MatrixAlgType</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="diag_mxC"><span class="id" title="lemma">diag_mxC</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">d</span> <span class="id" title="var">e</span> : <a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">_n</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="diag_mx_comm"><span class="id" title="lemma">diag_mx_comm</span></a> <span class="id" title="var">n'</span> (<span class="id" title="var">d</span> <span class="id" title="var">e</span> : <a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">_n'</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>) : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.comm"><span class="id" title="definition">GRing.comm</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#e"><span class="id" title="variable">e</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalar_mxC"><span class="id" title="lemma">scalar_mxC</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">a</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalar_mx_comm"><span class="id" title="lemma">scalar_mx_comm</span></a> <span class="id" title="var">n'</span> <span class="id" title="var">a</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n'</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>) : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.comm"><span class="id" title="definition">GRing.comm</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mul_mx_scalar"><span class="id" title="lemma">mul_mx_scalar</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">a</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mxtrace_mulC"><span class="id" title="lemma">mxtrace_mulC</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) <span class="id" title="var">B</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#055f111b06ebab166375c628a8e0315f"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#055f111b06ebab166375c628a8e0315f"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#055f111b06ebab166375c628a8e0315f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#055f111b06ebab166375c628a8e0315f"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#055f111b06ebab166375c628a8e0315f"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#055f111b06ebab166375c628a8e0315f"><span class="id" title="notation">tr</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#055f111b06ebab166375c628a8e0315f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#055f111b06ebab166375c628a8e0315f"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - The theory of determinants -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="determinant_multilinear"><span class="id" title="lemma">determinant_multilinear</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> <span class="id" title="var">B</span> <span class="id" title="var">C</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) <span class="id" title="var">i0</span> <span class="id" title="var">b</span> <span class="id" title="var">c</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row"><span class="id" title="definition">row</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#C"><span class="id" title="variable">C</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> - <a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#C"><span class="id" title="variable">C</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#row'"><span class="id" title="definition">row'</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a><br/> - <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#c7f78cf1f6a5e4f664654f7d671ca752"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#C"><span class="id" title="variable">C</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="determinant_alternate"><span class="id" title="lemma">determinant_alternate</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) <span class="id" title="var">i1</span> <span class="id" title="var">i2</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i1"><span class="id" title="variable">i1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#876aa133fb3472bffd492f74ff496035"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i2"><span class="id" title="variable">i2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 0.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="det_tr"><span class="id" title="lemma">det_tr</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="det_perm"><span class="id" title="lemma">det_perm</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">s</span> : <a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">S_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">(</span></a>-1<a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="det1"><span class="id" title="lemma">det1</span></a> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">(</span></a>1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 1.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="det_mx00"><span class="id" title="lemma">det_mx00</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_0</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 1.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="detZ"><span class="id" title="lemma">detZ</span></a> <span class="id" title="var">n</span> <span class="id" title="var">a</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="det0"><span class="id" title="lemma">det0</span></a> <span class="id" title="var">n'</span> : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">(</span></a>0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n'</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 0.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="det_scalar"><span class="id" title="lemma">det_scalar</span></a> <span class="id" title="var">n</span> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="det_scalar1"><span class="id" title="lemma">det_scalar1</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="det_mulmx"><span class="id" title="lemma">det_mulmx</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="detM"><span class="id" title="lemma">detM</span></a> <span class="id" title="var">n'</span> (<span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n'</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="det_diag"><span class="id" title="lemma">det_diag</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">d</span> : <a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#diag_mx"><span class="id" title="definition">diag_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#bba809eef925bb2b4e421c8b99ce8372"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#bba809eef925bb2b4e421c8b99ce8372"><span class="id" title="notation">prod_i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d"><span class="id" title="variable">d</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Laplace expansion lemma -</div> -<div class="code"> -<span class="id" title="keyword">Lemma</span> <a name="expand_cofactor"><span class="id" title="lemma">expand_cofactor</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) <span class="id" title="var">i</span> <span class="id" title="var">j</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#cofactor"><span class="id" title="definition">cofactor</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a><br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#0c413a5e31d93a4eb0dd4ca0ca5cae70"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c413a5e31d93a4eb0dd4ca0ca5cae70"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c413a5e31d93a4eb0dd4ca0ca5cae70"><span class="id" title="notation">(</span></a><span class="id" title="var">s</span> <a class="idref" href="mathcomp.algebra.ssralg.html#0c413a5e31d93a4eb0dd4ca0ca5cae70"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">S_n</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#0c413a5e31d93a4eb0dd4ca0ca5cae70"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c413a5e31d93a4eb0dd4ca0ca5cae70"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">(</span></a>-1<a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#443901d1788fc95745443c70e786b07b"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#443901d1788fc95745443c70e786b07b"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#443901d1788fc95745443c70e786b07b"><span class="id" title="notation">(</span></a><span class="id" title="var">k</span> <a class="idref" href="mathcomp.algebra.ssralg.html#443901d1788fc95745443c70e786b07b"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#443901d1788fc95745443c70e786b07b"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="expand_det_row"><span class="id" title="lemma">expand_det_row</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) <span class="id" title="var">i0</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">sum_j</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#cofactor"><span class="id" title="definition">cofactor</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="cofactor_tr"><span class="id" title="lemma">cofactor_tr</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) <span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.algebra.matrix.html#cofactor"><span class="id" title="definition">cofactor</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#cofactor"><span class="id" title="definition">cofactor</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="cofactorZ"><span class="id" title="lemma">cofactorZ</span></a> <span class="id" title="var">n</span> <span class="id" title="var">a</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) <span class="id" title="var">i</span> <span class="id" title="var">j</span> : <br/> - <a class="idref" href="mathcomp.algebra.matrix.html#cofactor"><span class="id" title="definition">cofactor</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">.-1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#cofactor"><span class="id" title="definition">cofactor</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="expand_det_col"><span class="id" title="lemma">expand_det_col</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) <span class="id" title="var">j0</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">sum_i</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#cofactor"><span class="id" title="definition">cofactor</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j0"><span class="id" title="variable">j0</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#de3e30c288f66ee879ea2b40e81e186c"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx_adj"><span class="id" title="lemma">trmx_adj</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">adj</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">adj</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="adjZ"><span class="id" title="lemma">adjZ</span></a> <span class="id" title="var">n</span> <span class="id" title="var">a</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">adj</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#663140372ac3b275aae871b74b140513"><span class="id" title="notation">^+</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">.-1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">adj</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Cramer Rule : adjugate on the left -</div> -<div class="code"> -<span class="id" title="keyword">Lemma</span> <a name="mul_mx_adj"><span class="id" title="lemma">mul_mx_adj</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">adj</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Cramer rule : adjugate on the right -</div> -<div class="code"> -<span class="id" title="keyword">Lemma</span> <a name="mul_adj_mx"><span class="id" title="lemma">mul_adj_mx</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">adj</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="adj1"><span class="id" title="lemma">adj1</span></a> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">adj</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">(</span></a>1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Left inverses are right inverses. -</div> -<div class="code"> -<span class="id" title="keyword">Lemma</span> <a name="mulmx1C"><span class="id" title="lemma">mulmx1C</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Only tall matrices have inverses. -</div> -<div class="code"> -<span class="id" title="keyword">Lemma</span> <a name="mulmx1_min"><span class="id" title="lemma">mulmx1_min</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="det_ublock"><span class="id" title="lemma">det_ublock</span></a> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">Aul</span> (<span class="id" title="var">Aur</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) <span class="id" title="var">Adr</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aur"><span class="id" title="variable">Aur</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="det_lblock"><span class="id" title="lemma">det_lblock</span></a> <span class="id" title="var">n1</span> <span class="id" title="var">n2</span> <span class="id" title="var">Aul</span> (<span class="id" title="var">Adl</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#n2"><span class="id" title="variable">n2</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n1"><span class="id" title="variable">n1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) <span class="id" title="var">Adr</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#Adl"><span class="id" title="variable">Adl</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Aul"><span class="id" title="variable">Aul</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Adr"><span class="id" title="variable">Adr</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#ComMatrix"><span class="id" title="section">ComMatrix</span></a>.<br/> - -<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_finAlgType</span> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.Exports.finComRingType"><span class="id" title="abbreviation">finComRingType</span></a>) <span class="id" title="var">n'</span> :=<br/> - <a class="idref" href="mathcomp.algebra.finalg.html#e1046e375fa30252214f407945285be1"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.finalg.html#e1046e375fa30252214f407945285be1"><span class="id" title="notation">finAlgType</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#e1046e375fa30252214f407945285be1"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n'</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.algebra.finalg.html#e1046e375fa30252214f407945285be1"><span class="id" title="notation">]</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Matrix unit ring and inverse matrices *************** -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixInv"><span class="id" title="section">MatrixInv</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> <a name="MatrixInv.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.Exports.comUnitRingType"><span class="id" title="abbreviation">comUnitRingType</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixInv.Defs"><span class="id" title="section">Defs</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="MatrixInv.Defs.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> -<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixInv.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="unitmx"><span class="id" title="definition">unitmx</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixInv.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a> := <span class="id" title="keyword">fun</span> <span class="id" title="var">A</span> ⇒ <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a>.<br/> -<span class="id" title="keyword">Definition</span> <a name="invmx"><span class="id" title="definition">invmx</span></a> <span class="id" title="var">A</span> := <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">)^-1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#25036f527a0b815e50c8c980fafc66d2"><span class="id" title="notation">adj</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#00a1a5b58aac8f1e3f1abff064a39f9d"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="unitmxE"><span class="id" title="lemma">unitmxE</span></a> <span class="id" title="var">A</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="unitmx1"><span class="id" title="lemma">unitmx1</span></a> : 1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a>. <br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="unitmx_perm"><span class="id" title="lemma">unitmx_perm</span></a> <span class="id" title="var">s</span> : <a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="unitmx_tr"><span class="id" title="lemma">unitmx_tr</span></a> <span class="id" title="var">A</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="unitmxZ"><span class="id" title="lemma">unitmxZ</span></a> <span class="id" title="var">a</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="invmx1"><span class="id" title="lemma">invmx1</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="invmxZ"><span class="id" title="lemma">invmxZ</span></a> <span class="id" title="var">a</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">^-1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="invmx_scalar"><span class="id" title="lemma">invmx_scalar</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">^-1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulVmx"><span class="id" title="lemma">mulVmx</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#left_inverse"><span class="id" title="definition">left_inverse</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mulmx"><span class="id" title="definition">mulmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmxV"><span class="id" title="lemma">mulmxV</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#right_inverse"><span class="id" title="definition">right_inverse</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mulmx"><span class="id" title="definition">mulmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulKmx"><span class="id" title="lemma">mulKmx</span></a> <span class="id" title="var">m</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> @<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#left_loop"><span class="id" title="definition">left_loop</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixInv.Defs.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mulmx"><span class="id" title="definition">mulmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulKVmx"><span class="id" title="lemma">mulKVmx</span></a> <span class="id" title="var">m</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> @<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#rev_left_loop"><span class="id" title="definition">rev_left_loop</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixInv.Defs.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mulmx"><span class="id" title="definition">mulmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmxK"><span class="id" title="lemma">mulmxK</span></a> <span class="id" title="var">m</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> @<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#right_loop"><span class="id" title="definition">right_loop</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixInv.Defs.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mulmx"><span class="id" title="definition">mulmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmxKV"><span class="id" title="lemma">mulmxKV</span></a> <span class="id" title="var">m</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> @<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#rev_right_loop"><span class="id" title="definition">rev_right_loop</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixInv.Defs.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#mulmx"><span class="id" title="definition">mulmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="det_inv"><span class="id" title="lemma">det_inv</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">)^-1</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="unitmx_inv"><span class="id" title="lemma">unitmx_inv</span></a> <span class="id" title="var">A</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="unitmx_mul"><span class="id" title="lemma">unitmx_mul</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">&&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#9ddeac0ab66152bd1d64bedb507a795e"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmx_inv"><span class="id" title="lemma">trmx_inv</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="invmxK"><span class="id" title="lemma">invmxK</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#involutive"><span class="id" title="definition">involutive</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="mulmx1_unit"><span class="id" title="lemma">mulmx1_unit</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#ba2b0e492d2b4675a0acf3ea92aabadd"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="intro_unitmx"><span class="id" title="lemma">intro_unitmx</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#ba2b0e492d2b4675a0acf3ea92aabadd"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#850c060d75891e97ece38bfec139b8ea"><span class="id" title="notation">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="invmx_out"><span class="id" title="lemma">invmx_out</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">in</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#790b887fcb3f1d578b2c7a5460f7aeb5"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#790b887fcb3f1d578b2c7a5460f7aeb5"><span class="id" title="notation">predC</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#790b887fcb3f1d578b2c7a5460f7aeb5"><span class="id" title="notation">]</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#876aa133fb3472bffd492f74ff496035"><span class="id" title="notation">=1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#8c08d4203604dbed63e7afa9b689d858"><span class="id" title="notation">}</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixInv.Defs"><span class="id" title="section">Defs</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="MatrixInv.n'"><span class="id" title="variable">n'</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="matrix_unitRingMixin"><span class="id" title="definition">matrix_unitRingMixin</span></a> :=<br/> - <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Exports.UnitRingMixin"><span class="id" title="abbreviation">UnitRingMixin</span></a> (@<a class="idref" href="mathcomp.algebra.matrix.html#mulVmx"><span class="id" title="lemma">mulVmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a>) (@<a class="idref" href="mathcomp.algebra.matrix.html#mulmxV"><span class="id" title="lemma">mulmxV</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a>) (@<a class="idref" href="mathcomp.algebra.matrix.html#intro_unitmx"><span class="id" title="lemma">intro_unitmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a>) (@<a class="idref" href="mathcomp.algebra.matrix.html#invmx_out"><span class="id" title="lemma">invmx_out</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="abbreviation">n</span></a>).<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_unitRing</span> :=<br/> - <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Exports.UnitRingType"><span class="id" title="abbreviation">UnitRingType</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixInv.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#matrix_unitRingMixin"><span class="id" title="definition">matrix_unitRingMixin</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_unitAlg</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#53130370ad22aac4f3ee8434dbc4850d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#53130370ad22aac4f3ee8434dbc4850d"><span class="id" title="notation">unitAlgType</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixInv.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#53130370ad22aac4f3ee8434dbc4850d"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixInv.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#53130370ad22aac4f3ee8434dbc4850d"><span class="id" title="notation">]</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Lemmas requiring that the coefficients are in a unit ring -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="detV"><span class="id" title="lemma">detV</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">^-1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">)^-1</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="unitr_trmx"><span class="id" title="lemma">unitr_trmx</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="trmxV"><span class="id" title="lemma">trmxV</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">^-1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#21ca0474978189f352b592dccdd75860"><span class="id" title="notation">T</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">)^-1</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="perm_mxV"><span class="id" title="lemma">perm_mxV</span></a> (<span class="id" title="var">s</span> : <a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.perm.html#b84ec172b7d8a9cb94a7af117c5a31d6"><span class="id" title="notation">S_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#766fd55608aa0e125ed6f55c83bcc09a"><span class="id" title="notation">^-1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#perm_mx"><span class="id" title="definition">perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#s"><span class="id" title="variable">s</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">)^-1</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="is_perm_mxV"><span class="id" title="lemma">is_perm_mxV</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">^-1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixInv"><span class="id" title="section">MatrixInv</span></a>.<br/> - -<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_countUnitRingType</span> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.countalg.html#CountRing.ComUnitRing.Exports.countComUnitRingType"><span class="id" title="abbreviation">countComUnitRingType</span></a>) <span class="id" title="var">n</span> :=<br/> - <a class="idref" href="mathcomp.algebra.countalg.html#d7279d52944865f8d2b1e61af96c64e0"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.countalg.html#d7279d52944865f8d2b1e61af96c64e0"><span class="id" title="notation">countUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.countalg.html#d7279d52944865f8d2b1e61af96c64e0"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.algebra.countalg.html#d7279d52944865f8d2b1e61af96c64e0"><span class="id" title="notation">]</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Finite inversible matrices and the general linear group. -</div> -<div class="code"> -<span class="id" title="keyword">Section</span> <a name="FinUnitMatrix"><span class="id" title="section">FinUnitMatrix</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> (<a name="FinUnitMatrix.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<a name="FinUnitMatrix.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.Exports.finComUnitRingType"><span class="id" title="abbreviation">finComUnitRingType</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_finUnitRingType</span> <span class="id" title="var">n'</span> :=<br/> - <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.finalg.html#157b0761db3726d8e1bc0a71108dc48f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.finalg.html#157b0761db3726d8e1bc0a71108dc48f"><span class="id" title="notation">finUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#157b0761db3726d8e1bc0a71108dc48f"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#FinUnitMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n'</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.algebra.finalg.html#157b0761db3726d8e1bc0a71108dc48f"><span class="id" title="notation">]</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Definition</span> <a name="GLtype"><span class="id" title="definition">GLtype</span></a> <span class="id" title="keyword">of</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#FinUnitMatrix.R"><span class="id" title="variable">R</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#18d0918a160c839bc9f32d8e64dd406d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.finalg.html#18d0918a160c839bc9f32d8e64dd406d"><span class="id" title="notation">unit</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#FinUnitMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">.-1</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.algebra.finalg.html#18d0918a160c839bc9f32d8e64dd406d"><span class="id" title="notation">}</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Coercion</span> <span class="id" title="var">GLval</span> <span class="id" title="var">ph</span> (<span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#GLtype"><span class="id" title="definition">GLtype</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ph"><span class="id" title="variable">ph</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#FinUnitMatrix.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f953bf7095e0da1cb644443fd0e17d6d"><span class="id" title="notation">.-1</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> :=<br/> - <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Unit"><span class="id" title="constructor">FinRing.Unit</span></a> <span class="id" title="var">A</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">A</span>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#FinUnitMatrix"><span class="id" title="section">FinUnitMatrix</span></a>.<br/> - -<br/> - -<br/> -<span class="id" title="keyword">Notation</span> <a name="1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">"</span></a>{ ''GL_' n [ R ] }" := (<a class="idref" href="mathcomp.algebra.matrix.html#GLtype"><span class="id" title="definition">GLtype</span></a> <span class="id" title="var">n</span> (<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">R</span>))<br/> - (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">format</span> "{ ''GL_' n [ R ] }") : <span class="id" title="var">type_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="837cca55f4be5548cbe15d64ff5b0a9e"><span class="id" title="notation">"</span></a>{ ''GL_' n ( p ) }" := <a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">{'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">GL_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.zmodp.html#3867d54b9d705d180f2100b53dccbd0a"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.zmodp.html#3867d54b9d705d180f2100b53dccbd0a"><span class="id" title="notation">F_p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">]}</span></a><br/> - (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">p</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 10,<br/> - <span class="id" title="var">format</span> "{ ''GL_' n ( p ) }") : <span class="id" title="var">type_scope</span>.<br/> - -<br/> -<span class="id" title="keyword">Section</span> <a name="GL_unit"><span class="id" title="section">GL_unit</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> (<a name="GL_unit.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<a name="GL_unit.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.Exports.finComUnitRingType"><span class="id" title="abbreviation">finComUnitRingType</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">GL_subType</span> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#21ca200dd009fecf1b5db362f705575c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#21ca200dd009fecf1b5db362f705575c"><span class="id" title="notation">subType</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#21ca200dd009fecf1b5db362f705575c"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">{'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">GL_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#GL_unit.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">]}</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#21ca200dd009fecf1b5db362f705575c"><span class="id" title="notation">for</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#GLval"><span class="id" title="definition">GLval</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#21ca200dd009fecf1b5db362f705575c"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Definition</span> <a name="GL_eqMixin"><span class="id" title="definition">GL_eqMixin</span></a> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b361a0fe0b43cea5c506ee5eccc55542"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#b361a0fe0b43cea5c506ee5eccc55542"><span class="id" title="notation">eqMixin</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b361a0fe0b43cea5c506ee5eccc55542"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">{'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">GL_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#GL_unit.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">]}</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b361a0fe0b43cea5c506ee5eccc55542"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b361a0fe0b43cea5c506ee5eccc55542"><span class="id" title="notation"><:]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">GL_eqType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Exports.EqType"><span class="id" title="abbreviation">EqType</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">{'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">GL_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#GL_unit.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">]}</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#GL_eqMixin"><span class="id" title="definition">GL_eqMixin</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">GL_choiceType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.choice.html#6cecb3ca492751e55998eec154506328"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#6cecb3ca492751e55998eec154506328"><span class="id" title="notation">choiceType</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#6cecb3ca492751e55998eec154506328"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">{'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">GL_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#GL_unit.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">]}</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#6cecb3ca492751e55998eec154506328"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">GL_countType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.choice.html#3fd72847645c366340e6e9be05776bd8"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#3fd72847645c366340e6e9be05776bd8"><span class="id" title="notation">countType</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#3fd72847645c366340e6e9be05776bd8"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">{'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">GL_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#GL_unit.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">]}</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#3fd72847645c366340e6e9be05776bd8"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">GL_subCountType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.choice.html#9bbd910cbebcec91f8279b0711b4702d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#9bbd910cbebcec91f8279b0711b4702d"><span class="id" title="notation">subCountType</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#9bbd910cbebcec91f8279b0711b4702d"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">{'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">GL_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#GL_unit.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">]}</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#9bbd910cbebcec91f8279b0711b4702d"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">GL_finType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#0e3773306b0834fa9a0572c7b198b77f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#0e3773306b0834fa9a0572c7b198b77f"><span class="id" title="notation">finType</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#0e3773306b0834fa9a0572c7b198b77f"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">{'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">GL_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#GL_unit.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">]}</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#0e3773306b0834fa9a0572c7b198b77f"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">GL_subFinType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#ea70e506e168d39ce0ec3d3ecd2c349f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#ea70e506e168d39ce0ec3d3ecd2c349f"><span class="id" title="notation">subFinType</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#ea70e506e168d39ce0ec3d3ecd2c349f"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">{'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">GL_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#GL_unit.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">]}</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#ea70e506e168d39ce0ec3d3ecd2c349f"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">GL_baseFinGroupType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.fingroup.fingroup.html#ac5c214a3d709d8519333b0f98027cc9"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ac5c214a3d709d8519333b0f98027cc9"><span class="id" title="notation">baseFinGroupType</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#ac5c214a3d709d8519333b0f98027cc9"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">{'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">GL_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#GL_unit.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">]}</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ac5c214a3d709d8519333b0f98027cc9"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">GL_finGroupType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.fingroup.fingroup.html#2bd77263376cf9e19a7b9689cc638b8a"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#2bd77263376cf9e19a7b9689cc638b8a"><span class="id" title="notation">finGroupType</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#2bd77263376cf9e19a7b9689cc638b8a"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">{'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">GL_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#GL_unit.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">]}</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#2bd77263376cf9e19a7b9689cc638b8a"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Definition</span> <a name="GLgroup"><span class="id" title="definition">GLgroup</span></a> <span class="id" title="keyword">of</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#GL_unit.R"><span class="id" title="variable">R</span></a> := <a class="idref" href="mathcomp.ssreflect.finset.html#d1cce020b4b43370087fd70de1477ab6"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#d1cce020b4b43370087fd70de1477ab6"><span class="id" title="notation">set</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#d1cce020b4b43370087fd70de1477ab6"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">{'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">GL_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#GL_unit.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">]}</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#d1cce020b4b43370087fd70de1477ab6"><span class="id" title="notation">]</span></a>.<br/> -<span class="id" title="keyword">Canonical</span> <span class="id" title="var">GLgroup_group</span> <span class="id" title="var">ph</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.fingroup.fingroup.html#f6996ff347e6cf832aa130837b06a848"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#f6996ff347e6cf832aa130837b06a848"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#f6996ff347e6cf832aa130837b06a848"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#GLgroup"><span class="id" title="definition">GLgroup</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ph"><span class="id" title="variable">ph</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#f6996ff347e6cf832aa130837b06a848"><span class="id" title="notation">]</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">u</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">{'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">GL_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#GL_unit.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#1dc03143d863b1081a0593eaa1cba94b"><span class="id" title="notation">]}</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="GL_1E"><span class="id" title="lemma">GL_1E</span></a> : <a class="idref" href="mathcomp.algebra.matrix.html#GLval"><span class="id" title="definition">GLval</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 1. <br/> -<span class="id" title="keyword">Lemma</span> <a name="GL_VE"><span class="id" title="lemma">GL_VE</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#GLval"><span class="id" title="definition">GLval</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#766fd55608aa0e125ed6f55c83bcc09a"><span class="id" title="notation">^-1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#GLval"><span class="id" title="definition">GLval</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">)^-1</span></a>. <br/> -<span class="id" title="keyword">Lemma</span> <a name="GL_VxE"><span class="id" title="lemma">GL_VxE</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#GLval"><span class="id" title="definition">GLval</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#766fd55608aa0e125ed6f55c83bcc09a"><span class="id" title="notation">^-1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a>. <br/> -<span class="id" title="keyword">Lemma</span> <a name="GL_ME"><span class="id" title="lemma">GL_ME</span></a> <span class="id" title="var">u</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.matrix.html#GLval"><span class="id" title="definition">GLval</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#8b8794efbfbae1b793d9cb62ce802285"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#GLval"><span class="id" title="definition">GLval</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#GLval"><span class="id" title="definition">GLval</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a>. <br/> -<span class="id" title="keyword">Lemma</span> <a name="GL_MxE"><span class="id" title="lemma">GL_MxE</span></a> <span class="id" title="var">u</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.matrix.html#GLval"><span class="id" title="definition">GLval</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#8b8794efbfbae1b793d9cb62ce802285"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a>. <br/> -<span class="id" title="keyword">Lemma</span> <a name="GL_unit"><span class="id" title="lemma">GL_unit</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#GLval"><span class="id" title="definition">GLval</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a>. <br/> -<span class="id" title="keyword">Lemma</span> <a name="GL_unitmx"><span class="id" title="lemma">GL_unitmx</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a>. <br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="GL_det"><span class="id" title="lemma">GL_det</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> 0.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#GL_unit"><span class="id" title="section">GL_unit</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Notation</span> <a name="e4fbb9440521cdeb861c5b6e5cc78252"><span class="id" title="notation">"</span></a>''GL_' n [ R ]" := (<a class="idref" href="mathcomp.algebra.matrix.html#GLgroup"><span class="id" title="definition">GLgroup</span></a> <span class="id" title="var">n</span> (<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">R</span>))<br/> - (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">format</span> "''GL_' n [ R ]") : <span class="id" title="var">group_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="c7dadf81985821165b2931d70aca7d91"><span class="id" title="notation">"</span></a>''GL_' n ( p )" := <a class="idref" href="mathcomp.algebra.matrix.html#e4fbb9440521cdeb861c5b6e5cc78252"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e4fbb9440521cdeb861c5b6e5cc78252"><span class="id" title="notation">GL_n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e4fbb9440521cdeb861c5b6e5cc78252"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.zmodp.html#3867d54b9d705d180f2100b53dccbd0a"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.zmodp.html#3867d54b9d705d180f2100b53dccbd0a"><span class="id" title="notation">F_p</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e4fbb9440521cdeb861c5b6e5cc78252"><span class="id" title="notation">]</span></a><br/> - (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">p</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 10,<br/> - <span class="id" title="var">format</span> "''GL_' n ( p )") : <span class="id" title="var">group_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="de97c139435847a06604f9e0ca2f02e1"><span class="id" title="notation">"</span></a>''GL_' n [ R ]" := (<a class="idref" href="mathcomp.algebra.matrix.html#GLgroup_group"><span class="id" title="definition">GLgroup_group</span></a> <span class="id" title="var">n</span> (<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">R</span>)) : <span class="id" title="var">Group_scope</span>.<br/> -<span class="id" title="keyword">Notation</span> <a name="27909292d8c3d394317c232e32b89313"><span class="id" title="notation">"</span></a>''GL_' n ( p )" := (<a class="idref" href="mathcomp.algebra.matrix.html#GLgroup_group"><span class="id" title="definition">GLgroup_group</span></a> <span class="id" title="var">n</span> (<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <a class="idref" href="mathcomp.algebra.zmodp.html#3867d54b9d705d180f2100b53dccbd0a"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.zmodp.html#3867d54b9d705d180f2100b53dccbd0a"><span class="id" title="notation">F_p</span></a>)) : <span class="id" title="var">Group_scope</span>.<br/> - -<br/> -</div> - -<div class="doc"> - Matrices over a domain ****************************** -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Section</span> <a name="MatrixDomain"><span class="id" title="section">MatrixDomain</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="MatrixDomain.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Exports.idomainType"><span class="id" title="abbreviation">idomainType</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalemx_eq0"><span class="id" title="lemma">scalemx_eq0</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">a</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixDomain.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#081ff67d3116402bb680e8692aa39185"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#081ff67d3116402bb680e8692aa39185"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#081ff67d3116402bb680e8692aa39185"><span class="id" title="notation">||</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#081ff67d3116402bb680e8692aa39185"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#081ff67d3116402bb680e8692aa39185"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="scalemx_inj"><span class="id" title="lemma">scalemx_inj</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">a</span> :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#injective"><span class="id" title="definition">injective</span></a> ( <a class="idref" href="mathcomp.algebra.ssralg.html#eb2b32cc2f63f97454a307a8ee8d68cc"><span class="id" title="notation">*:%</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#eb2b32cc2f63f97454a307a8ee8d68cc"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#eb2b32cc2f63f97454a307a8ee8d68cc"><span class="id" title="notation">a</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixDomain.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixDomain.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c0a062cce31174bb4a1f05fb9cee844"><span class="id" title="notation">)</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="det0P"><span class="id" title="lemma">det0P</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixDomain.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#59ba2b47d2814e66f8210a649ae6e6bc"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">v</span> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#59ba2b47d2814e66f8210a649ae6e6bc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#MatrixDomain.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#928a892a0c1438777aeb17535aec0378"><span class="id" title="notation">_n</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#59ba2b47d2814e66f8210a649ae6e6bc"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#59ba2b47d2814e66f8210a649ae6e6bc"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 0) (<a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0).<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MatrixDomain"><span class="id" title="section">MatrixDomain</span></a>.<br/> - -<br/> - -<br/> -</div> - -<div class="doc"> - Parametricity at the field level (mx_is_scalar, unit and inverse are only - mapped at this level). -</div> -<div class="code"> -<span class="id" title="keyword">Section</span> <a name="MapFieldMatrix"><span class="id" title="section">MapFieldMatrix</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variables</span> (<a name="MapFieldMatrix.aF"><span class="id" title="variable">aF</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="MapFieldMatrix.rF"><span class="id" title="variable">rF</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.Exports.comUnitRingType"><span class="id" title="abbreviation">comUnitRingType</span></a>) (<a name="MapFieldMatrix.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#aF"><span class="id" title="variable">aF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#rF"><span class="id" title="variable">rF</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d531732ed602c7af62b88c7cfce824e5"><span class="id" title="notation">}</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_mx_inj"><span class="id" title="lemma">map_mx_inj</span></a> {<span class="id" title="var">m</span> <span class="id" title="var">n</span>} : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#injective"><span class="id" title="definition">injective</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#map_mx"><span class="id" title="definition">map_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#MapFieldMatrix.f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssreflect.html#aed478b27f23b4f753c27c8ac393febc"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>).<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_mx_is_scalar"><span class="id" title="lemma">map_mx_is_scalar</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#is_scalar_mx"><span class="id" title="definition">is_scalar_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#is_scalar_mx"><span class="id" title="definition">is_scalar_mx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_unitmx"><span class="id" title="lemma">map_unitmx</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#b09457274bcb94927e289b8a9e9cd3f7"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_mx_unit"><span class="id" title="lemma">map_mx_unit</span></a> <span class="id" title="var">n'</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n'</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>) :<br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrbool.html#f6c65697fefaf4504de1d4d641cd4409"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_invmx"><span class="id" title="lemma">map_invmx</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#invmx"><span class="id" title="definition">invmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">f</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_mx_inv"><span class="id" title="lemma">map_mx_inv</span></a> <span class="id" title="var">n'</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n'</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">^-1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">f</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">^-1</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="map_mx_eq0"><span class="id" title="lemma">map_mx_eq0</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#5402b0dfe2a7ea661b91256aeeaf93da"><span class="id" title="notation">)</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9d3374d589a13133fdaed07caecf4d33"><span class="id" title="notation">f</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">)</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#MapFieldMatrix"><span class="id" title="section">MapFieldMatrix</span></a>.<br/> - -<br/> - -<br/> -</div> - -<div class="doc"> - LUP decomposion ***************************** -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Section</span> <a name="CormenLUP"><span class="id" title="section">CormenLUP</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Variable</span> <a name="CormenLUP.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>.<br/> - -<br/> -</div> - -<div class="doc"> - Decomposition of the matrix A to P A = L U with -<ul class="doclist"> -<li> P a permutation matrix - -</li> -<li> L a unipotent lower triangular matrix - -</li> -<li> U an upper triangular matrix -</li> -</ul> - -</div> -<div class="code"> - -<br/> -<span class="id" title="keyword">Fixpoint</span> <a name="cormen_lup"><span class="id" title="definition">cormen_lup</span></a> {<span class="id" title="var">n</span>} :=<br/> - <span class="id" title="keyword">match</span> <a class="idref" href="mathcomp.algebra.matrix.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">return</span> <span class="id" title="keyword">let</span> <span class="id" title="var">M</span> := <a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.matrix.html#CormenLUP.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#60bd2bc9fb9187afe5d7f780c1576e3c"><span class="id" title="notation">_n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.matrix.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#11c698c8685bb8ab1cf725545c085ac4"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#M"><span class="id" title="variable">M</span></a> <span class="id" title="keyword">with</span><br/> - | 0 ⇒ <span class="id" title="keyword">fun</span> <span class="id" title="var">A</span> ⇒ <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a>1<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a><br/> - | <span class="id" title="var">_</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a> ⇒ <span class="id" title="keyword">fun</span> <span class="id" title="var">A</span> ⇒<br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">k</span> := <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#odflt"><span class="id" title="abbreviation">odflt</span></a> 0 <a class="idref" href="mathcomp.ssreflect.fintype.html#17198bb01f8e546f36bb74df399b01c5"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#17198bb01f8e546f36bb74df399b01c5"><span class="id" title="notation">pick</span></a> <span class="id" title="var">k</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#17198bb01f8e546f36bb74df399b01c5"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a> 0 <a class="idref" href="mathcomp.ssreflect.eqtype.html#c385a484ee9d1b4e0615924561a9b75e"><span class="id" title="notation">!=</span></a> 0<a class="idref" href="mathcomp.ssreflect.fintype.html#17198bb01f8e546f36bb74df399b01c5"><span class="id" title="notation">]</span></a> <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">A1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">(</span></a>1 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <span class="id" title="var">_</span><a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">)</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#xrow"><span class="id" title="definition">xrow</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">P1</span> : <a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">(</span></a>1 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#0dacc1786c5ba797d47dd85006231633"><span class="id" title="notation">+</span></a> <span class="id" title="var">_</span><a class="idref" href="mathcomp.algebra.matrix.html#283a109f76687dcbe7a5adc8e90b6b9e"><span class="id" title="notation">)</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#tperm_mx"><span class="id" title="definition">tperm_mx</span></a> 0 <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a> <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">Schur</span> := <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a> 0<a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">)^-1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#dlsubmx"><span class="id" title="definition">dlsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#ursubmx"><span class="id" title="definition">ursubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">let</span>: <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><span class="id" title="var">P2</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <span class="id" title="var">L2</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <span class="id" title="var">U2</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#cormen_lup"><span class="id" title="definition">cormen_lup</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#drsubmx"><span class="id" title="definition">drsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#51dc792c356ca1a71a3094b50d6bb2fb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#Schur"><span class="id" title="variable">Schur</span></a>) <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">P</span> := <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> 1 0 0 <span class="id" title="var">P2</span> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#P1"><span class="id" title="variable">P1</span></a> <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">L</span> := <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> 1 0 (<a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#k"><span class="id" title="variable">k</span></a> 0<a class="idref" href="mathcomp.algebra.ssralg.html#4e5a4c91ec0aa12de06dfe1cc07ea126"><span class="id" title="notation">)^-1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">(</span></a><span class="id" title="var">P2</span> <a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#b2b431de65e6c1e23c1ae3a60262ea15"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#dlsubmx"><span class="id" title="definition">dlsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#3b05480e39db306e67fadbc79d394529"><span class="id" title="notation">)</span></a>) <span class="id" title="var">L2</span> <span class="id" title="tactic">in</span><br/> - <span class="id" title="keyword">let</span> <span class="id" title="var">U</span> := <a class="idref" href="mathcomp.algebra.matrix.html#block_mx"><span class="id" title="definition">block_mx</span></a> (<a class="idref" href="mathcomp.algebra.matrix.html#ulsubmx"><span class="id" title="definition">ulsubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>) (<a class="idref" href="mathcomp.algebra.matrix.html#ursubmx"><span class="id" title="definition">ursubmx</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A1"><span class="id" title="variable">A1</span></a>) 0 <span class="id" title="var">U2</span> <span class="id" title="tactic">in</span><br/> - <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#P"><span class="id" title="variable">P</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#L"><span class="id" title="variable">L</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a><br/> - <span class="id" title="keyword">end</span>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="cormen_lup_perm"><span class="id" title="lemma">cormen_lup_perm</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#is_perm_mx"><span class="id" title="definition">is_perm_mx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#cormen_lup"><span class="id" title="definition">cormen_lup</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">).1.1</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="cormen_lup_correct"><span class="id" title="lemma">cormen_lup_correct</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>) :<br/> - <span class="id" title="keyword">let</span>: <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">(</span></a><span class="id" title="var">P</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <span class="id" title="var">L</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">,</span></a> <span class="id" title="var">U</span><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Datatypes.html#e6756e10c36f149b18b4a8741ed83079"><span class="id" title="notation">)</span></a> := <a class="idref" href="mathcomp.algebra.matrix.html#cormen_lup"><span class="id" title="definition">cormen_lup</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">P</span> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <span class="id" title="var">L</span> <a class="idref" href="mathcomp.algebra.ssralg.html#2d0cfb150261028f4ebd2ba355623dcc"><span class="id" title="notation">×</span></a> <span class="id" title="var">U</span>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="cormen_lup_detL"><span class="id" title="lemma">cormen_lup_detL</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#2a5412586d59ba16d2c60c55e120c7ee"><span class="id" title="notation">M_n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>) : <a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6b0b476e80941db501b42be981d1cdf0"><span class="id" title="notation">det</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#cormen_lup"><span class="id" title="definition">cormen_lup</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">).1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> 1.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="cormen_lup_lower"><span class="id" title="lemma">cormen_lup_lower</span></a> <span class="id" title="var">n</span> <span class="id" title="var">A</span> (<span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#cb53cf0ee22c036a03b4a9281c68b5a3"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#cormen_lup"><span class="id" title="definition">cormen_lup</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#e0817251e7d67ad994b4d9b1aa82a412"><span class="id" title="notation">).1</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">.2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#6cd0f7b28b6092304087c7049437bb1a"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#df45e8c2e8370fd4f0f7c4fdaf208180"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#6411ed08724033ae48d2865f0380d533"><span class="id" title="notation">R</span></a>.<br/> - -<br/> -<span class="id" title="keyword">Lemma</span> <a name="cormen_lup_upper"><span class="id" title="lemma">cormen_lup_upper</span></a> <span class="id" title="var">n</span> <span class="id" title="var">A</span> (<span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#545d9d6249a673300f950a2a8b8a930b"><span class="id" title="notation">I_n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#bda89d73ec4a8f23ae92b565ffb5aaa6"><span class="id" title="notation">.+1</span></a>) :<br/> - <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#00fe0eaf5e6949f0a31725357afa4bba"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#1c93e43e07fbeaeb6a625cb6614beb5d"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.matrix.html#cormen_lup"><span class="id" title="definition">cormen_lup</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.ssr.ssrfun.html#675082cc4d4538da052b547bdc6ea4c9"><span class="id" title="notation">).2</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/V8.9.0/stdlib//Coq.Init.Logic.html#b8b2ebc8e1a8b9aa935c0702efb5dccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.algebra.matrix.html#CormenLUP.F"><span class="id" title="variable">F</span></a>.<br/> - -<br/> -<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.matrix.html#CormenLUP"><span class="id" title="section">CormenLUP</span></a>.<br/> -</div> -</div> - -<div id="footer"> -<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a> -</div> - -</div> - -</body> -</html>
\ No newline at end of file |
