<!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.vector</title>
</head>

<body>

<div id="page">

<div id="header">
</div>

<div id="main">

<h1 class="libtitle">Library mathcomp.algebra.vector</h1>

<div class="code">
<span class="comment">(*&nbsp;(c)&nbsp;Copyright&nbsp;2006-2016&nbsp;Microsoft&nbsp;Corporation&nbsp;and&nbsp;Inria.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>
&nbsp;Distributed&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;CeCILL-B.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
<span class="id" title="keyword">Require</span> <span class="id" title="keyword">Import</span> <a class="idref" href="mathcomp.ssreflect.ssreflect.html#"><span class="id" title="library">mathcomp.ssreflect.ssreflect</span></a>.<br/>

<br/>
</div>

<div class="doc">
<a name="lab29"></a><h1 class="section">Finite dimensional vector spaces</h1>

           vectType R == interface structure for finite dimensional (more   
                         precisely, detachable) vector spaces over R, which 
                         should be at least a ringType.                     
     Vector.axiom n M &lt;-&gt; type M is linearly isomorphic to 'rV_n.           
                         := {v2r : M -&gt; 'rV_n| linear v2r &amp; bijective v2r}. 
       VectMixin isoM == packages a proof isoV of Vector.axiom n M as the   
                         vectType mixin for an n-dimensional R-space        
                         structure on a type M that is an lmodType R.       
      VectType K M mT == packs the vectType mixin mT to into a vectType K   
                         instance for T; T should have an lmodType K        
                         canonical instance.                                
 [vectType R of T for vS] == a copy of the vS : vectType R structure where  
                         the sort is replaced by T; vS : lmodType R should  
                         be convertible to a canonical lmodType for T.      
    [vectType R of V] == a clone of an existing vectType R structure on V.  
          {vspace vT} == the type of (detachable) subspaces of vT; vT       
                         should have a vectType structure over a fieldType. 
           subvs_of U == the subtype of elements of V in the subspace U.    
                         This is canonically a vectType.                    
               vsval u == linear injection of u : subvs_of U into V.        
            vsproj U v == linear projection of v : V in subvs U.            
         'Hom(aT, rT) == the type of linear functions (homomorphisms) from  
                         aT to rT, where aT and rT ARE vectType structures. 
                         Elements of 'Hom(aT, rT) coerce to Coq functions.  
&gt; Caveat: aT and rT must denote actual vectType structures, not their    
     projections on Type.                                                   
             linfun f == a vector linear function in 'Hom(aT, rT) that      
                         coincides with f : aT -&gt; rT when f is linear.      
             'End(vT) == endomorphisms of vT (:= 'Hom(vT, vT)).             
&gt; The types subvs_of U, 'Hom(aT, rT), 'End(vT), K^o, 'M[K](m, n),       
     vT * wT, {ffun I -&gt; vT}, vT ^ n all have canonical vectType instances. 

<div class="paragraph"> </div>

  Functions:                                                                
             &lt; [v]&gt;%VS == the vector space generated by v (a line if v != 0).
                 0%VS == the trivial vector subspace.                       
         fullv, {:vT} == the complete vector subspace (displays as fullv).  
           (U + V)%VS == the join (sum) of two subspaces U and V.           
         (U :&amp;: V)%VS == intersection of vector subspaces U and V.          
             (U^C)%VS == a complement of the vector subspace U.             
         (U :\: V)%VS == a local complement to U :&amp; V in the subspace U.    
               \dim U == dimension of a vector space U.                     
     span X, <tt>X</tt>%VS == the subspace spanned by the vector sequence X.     
          coord X i v == i'th coordinate of v on X, when v \in <tt>X</tt>%VS and 
                         where X : n.-tuple vT and i : 'I_n. Note that      
                         coord X i is a scalar function.                    
              vpick U == a nonzero element of U if U= 0%VS, or 0 if U = 0.  
             vbasis U == a (\dim U).-tuple that is a basis of U.            
                \1%VF == the identity linear function.                      
          (f \o g)%VF == the composite of two linear functions f and g.     
            (f^-1)%VF == a linear function that is a right inverse to the   
                         linear function f on the codomain of f.            
          (f @: U)%VS == the image of vs by the linear function f.          
       (f @^-1: U)%VS == the pre-image of vs by the linear function f.      
               lker f == the kernel of the linear function f.               
               limg f == the image of the linear function f.                
         fixedSpace f == the fixed space of a linear endomorphism f         
         daddv_pi U V == projection onto U along V if U and V are disjoint; 
                         daddv_pi U V + daddv_pi V U is then a projection   
                         onto the direct sum (U + V)%VS.                    
              projv U == projection onto U (along U^C, := daddv_pi U U^C).  
         addv_pi1 U V == projection onto the subspace U :\: V of U along V. 
         addv_pi2 U V == projection onto V along U :\: V; note that         
                         addv_pi1 U V and addv_pi2 U V are (asymmetrical)   
                         complementary projections on (U + V)%VS.           
   sumv_pi_for defV i == for defV : V = (V \sum(j &lt;- r | P j) Vs j)%VS,    
                         j ranging over an eqType, this is a projection on  
                         a subspace of Vs i, along a complement in V, such  
                         that \sum(j &lt;- r | P j) sumv_pi_for defV j is a   
                         projection onto V if filter P r is duplicate-free  
                         (e.g., when V := \sum(j | P j) Vs j).             
          sumv_pi V i == notation the above when defV == erefl V, and V is  
                         convertible to \sum(j &lt;- r | P j) Vs j)%VS.       

<div class="paragraph"> </div>

  Predicates:                                                               
              v \in U == v belongs to U (:= (&lt; [v]&gt; &lt;= U)%VS).               
          (U &lt;= V)%VS == U is a subspace of V.                              
               free B == B is a sequence of nonzero linearly independent    
                         vectors.                                           
         basis_of U b == b is a basis of the subspace U.                    
            directv S == S is the expression for a direct sum of subspaces.  
</div>
<div class="code">

<br/>
<span class="id" title="keyword">Set Implicit Arguments</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> &quot;{ 'vspace' T }" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "{ 'vspace'  T }").<br/>
<span class="id" title="keyword">Reserved Notation</span> &quot;''Hom' ( T , rT )" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">format</span> "''Hom' ( T ,  rT )").<br/>
<span class="id" title="keyword">Reserved Notation</span> &quot;''End' ( T )" (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">format</span> "''End' ( T )").<br/>
<span class="id" title="keyword">Reserved Notation</span> &quot;\dim 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> "\dim  A").<br/>

<br/>
<span class="id" title="keyword">Delimit</span> <span class="id" title="keyword">Scope</span> <span class="id" title="var">vspace_scope</span> <span class="id" title="keyword">with</span> <span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">GRing.Theory</span>.<br/>

<br/>
</div>

<div class="doc">
 Finite dimension vector space  
</div>
<div class="code">
<span class="id" title="keyword">Module</span> <a name="Vector"><span class="id" title="module">Vector</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Vector.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
<span class="id" title="keyword">Variable</span> <a name="Vector.ClassDef.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">Definition</span> <a name="Vector.axiom_def"><span class="id" title="definition">axiom_def</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">V</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.vector.html#Vector.ClassDef.R"><span class="id" title="variable">R</span></a>) <span class="id" title="keyword">of</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> :=<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">{</span></a><span class="id" title="var">v2r</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">rV</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d5eb23b08bc98c3329b2748a3ba944ae"><span class="id" title="notation">_n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">|</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.vector.html#v2r"><span class="id" title="variable">v2r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#bijective"><span class="id" title="inductive">bijective</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v2r"><span class="id" title="variable">v2r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Inductive</span> <a name="Vector.mixin_of"><span class="id" title="inductive">mixin_of</span></a> (<span class="id" title="var">V</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.vector.html#Vector.ClassDef.R"><span class="id" title="variable">R</span></a>) := <a name="Vector.Mixin"><span class="id" title="constructor">Mixin</span></a> <span class="id" title="var">dim</span> &amp; <a class="idref" href="mathcomp.algebra.vector.html#Vector.axiom_def"><span class="id" title="definition">axiom_def</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dim"><span class="id" title="variable">dim</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>).<br/>

<br/>
<span class="id" title="keyword">Structure</span> <a name="Vector.class_of"><span class="id" title="record">class_of</span></a> <span class="id" title="var">V</span> := <a name="Vector.Class"><span class="id" title="constructor">Class</span></a> {<br/>
&nbsp;&nbsp;<a name="Vector.base"><span class="id" title="projection">base</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.class_of"><span class="id" title="record">GRing.Lmodule.class_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>;<br/>
&nbsp;&nbsp;<a name="Vector.mixin"><span class="id" title="projection">mixin</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#Vector.mixin_of"><span class="id" title="inductive">mixin_of</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Pack"><span class="id" title="constructor">GRing.Lmodule.Pack</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.algebra.vector.html#base"><span class="id" title="method">base</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)<br/>
}.<br/>

<br/>
<span class="id" title="keyword">Structure</span> <a name="Vector.type"><span class="id" title="record">type</span></a> (<span class="id" title="var">phR</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.R"><span class="id" title="variable">R</span></a>) := <a name="Vector.Pack"><span class="id" title="constructor">Pack</span></a> {<a name="Vector.sort"><span class="id" title="projection">sort</span></a>; <span class="id" title="var">_</span> : <a class="idref" href="mathcomp.algebra.vector.html#Vector.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#sort"><span class="id" title="method">sort</span></a>; <span class="id" title="var">_</span> : <span class="id" title="keyword">Type</span>}.<br/>
<span class="id" title="keyword">Variables</span> (<a name="Vector.ClassDef.phR"><span class="id" title="variable">phR</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.R"><span class="id" title="variable">R</span></a>) (<a name="Vector.ClassDef.T"><span class="id" title="variable">T</span></a> : <span class="id" title="keyword">Type</span>) (<a name="Vector.ClassDef.cT"><span class="id" title="variable">cT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#Vector.type"><span class="id" title="record">type</span></a> <a class="idref" href="mathcomp.algebra.vector.html#phR"><span class="id" title="variable">phR</span></a>).<br/>
<span class="id" title="keyword">Definition</span> <a name="Vector.class"><span class="id" title="definition">class</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.vector.html#Vector.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">_</span> <span class="id" title="var">c</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">c</span>.<br/>
<span class="id" title="keyword">Definition</span> <a name="Vector.clone"><span class="id" title="definition">clone</span></a> <span class="id" title="var">c</span> <span class="id" title="keyword">of</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#phant_id"><span class="id" title="definition">phant_id</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.class"><span class="id" title="definition">class</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c"><span class="id" title="variable">c</span></a> := @<a class="idref" href="mathcomp.algebra.vector.html#Vector.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.T"><span class="id" title="variable">T</span></a>.<br/>
<span class="id" title="keyword">Let</span> <a name="Vector.ClassDef.xT"><span class="id" title="variable">xT</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.vector.html#Vector.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">T</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="Vector.xclass"><span class="id" title="abbreviation">xclass</span></a> := (<a class="idref" href="mathcomp.algebra.vector.html#Vector.class"><span class="id" title="definition">class</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.xT"><span class="id" title="variable">xT</span></a>).<br/>
<span class="id" title="keyword">Definition</span> <a name="Vector.dim"><span class="id" title="definition">dim</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.vector.html#Vector.Mixin"><span class="id" title="constructor">Mixin</span></a> <span class="id" title="var">n</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.vector.html#Vector.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.class"><span class="id" title="definition">class</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">n</span>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Vector.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">b0</span> (<span class="id" title="var">m0</span> : <a class="idref" href="mathcomp.algebra.vector.html#Vector.mixin_of"><span class="id" title="inductive">mixin_of</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Pack"><span class="id" title="constructor">GRing.Lmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.R"><span class="id" title="variable">R</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b0"><span class="id" title="variable">b0</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.T"><span class="id" title="variable">T</span></a>)) :=<br/>
&nbsp;&nbsp;<span class="id" title="keyword">fun</span> <span class="id" title="var">bT</span> <span class="id" title="var">b</span> &amp; <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#phant_id"><span class="id" title="definition">phant_id</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.class"><span class="id" title="definition">GRing.Lmodule.class</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.vector.html#bT"><span class="id" title="variable">bT</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#b"><span class="id" title="variable">b</span></a> ⇒<br/>
&nbsp;&nbsp;<span class="id" title="keyword">fun</span>    <span class="id" title="var">m</span> &amp; <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#phant_id"><span class="id" title="definition">phant_id</span></a> <a class="idref" href="mathcomp.algebra.vector.html#m0"><span class="id" title="variable">m0</span></a> <a class="idref" href="mathcomp.algebra.vector.html#m"><span class="id" title="variable">m</span></a> ⇒ <a class="idref" href="mathcomp.algebra.vector.html#Vector.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.phR"><span class="id" title="variable">phR</span></a> (@<a class="idref" href="mathcomp.algebra.vector.html#Vector.Class"><span class="id" title="constructor">Class</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.algebra.vector.html#m"><span class="id" title="variable">m</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.T"><span class="id" title="variable">T</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Vector.eqType"><span class="id" title="definition">eqType</span></a> := @<a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Pack"><span class="id" title="constructor">Equality.Pack</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="Vector.choiceType"><span class="id" title="definition">choiceType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Pack"><span class="id" title="constructor">Choice.Pack</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="Vector.zmodType"><span class="id" title="definition">zmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Pack"><span class="id" title="constructor">GRing.Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="Vector.lmodType"><span class="id" title="definition">lmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Pack"><span class="id" title="constructor">GRing.Lmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
<span class="id" title="keyword">Notation</span> <a name="Vector.axiom"><span class="id" title="abbreviation">axiom</span></a> <span class="id" title="var">n</span> <span class="id" title="var">V</span> := (<a class="idref" href="mathcomp.algebra.vector.html#Vector.axiom_def"><span class="id" title="definition">axiom_def</span></a> <span class="id" title="var">n</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">V</span>)).<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Vector.OtherDefs"><span class="id" title="section">OtherDefs</span></a>.<br/>
<span class="id" title="keyword">Inductive</span> <a name="Vector.space"><span class="id" title="inductive">space</span></a> (<span class="id" title="var">K</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<span class="id" title="var">vT</span> : <a class="idref" href="mathcomp.algebra.vector.html#Vector.type"><span class="id" title="record">type</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a>)) (<span class="id" title="var">phV</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vT"><span class="id" title="variable">vT</span></a>) :=<br/>
&nbsp;&nbsp;<a name="Vector.Space"><span class="id" title="constructor">Space</span></a> (<span class="id" title="var">mx</span> : <a class="idref" href="mathcomp.algebra.matrix.html#d837c1a28d718b1ce93b8aa0ad2f20fe"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d837c1a28d718b1ce93b8aa0ad2f20fe"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d837c1a28d718b1ce93b8aa0ad2f20fe"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d837c1a28d718b1ce93b8aa0ad2f20fe"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#d837c1a28d718b1ce93b8aa0ad2f20fe"><span class="id" title="notation">_vT</span></a>) &amp; <a class="idref" href="mathcomp.algebra.mxalgebra.html#d5ec63f878af68490dd200946b5fc43e"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#mx"><span class="id" title="variable">mx</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#d5ec63f878af68490dd200946b5fc43e"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">MS</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.vector.html#mx"><span class="id" title="variable">mx</span></a>.<br/>
<span class="id" title="keyword">Inductive</span> <a name="Vector.hom"><span class="id" title="inductive">hom</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">vT</span> <span class="id" title="var">wT</span> : <a class="idref" href="mathcomp.algebra.vector.html#Vector.type"><span class="id" title="record">type</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <a class="idref" href="mathcomp.algebra.vector.html#R"><span class="id" title="variable">R</span></a>)) :=<br/>
&nbsp;&nbsp;<a name="Vector.Hom"><span class="id" title="constructor">Hom</span></a> <span class="id" title="keyword">of</span> <a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#wT"><span class="id" title="variable">wT</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">)</span></a>.<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.OtherDefs"><span class="id" title="section">OtherDefs</span></a>.<br/>

<br/>
<span class="id" title="keyword">Module</span> <span class="id" title="keyword">Import</span> <a name="Vector.Exports"><span class="id" title="module">Exports</span></a>.<br/>

<br/>
<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.base"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.base"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.base"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.base"><span class="id" title="projection">GRing.Lmodule.class_of</span></a>.<br/>
<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.mixin"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.mixin"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.mixin"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.mixin"><span class="id" title="projection">mixin_of</span></a>.<br/>
<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.sort"><span class="id" title="projection">sort</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.sort"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.sort"><span class="id" title="projection">type</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.sort"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.sort"><span class="id" title="projection">Sortclass</span></a>.<br/>
<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.eqType"><span class="id" title="definition">eqType</span></a><a class="idref" href="mathcomp.algebra.vector.html#Vector.eqType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.eqType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.eqType"><span class="id" title="definition">&gt;-&gt;</span></a>  <a class="idref" href="mathcomp.algebra.vector.html#Vector.eqType"><span class="id" title="definition">Equality.type</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span>.<br/>
<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.choiceType"><span class="id" title="definition">choiceType</span></a><a class="idref" href="mathcomp.algebra.vector.html#Vector.choiceType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.choiceType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.choiceType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.choiceType"><span class="id" title="definition">Choice.type</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span>.<br/>
<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.zmodType"><span class="id" title="definition">zmodType</span></a><a class="idref" href="mathcomp.algebra.vector.html#Vector.zmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.zmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.zmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.zmodType"><span class="id" title="definition">GRing.Zmodule.type</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span>.<br/>
<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.lmodType"><span class="id" title="definition">lmodType</span></a><a class="idref" href="mathcomp.algebra.vector.html#Vector.lmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.lmodType"><span class="id" title="definition">type</span></a><a class="idref" href="mathcomp.algebra.vector.html#Vector.lmodType"><span class="id" title="definition">&gt;-&gt;</span></a>  <a class="idref" href="mathcomp.algebra.vector.html#Vector.lmodType"><span class="id" title="definition">GRing.Lmodule.type</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lmodType</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="Vector.Exports.vectType"><span class="id" title="abbreviation">vectType</span></a> <span class="id" title="var">R</span> := (@<a class="idref" href="mathcomp.algebra.vector.html#Vector.type"><span class="id" title="record">type</span></a> <span class="id" title="var">_</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.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="keyword">Notation</span> <a name="Vector.Exports.VectType"><span class="id" title="abbreviation">VectType</span></a> <span class="id" title="var">R</span> <span class="id" title="var">V</span> <span class="id" title="var">mV</span> :=<br/>
&nbsp;&nbsp;&nbsp;(@<a class="idref" href="mathcomp.algebra.vector.html#Vector.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">_</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.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">V</span> <span class="id" title="var">_</span> <span class="id" title="var">mV</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a> <span class="id" title="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a>).<br/>
<span class="id" title="keyword">Notation</span> <a name="Vector.Exports.VectMixin"><span class="id" title="abbreviation">VectMixin</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#Vector.Mixin"><span class="id" title="constructor">Mixin</span></a>.<br/>
<span class="id" title="keyword">Notation</span> <a name="6a96458df670751dbf6a4ab702b25400"><span class="id" title="notation">&quot;</span></a>[ 'vectType' R 'of' T 'for' cT ]" := (@<a class="idref" href="mathcomp.algebra.vector.html#Vector.clone"><span class="id" title="definition">clone</span></a> <span class="id" title="var">_</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.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">T</span> <span class="id" title="var">cT</span> <span class="id" title="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#idfun"><span class="id" title="abbreviation">idfun</span></a>)<br/>
&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'vectType'  R  'of'  T  'for'  cT ]") : <span class="id" title="var">form_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="204b3fccda7df2b23e9d96fbf111d67d"><span class="id" title="notation">&quot;</span></a>[ 'vectType' R 'of' T ]" := (@<a class="idref" href="mathcomp.algebra.vector.html#Vector.clone"><span class="id" title="definition">clone</span></a> <span class="id" title="var">_</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.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">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#idfun"><span class="id" title="abbreviation">idfun</span></a>)<br/>
&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'vectType'  R  'of'  T ]") : <span class="id" title="var">form_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">&quot;</span></a>{ 'vspace' vT }" := (<a class="idref" href="mathcomp.algebra.vector.html#Vector.space"><span class="id" title="inductive">space</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">vT</span>)) : <span class="id" title="var">type_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">&quot;</span></a>''Hom' ( aT , rT )" := (<a class="idref" href="mathcomp.algebra.vector.html#Vector.hom"><span class="id" title="inductive">hom</span></a> <span class="id" title="var">aT</span> <span class="id" title="var">rT</span>) : <span class="id" title="var">type_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">&quot;</span></a>''End' ( vT )" := (<a class="idref" href="mathcomp.algebra.vector.html#Vector.hom"><span class="id" title="inductive">hom</span></a> <span class="id" title="var">vT</span> <span class="id" title="var">vT</span>) : <span class="id" title="var">type_scope</span>.<br/>

<br/>

<br/>
<span class="id" title="keyword">Delimit</span> <span class="id" title="keyword">Scope</span> <span class="id" title="var">vspace_scope</span> <span class="id" title="keyword">with</span> <span class="id" title="var">VS</span>.<br/>
<span class="id" title="keyword">Delimit</span> <span class="id" title="keyword">Scope</span> <span class="id" title="var">lfun_scope</span> <span class="id" title="keyword">with</span> <span class="id" title="var">VF</span>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.Exports"><span class="id" title="module">Exports</span></a>.<br/>

<br/>
</div>

<div class="doc">
 The contents of this module exposes the matrix encodings, and should       
 therefore not be used outside of the vector library implementation.         
</div>
<div class="code">
<span class="id" title="keyword">Module</span> <a name="Vector.InternalTheory"><span class="id" title="module">InternalTheory</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Vector.InternalTheory.Iso"><span class="id" title="section">Iso</span></a>.<br/>
<span class="id" title="keyword">Variables</span> (<a name="Vector.InternalTheory.Iso.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>) (<a name="Vector.InternalTheory.Iso.vT"><span class="id" title="variable">vT</span></a> <a name="Vector.InternalTheory.Iso.rT"><span class="id" title="variable">rT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#Vector.Exports.vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#R"><span class="id" title="variable">R</span></a>).<br/>

<br/>
<span class="id" title="keyword">Fact</span> <a name="Vector.InternalTheory.v2r_subproof"><span class="id" title="lemma">v2r_subproof</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#Vector.axiom"><span class="id" title="abbreviation">axiom</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Iso.vT"><span class="id" title="variable">vT</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Iso.vT"><span class="id" title="variable">vT</span></a>.  <br/>
<span class="id" title="keyword">Definition</span> <a name="Vector.InternalTheory.v2r"><span class="id" title="definition">v2r</span></a> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#s2val"><span class="id" title="definition">s2val</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.v2r_subproof"><span class="id" title="lemma">v2r_subproof</span></a>.<br/>

<br/>
<span class="id" title="keyword">Let</span> <a name="Vector.InternalTheory.Iso.v2r_bij"><span class="id" title="variable">v2r_bij</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#bijective"><span class="id" title="inductive">bijective</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.v2r"><span class="id" title="definition">v2r</span></a> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#s2valP'"><span class="id" title="lemma">s2valP'</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.v2r_subproof"><span class="id" title="lemma">v2r_subproof</span></a>.<br/>
<span class="id" title="keyword">Fact</span> <a name="Vector.InternalTheory.r2v_subproof"><span class="id" title="lemma">r2v_subproof</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">{</span></a><span class="id" title="var">r2v</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">|</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.algebra.vector.html#r2v"><span class="id" title="variable">r2v</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.v2r"><span class="id" title="definition">v2r</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">}</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="Vector.InternalTheory.r2v"><span class="id" title="definition">r2v</span></a> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#sval"><span class="id" title="abbreviation">sval</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.r2v_subproof"><span class="id" title="lemma">r2v_subproof</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Vector.InternalTheory.r2vK"><span class="id" title="lemma">r2vK</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.r2v"><span class="id" title="definition">r2v</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.v2r"><span class="id" title="definition">v2r</span></a>.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="Vector.InternalTheory.r2v_inj"><span class="id" title="lemma">r2v_inj</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#injective"><span class="id" title="definition">injective</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.r2v"><span class="id" title="definition">r2v</span></a>.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="Vector.InternalTheory.v2rK"><span class="id" title="lemma">v2rK</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.v2r"><span class="id" title="definition">v2r</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.r2v"><span class="id" title="definition">r2v</span></a>.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="Vector.InternalTheory.v2r_inj"><span class="id" title="lemma">v2r_inj</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#injective"><span class="id" title="definition">injective</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.v2r"><span class="id" title="definition">v2r</span></a>.  <br/>

<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">v2r_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.ssreflect.eqtype.html#s2valP"><span class="id" title="lemma">s2valP</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.v2r_subproof"><span class="id" title="lemma">v2r_subproof</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</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.vector.html#Vector.InternalTheory.v2r"><span class="id" title="definition">v2r</span></a>).<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">r2v_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.ssralg.html#GRing.Theory.can2_linear"><span class="id" title="definition">can2_linear</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.v2rK"><span class="id" title="lemma">v2rK</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.r2vK"><span class="id" title="lemma">r2vK</span></a>).<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Iso"><span class="id" title="section">Iso</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Vector.InternalTheory.Vspace"><span class="id" title="section">Vspace</span></a>.<br/>
<span class="id" title="keyword">Variables</span> (<a name="Vector.InternalTheory.Vspace.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="Vector.InternalTheory.Vspace.vT"><span class="id" title="variable">vT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#Vector.Exports.vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a>).<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Vector.InternalTheory.b2mx"><span class="id" title="definition">b2mx</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Vspace.vT"><span class="id" title="variable">vT</span></a>) := <a class="idref" href="mathcomp.algebra.matrix.html#e284a17aae67e9e1847f9d0558653fbb"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e284a17aae67e9e1847f9d0558653fbb"><span class="id" title="notation">matrix_i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.v2r"><span class="id" title="definition">v2r</span></a> (<a class="idref" href="mathcomp.ssreflect.tuple.html#tnth"><span class="id" title="definition">tnth</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>).<br/>
<span class="id" title="keyword">Lemma</span> <a name="Vector.InternalTheory.b2mxK"><span class="id" title="lemma">b2mxK</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Vspace.vT"><span class="id" title="variable">vT</span></a>) <span class="id" title="var">i</span> : <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.r2v"><span class="id" title="definition">r2v</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.vector.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.b2mx"><span class="id" title="definition">b2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a>)) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">_i</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Definition</span> <a name="Vector.InternalTheory.vs2mx"><span class="id" title="definition">vs2mx</span></a> {<span class="id" title="var">phV</span>} (<span class="id" title="var">U</span> : @<a class="idref" href="mathcomp.algebra.vector.html#Vector.space"><span class="id" title="inductive">space</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Vspace.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Vspace.vT"><span class="id" title="variable">vT</span></a> <a class="idref" href="mathcomp.algebra.vector.html#phV"><span class="id" title="variable">phV</span></a>) := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.vector.html#Vector.Space"><span class="id" title="constructor">Space</span></a> <span class="id" title="var">mx</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">mx</span>.<br/>
<span class="id" title="keyword">Lemma</span> <a name="Vector.InternalTheory.gen_vs2mx"><span class="id" title="lemma">gen_vs2mx</span></a> (<span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Vspace.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>) : <a class="idref" href="mathcomp.algebra.mxalgebra.html#d5ec63f878af68490dd200946b5fc43e"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#d5ec63f878af68490dd200946b5fc43e"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">MS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Fact</span> <a name="Vector.InternalTheory.mx2vs_subproof"><span class="id" title="lemma">mx2vs_subproof</span></a> <span class="id" title="var">m</span> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Vspace.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Vspace.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.algebra.mxalgebra.html#d5ec63f878af68490dd200946b5fc43e"><span class="id" title="notation">&lt;&lt;(&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#d5ec63f878af68490dd200946b5fc43e"><span class="id" title="notation">&gt;&gt;)&gt;&gt;</span></a>%<span class="id" title="var">MS</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#d5ec63f878af68490dd200946b5fc43e"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#d5ec63f878af68490dd200946b5fc43e"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">MS</span>.<br/>
 <span class="id" title="keyword">Definition</span> <a name="Vector.InternalTheory.mx2vs"><span class="id" title="definition">mx2vs</span></a> {<span class="id" title="var">m</span>} <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Vspace.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#Vector.Space"><span class="id" title="constructor">Space</span></a> <span class="id" title="var">_</span> (@<a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.mx2vs_subproof"><span class="id" title="lemma">mx2vs_subproof</span></a> <a class="idref" href="mathcomp.algebra.vector.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.vector.html#A"><span class="id" title="variable">A</span></a>).<br/>

<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">space_subType</span> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#341c160c3e7b20d967b85d1852a7f89f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#341c160c3e7b20d967b85d1852a7f89f"><span class="id" title="notation">subType</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#341c160c3e7b20d967b85d1852a7f89f"><span class="id" title="notation">for</span></a> @<a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.vs2mx"><span class="id" title="definition">vs2mx</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Vspace.vT"><span class="id" title="variable">vT</span></a>)<a class="idref" href="mathcomp.ssreflect.eqtype.html#341c160c3e7b20d967b85d1852a7f89f"><span class="id" title="notation">]</span></a>.<br/>
<span class="id" title="keyword">Lemma</span> <a name="Vector.InternalTheory.vs2mxK"><span class="id" title="lemma">vs2mxK</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.mx2vs"><span class="id" title="definition">mx2vs</span></a>.<br/>
 <span class="id" title="keyword">Lemma</span> <a name="Vector.InternalTheory.mx2vsK"><span class="id" title="lemma">mx2vsK</span></a> <span class="id" title="var">m</span> (<span class="id" title="var">M</span> : <a class="idref" href="mathcomp.algebra.matrix.html#cb37620352ad6b90a047a361359e2f04"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#cb37620352ad6b90a047a361359e2f04"><span class="id" title="notation">M_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#cb37620352ad6b90a047a361359e2f04"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#cb37620352ad6b90a047a361359e2f04"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Vspace.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.matrix.html#cb37620352ad6b90a047a361359e2f04"><span class="id" title="notation">)</span></a>) : (<a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.vs2mx"><span class="id" title="definition">vs2mx</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.mx2vs"><span class="id" title="definition">mx2vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#M"><span class="id" title="variable">M</span></a>) <a class="idref" href="mathcomp.algebra.mxalgebra.html#996fe23bb3b2a56fc494fe9a0a3c2cd1"><span class="id" title="notation">:=:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#M"><span class="id" title="variable">M</span></a>)%<span class="id" title="var">MS</span>.<br/>
 <span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Vspace"><span class="id" title="section">Vspace</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Vector.InternalTheory.Hom"><span class="id" title="section">Hom</span></a>.<br/>
<span class="id" title="keyword">Variables</span> (<a name="Vector.InternalTheory.Hom.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>) (<a name="Vector.InternalTheory.Hom.aT"><span class="id" title="variable">aT</span></a> <a name="Vector.InternalTheory.Hom.rT"><span class="id" title="variable">rT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#Vector.Exports.vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#R"><span class="id" title="variable">R</span></a>).<br/>
<span class="id" title="keyword">Definition</span> <a name="Vector.InternalTheory.f2mx"><span class="id" title="definition">f2mx</span></a> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Hom.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Hom.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.vector.html#Vector.Hom"><span class="id" title="constructor">Hom</span></a> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">A</span>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">hom_subType</span> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#d716e206e5129c6b3a60f0f640eaaeb0"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#d716e206e5129c6b3a60f0f640eaaeb0"><span class="id" title="notation">newType</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#d716e206e5129c6b3a60f0f640eaaeb0"><span class="id" title="notation">for</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.f2mx"><span class="id" title="definition">f2mx</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#d716e206e5129c6b3a60f0f640eaaeb0"><span class="id" title="notation">]</span></a>.<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory.Hom"><span class="id" title="section">Hom</span></a>.<br/>

<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector.InternalTheory"><span class="id" title="module">InternalTheory</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#Vector"><span class="id" title="module">Vector</span></a>.<br/>
<span class="id" title="keyword">Export</span> <span class="id" title="var">Vector.Exports</span>.<br/>
<span class="id" title="keyword">Import</span> <span class="id" title="var">Vector.InternalTheory</span>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="VspaceDefs"><span class="id" title="section">VspaceDefs</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="VspaceDefs.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="VspaceDefs.vT"><span class="id" title="variable">vT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a>).<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.vector.html#VspaceDefs.vT"><span class="id" title="variable">vT</span></a>) (<span class="id" title="var">X</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VspaceDefs.vT"><span class="id" title="variable">vT</span></a>) (<span class="id" title="var">U</span> <span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VspaceDefs.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>).<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="space_eqMixin"><span class="id" title="definition">space_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#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">eqMixin</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VspaceDefs.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">&lt;:]</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">space_eqType</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.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VspaceDefs.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a> <a class="idref" href="mathcomp.algebra.vector.html#space_eqMixin"><span class="id" title="definition">space_eqMixin</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="space_choiceMixin"><span class="id" title="definition">space_choiceMixin</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.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">choiceMixin</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VspaceDefs.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">&lt;:]</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">space_choiceType</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.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VspaceDefs.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a> <a class="idref" href="mathcomp.algebra.vector.html#space_choiceMixin"><span class="id" title="definition">space_choiceMixin</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="dimv"><span class="id" title="definition">dimv</span></a> <span class="id" title="var">U</span> := <a class="idref" href="mathcomp.algebra.mxalgebra.html#2841ad707bf668c5fe86250d8f31a3f6"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#2841ad707bf668c5fe86250d8f31a3f6"><span class="id" title="notation">rank</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#2841ad707bf668c5fe86250d8f31a3f6"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#2841ad707bf668c5fe86250d8f31a3f6"><span class="id" title="notation">)</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="subsetv"><span class="id" title="definition">subsetv</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> := (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#a83de2bef5d483337931b658f4451b59"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">MS</span>.<br/>
<span class="id" title="keyword">Definition</span> <a name="vline"><span class="id" title="definition">vline</span></a> <span class="id" title="var">u</span> := <a class="idref" href="mathcomp.algebra.vector.html#mx2vs"><span class="id" title="definition">mx2vs</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#v2r"><span class="id" title="definition">v2r</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a>).<br/>

<br/>
</div>

<div class="doc">
 Vspace membership is defined as line inclusion.  
</div>
<div class="code">
<span class="id" title="keyword">Definition</span> <a name="pred_of_vspace"><span class="id" title="definition">pred_of_vspace</span></a> <span class="id" title="var">phV</span> (<span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#space"><span class="id" title="inductive">Vector.space</span></a> <a class="idref" href="mathcomp.algebra.vector.html#phV"><span class="id" title="variable">phV</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred_class"><span class="id" title="abbreviation">pred_class</span></a> :=<br/>
&nbsp;&nbsp;<span class="id" title="keyword">fun</span> <span class="id" title="var">v</span> ⇒ (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vline"><span class="id" title="definition">vline</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a>) <a class="idref" href="mathcomp.algebra.mxalgebra.html#a83de2bef5d483337931b658f4451b59"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">MS</span>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vspace_predType</span> :=<br/>
&nbsp;&nbsp;@<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#mkPredType"><span class="id" title="definition">mkPredType</span></a> <span class="id" title="var">_</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#unkeyed"><span class="id" title="abbreviation">unkeyed</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VspaceDefs.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>) (@<a class="idref" href="mathcomp.algebra.vector.html#pred_of_vspace"><span class="id" title="definition">pred_of_vspace</span></a> <span class="id" title="var">_</span>).<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="fullv"><span class="id" title="definition">fullv</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VspaceDefs.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#mx2vs"><span class="id" title="definition">mx2vs</span></a> 1<a class="idref" href="mathcomp.algebra.matrix.html#6bc5aad53caab585f4bb088e10501342"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.matrix.html#6bc5aad53caab585f4bb088e10501342"><span class="id" title="notation">M</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="addv"><span class="id" title="definition">addv</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> := <a class="idref" href="mathcomp.algebra.vector.html#mx2vs"><span class="id" title="definition">mx2vs</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#3aa1e041eb0c3f581bd44ed53c8f7182"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>).<br/>
<span class="id" title="keyword">Definition</span> <a name="capv"><span class="id" title="definition">capv</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> := <a class="idref" href="mathcomp.algebra.vector.html#mx2vs"><span class="id" title="definition">mx2vs</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#bce3bcafad88bdee58acbfcd89899a28"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>).<br/>
<span class="id" title="keyword">Definition</span> <a name="complv"><span class="id" title="definition">complv</span></a> <span class="id" title="var">U</span> := <a class="idref" href="mathcomp.algebra.vector.html#mx2vs"><span class="id" title="definition">mx2vs</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#56c42908e63b585e8406ab6296f5d2e9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#56c42908e63b585e8406ab6296f5d2e9"><span class="id" title="notation">)^</span></a><a class="idref" href="mathcomp.algebra.mxalgebra.html#56c42908e63b585e8406ab6296f5d2e9"><span class="id" title="notation">C</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="diffv"><span class="id" title="definition">diffv</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> := <a class="idref" href="mathcomp.algebra.vector.html#mx2vs"><span class="id" title="definition">mx2vs</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#09728f32fede5dee4dfccad9739422e8"><span class="id" title="notation">:\:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>).<br/>
<span class="id" title="keyword">Definition</span> <a name="vpick"><span class="id" title="definition">vpick</span></a> <span class="id" title="var">U</span> := <a class="idref" href="mathcomp.algebra.vector.html#r2v"><span class="id" title="definition">r2v</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.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)).<br/>
<span class="id" title="keyword">Fact</span> <a name="span_key"><span class="id" title="lemma">span_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.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="span_expanded_def"><span class="id" title="definition">span_expanded_def</span></a> <span class="id" title="var">X</span> := <a class="idref" href="mathcomp.algebra.vector.html#mx2vs"><span class="id" title="definition">mx2vs</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#b2mx"><span class="id" title="definition">b2mx</span></a> (<a class="idref" href="mathcomp.ssreflect.tuple.html#in_tuple"><span class="id" title="definition">in_tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a>)).<br/>
<span class="id" title="keyword">Definition</span> <a name="span"><span class="id" title="definition">span</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#locked_with"><span class="id" title="definition">locked_with</span></a> <a class="idref" href="mathcomp.algebra.vector.html#span_key"><span class="id" title="lemma">span_key</span></a> <a class="idref" href="mathcomp.algebra.vector.html#span_expanded_def"><span class="id" title="definition">span_expanded_def</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">span_unlockable</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">unlockable</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">fun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#span"><span class="id" title="definition">span</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">]</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="vbasis_def"><span class="id" title="definition">vbasis_def</span></a> <span class="id" title="var">U</span> :=<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.tuple.html#1bdc3d6f63dc0019ce17772415ee5798"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#1bdc3d6f63dc0019ce17772415ee5798"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#r2v"><span class="id" title="definition">r2v</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.vector.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.algebra.mxalgebra.html#row_base"><span class="id" title="definition">row_base</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>))) <a class="idref" href="mathcomp.ssreflect.tuple.html#1bdc3d6f63dc0019ce17772415ee5798"><span class="id" title="notation">|</span></a> <span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.tuple.html#1bdc3d6f63dc0019ce17772415ee5798"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dimv"><span class="id" title="definition">dimv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#1bdc3d6f63dc0019ce17772415ee5798"><span class="id" title="notation">]</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="vbasis"><span class="id" title="definition">vbasis</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#locked_with"><span class="id" title="definition">locked_with</span></a> <a class="idref" href="mathcomp.algebra.vector.html#span_key"><span class="id" title="lemma">span_key</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vbasis_def"><span class="id" title="definition">vbasis_def</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vbasis_unlockable</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">unlockable</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">fun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vbasis"><span class="id" title="definition">vbasis</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">]</span></a>.<br/>

<br/>
</div>

<div class="doc">
 coord and directv are defined in the VectorTheory section.  
</div>
<div class="code">

<br/>
<span class="id" title="keyword">Definition</span> <a name="free"><span class="id" title="definition">free</span></a> <span class="id" title="var">X</span> := <a class="idref" href="mathcomp.algebra.vector.html#dimv"><span class="id" title="definition">dimv</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#span"><span class="id" title="definition">span</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a>) <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="basis_of"><span class="id" title="definition">basis_of</span></a> <span class="id" title="var">U</span> <span class="id" title="var">X</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#span"><span class="id" title="definition">span</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#VspaceDefs"><span class="id" title="section">VspaceDefs</span></a>.<br/>

<br/>
<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.vector.html#pred_of_vspace"><span class="id" title="definition">pred_of_vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#pred_of_vspace"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#pred_of_vspace"><span class="id" title="definition">Vector.space</span></a> <a class="idref" href="mathcomp.algebra.vector.html#pred_of_vspace"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#pred_of_vspace"><span class="id" title="definition">pred_class</span></a>.<br/>
<span class="id" title="keyword">Notation</span> <a name="ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">&quot;</span></a>\dim U" := (<a class="idref" href="mathcomp.algebra.vector.html#dimv"><span class="id" title="definition">dimv</span></a> <span class="id" title="var">U</span>) : <span class="id" title="var">nat_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">&quot;</span></a>U &lt;= V" := (<a class="idref" href="mathcomp.algebra.vector.html#subsetv"><span class="id" title="definition">subsetv</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="279d21686ddbb39e1c3b4eb5ad283d06"><span class="id" title="notation">&quot;</span></a>U &lt;= V &lt;= W" := (<a class="idref" href="mathcomp.algebra.vector.html#subsetv"><span class="id" title="definition">subsetv</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subsetv"><span class="id" title="definition">subsetv</span></a> <span class="id" title="var">V</span> <span class="id" title="var">W</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">&quot;</span></a>&lt;[ v ] &gt;" := (<a class="idref" href="mathcomp.algebra.vector.html#vline"><span class="id" title="definition">vline</span></a> <span class="id" title="var">v</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&quot;</span></a>&lt;&lt; X &gt;&gt;" := (<a class="idref" href="mathcomp.algebra.vector.html#span"><span class="id" title="definition">span</span></a> <span class="id" title="var">X</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="5fd8884bce52b97734c5c9a3dfeb405c"><span class="id" title="notation">&quot;</span></a>0" := (<a class="idref" href="mathcomp.algebra.vector.html#vline"><span class="id" title="definition">vline</span></a> 0) : <span class="id" title="var">vspace_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">&quot;</span></a>U + V" := (<a class="idref" href="mathcomp.algebra.vector.html#addv"><span class="id" title="definition">addv</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">&quot;</span></a>U :&amp;: V" := (<a class="idref" href="mathcomp.algebra.vector.html#capv"><span class="id" title="definition">capv</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="071d56fbd1000a21b48af9aadab34351"><span class="id" title="notation">&quot;</span></a>U ^C" := (<a class="idref" href="mathcomp.algebra.vector.html#complv"><span class="id" title="definition">complv</span></a> <span class="id" title="var">U</span>) (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">format</span> "U ^C") : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="946bddca9671fead9ed6e5aece130780"><span class="id" title="notation">&quot;</span></a>U :\: V" := (<a class="idref" href="mathcomp.algebra.vector.html#diffv"><span class="id" title="definition">diffv</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">&quot;</span></a>{ : vT }" := (@<a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a> <span class="id" title="var">_</span> <span class="id" title="var">vT</span>) (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">vspace_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">&quot;</span></a>\sum_ ( i &lt;- r | P ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#addv"><span class="id" title="definition">addv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">/</span></a>0%<span class="id" title="var">VS</span><a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">&lt;-</span></a> <span class="id" title="var">r</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">|</span></a> <span class="id" title="var">P</span>%<span class="id" title="var">B</span><a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">&quot;</span></a>\sum_ ( i &lt;- r ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#addv"><span class="id" title="definition">addv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">/</span></a>0%<span class="id" title="var">VS</span><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">&lt;-</span></a> <span class="id" title="var">r</span><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="c39e266eae2b9d16deeec803fc46fe8c"><span class="id" title="notation">&quot;</span></a>\sum_ ( m &lt;= i &lt; n | P ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#addv"><span class="id" title="definition">addv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">/</span></a>0%<span class="id" title="var">VS</span><a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">(</span></a><span class="id" title="var">m</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">≤</span></a> <span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">&lt;</span></a> <span class="id" title="var">n</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">|</span></a> <span class="id" title="var">P</span>%<span class="id" title="var">B</span><a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="d4336a1a89b320ae38df449a0ace1195"><span class="id" title="notation">&quot;</span></a>\sum_ ( m &lt;= i &lt; n ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#addv"><span class="id" title="definition">addv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">/</span></a>0%<span class="id" title="var">VS</span><a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">(</span></a><span class="id" title="var">m</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">≤</span></a> <span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">&lt;</span></a> <span class="id" title="var">n</span><a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">&quot;</span></a>\sum_ ( i | P ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#addv"><span class="id" title="definition">addv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">/</span></a>0%<span class="id" title="var">VS</span><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">|</span></a> <span class="id" title="var">P</span>%<span class="id" title="var">B</span><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="97d0054903e1c4921898847e53133998"><span class="id" title="notation">&quot;</span></a>\sum_ i U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#a0ddbff8fbef0617dd5dab072904e591"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a0ddbff8fbef0617dd5dab072904e591"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a0ddbff8fbef0617dd5dab072904e591"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#addv"><span class="id" title="definition">addv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a0ddbff8fbef0617dd5dab072904e591"><span class="id" title="notation">/</span></a>0%<span class="id" title="var">VS</span><a class="idref" href="mathcomp.ssreflect.bigop.html#a0ddbff8fbef0617dd5dab072904e591"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a0ddbff8fbef0617dd5dab072904e591"><span class="id" title="notation">_i</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="caab1011cfc69c643d0326957303c1e5"><span class="id" title="notation">&quot;</span></a>\sum_ ( i : t | P ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#addv"><span class="id" title="definition">addv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">/</span></a>0%<span class="id" title="var">VS</span><a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">:</span></a> <span class="id" title="var">t</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">|</span></a> <span class="id" title="var">P</span>%<span class="id" title="var">B</span><a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="128b4c5c6b8fe7c01f977b4bc567d8de"><span class="id" title="notation">&quot;</span></a>\sum_ ( i : t ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#addv"><span class="id" title="definition">addv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">/</span></a>0%<span class="id" title="var">VS</span><a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">:</span></a> <span class="id" title="var">t</span><a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="4937e0a578940a49f37750c5c6335213"><span class="id" title="notation">&quot;</span></a>\sum_ ( i &lt; n | P ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#addv"><span class="id" title="definition">addv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">/</span></a>0%<span class="id" title="var">VS</span><a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">&lt;</span></a> <span class="id" title="var">n</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">|</span></a> <span class="id" title="var">P</span>%<span class="id" title="var">B</span><a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="c590ac35f1a5b43781169f103c46d6e5"><span class="id" title="notation">&quot;</span></a>\sum_ ( i &lt; n ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#addv"><span class="id" title="definition">addv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">/</span></a>0%<span class="id" title="var">VS</span><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">&lt;</span></a> <span class="id" title="var">n</span><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="b498783332edc3e3ea79e152764033f3"><span class="id" title="notation">&quot;</span></a>\sum_ ( i 'in' A | P ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#addv"><span class="id" title="definition">addv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">/</span></a>0%<span class="id" title="var">VS</span><a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">in</span></a> <span class="id" title="var">A</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">|</span></a> <span class="id" title="var">P</span>%<span class="id" title="var">B</span><a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="f26a0cda7d3c14d9621b2cfa2a7f3924"><span class="id" title="notation">&quot;</span></a>\sum_ ( i 'in' A ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#addv"><span class="id" title="definition">addv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">/</span></a>0%<span class="id" title="var">VS</span><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">in</span></a> <span class="id" title="var">A</span><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="3c22b9be9efec34a36f75983de9297bd"><span class="id" title="notation">&quot;</span></a>\bigcap_ ( i &lt;- r | P ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#capv"><span class="id" title="definition">capv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">&lt;-</span></a> <span class="id" title="var">r</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">|</span></a> <span class="id" title="var">P</span>%<span class="id" title="var">B</span><a class="idref" href="mathcomp.ssreflect.bigop.html#52c4d552b36d01307b4a33177122d4d1"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="fa4242b86d3efdad31014ccd203eb19c"><span class="id" title="notation">&quot;</span></a>\bigcap_ ( i &lt;- r ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#capv"><span class="id" title="definition">capv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">&lt;-</span></a> <span class="id" title="var">r</span><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="74142157c1f014e0c9c3a26f4b79c424"><span class="id" title="notation">&quot;</span></a>\bigcap_ ( m &lt;= i &lt; n | P ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#capv"><span class="id" title="definition">capv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">(</span></a><span class="id" title="var">m</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">≤</span></a> <span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">&lt;</span></a> <span class="id" title="var">n</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">|</span></a> <span class="id" title="var">P</span>%<span class="id" title="var">B</span><a class="idref" href="mathcomp.ssreflect.bigop.html#f420cd67a470642ef8830577affa92e5"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="c01fdac2bec60b87e12040d6e3cf6342"><span class="id" title="notation">&quot;</span></a>\bigcap_ ( m &lt;= i &lt; n ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#capv"><span class="id" title="definition">capv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">(</span></a><span class="id" title="var">m</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">≤</span></a> <span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">&lt;</span></a> <span class="id" title="var">n</span><a class="idref" href="mathcomp.ssreflect.bigop.html#db346c83cc8192751cf56eb8b0029d40"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="20793aa95353fced22b75b1022e9ab39"><span class="id" title="notation">&quot;</span></a>\bigcap_ ( i | P ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#capv"><span class="id" title="definition">capv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">|</span></a> <span class="id" title="var">P</span>%<span class="id" title="var">B</span><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="dd40ab226983f07c4a30bcbf3757587f"><span class="id" title="notation">&quot;</span></a>\bigcap_ i U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#a0ddbff8fbef0617dd5dab072904e591"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a0ddbff8fbef0617dd5dab072904e591"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a0ddbff8fbef0617dd5dab072904e591"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#capv"><span class="id" title="definition">capv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a0ddbff8fbef0617dd5dab072904e591"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a0ddbff8fbef0617dd5dab072904e591"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a0ddbff8fbef0617dd5dab072904e591"><span class="id" title="notation">_i</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="4023de86c058b7139afbc56eb155c273"><span class="id" title="notation">&quot;</span></a>\bigcap_ ( i : t | P ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#capv"><span class="id" title="definition">capv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">:</span></a> <span class="id" title="var">t</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">|</span></a> <span class="id" title="var">P</span>%<span class="id" title="var">B</span><a class="idref" href="mathcomp.ssreflect.bigop.html#ec673a52d55e56af63579baa68d352ee"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="62a748b4178fb0a0c3fd43370f38561e"><span class="id" title="notation">&quot;</span></a>\bigcap_ ( i : t ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#capv"><span class="id" title="definition">capv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">:</span></a> <span class="id" title="var">t</span><a class="idref" href="mathcomp.ssreflect.bigop.html#7c24ccda1da6510c0183e6d456463b39"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) (<span class="id" title="var">only</span> <span class="id" title="var">parsing</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="30cfd57d3055f02b279eae7d4a1626ec"><span class="id" title="notation">&quot;</span></a>\bigcap_ ( i &lt; n | P ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#capv"><span class="id" title="definition">capv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">&lt;</span></a> <span class="id" title="var">n</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">|</span></a> <span class="id" title="var">P</span>%<span class="id" title="var">B</span><a class="idref" href="mathcomp.ssreflect.bigop.html#dc42c7ad0ea9096c0f795649807315df"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="ab6a1ac23c8bf6240a3fb641da136f5a"><span class="id" title="notation">&quot;</span></a>\bigcap_ ( i &lt; n ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#capv"><span class="id" title="definition">capv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">&lt;</span></a> <span class="id" title="var">n</span><a class="idref" href="mathcomp.ssreflect.bigop.html#567079cee6eb2eba482323c7e8d08df5"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="92c8932eab2d0d25641b64e49077b7e2"><span class="id" title="notation">&quot;</span></a>\bigcap_ ( i 'in' A | P ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#capv"><span class="id" title="definition">capv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">in</span></a> <span class="id" title="var">A</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">|</span></a> <span class="id" title="var">P</span>%<span class="id" title="var">B</span><a class="idref" href="mathcomp.ssreflect.bigop.html#a9a46078b76c2e36303d504b8fb5bbb3"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="7c5030bc981658afca05e49c41e7b4ee"><span class="id" title="notation">&quot;</span></a>\bigcap_ ( i 'in' A ) U" :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#capv"><span class="id" title="definition">capv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">in</span></a> <span class="id" title="var">A</span><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">)</span></a> <span class="id" title="var">U</span>%<span class="id" title="var">VS</span>) : <span class="id" title="var">vspace_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="VectorTheory"><span class="id" title="section">VectorTheory</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="VectorTheory.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="VectorTheory.vT"><span class="id" title="variable">vT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a>).<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.K"><span class="id" title="variable">K</span></a>) (<span class="id" title="var">u</span> <span class="id" title="var">v</span> <span class="id" title="var">w</span> : <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>) (<span class="id" title="var">X</span> <span class="id" title="var">Y</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>) (<span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">W</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>).<br/>

<br/>

<br/>

<br/>
<span class="id" title="keyword">Fact</span> <a name="vspace_key"><span class="id" title="lemma">vspace_key</span></a> <span class="id" title="var">U</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred_key"><span class="id" title="inductive">pred_key</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.  <br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vspace_keyed</span> <span class="id" title="var">U</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#KeyedPred"><span class="id" title="definition">KeyedPred</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vspace_key"><span class="id" title="lemma">vspace_key</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="memvE"><span class="id" title="lemma">memvE</span></a> <span class="id" title="var">v</span> <span class="id" title="var">U</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">]&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.  <br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="vlineP"><span class="id" title="lemma">vlineP</span></a> <span class="id" title="var">v1</span> <span class="id" title="var">v2</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">∃</span></a> <span class="id" title="var">k</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v1"><span class="id" title="variable">v1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v2"><span class="id" title="variable">v2</span></a>) (<a class="idref" href="mathcomp.algebra.vector.html#v1"><span class="id" title="variable">v1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.algebra.vector.html#v2"><span class="id" title="variable">v2</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">]&gt;</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Fact</span> <a name="memv_submod_closed"><span class="id" title="lemma">memv_submod_closed</span></a> <span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.submod_closed"><span class="id" title="abbreviation">submod_closed</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">memv_opprPred</span> <span class="id" title="var">U</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.OpprPred"><span class="id" title="definition">OpprPred</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#memv_submod_closed"><span class="id" title="lemma">memv_submod_closed</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>).<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">memv_addrPred</span> <span class="id" title="var">U</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.AddrPred"><span class="id" title="definition">AddrPred</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#memv_submod_closed"><span class="id" title="lemma">memv_submod_closed</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>).<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">memv_zmodPred</span> <span class="id" title="var">U</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.ZmodPred"><span class="id" title="definition">ZmodPred</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#memv_submod_closed"><span class="id" title="lemma">memv_submod_closed</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>).<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">memv_submodPred</span> <span class="id" title="var">U</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.SubmodPred"><span class="id" title="definition">SubmodPred</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#memv_submod_closed"><span class="id" title="lemma">memv_submod_closed</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="mem0v"><span class="id" title="lemma">mem0v</span></a> <span class="id" title="var">U</span> : 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="memvN"><span class="id" title="lemma">memvN</span></a> <span class="id" title="var">U</span> <span class="id" title="var">v</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="memvD"><span class="id" title="lemma">memvD</span></a> <span class="id" title="var">U</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">&amp;,</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">u</span> <span class="id" title="var">v</span>, <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a>.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="memvB"><span class="id" title="lemma">memvB</span></a> <span class="id" title="var">U</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">&amp;,</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">u</span> <span class="id" title="var">v</span>, <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a>.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="memvZ"><span class="id" title="lemma">memvZ</span></a> <span class="id" title="var">U</span> <span class="id" title="var">k</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><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.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>.  <br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_suml"><span class="id" title="lemma">memv_suml</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/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a>) <span class="id" title="var">vs</span> <span class="id" title="var">U</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><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.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vs"><span class="id" title="variable">vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vs"><span class="id" title="variable">vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_line"><span class="id" title="lemma">memv_line</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">]&gt;</span></a>%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="subvP"><span class="id" title="lemma">subvP</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">}</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="subvv"><span class="id" title="lemma">subvv</span></a> <span class="id" title="var">U</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.  <br/>
<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">subvv</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="subv_trans"><span class="id" title="lemma">subv_trans</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#transitive"><span class="id" title="definition">transitive</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subV"><span class="id" title="abbreviation">subV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="subv_anti"><span class="id" title="lemma">subv_anti</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#antisymmetric"><span class="id" title="definition">antisymmetric</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subV"><span class="id" title="abbreviation">subV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="eqEsubv"><span class="id" title="lemma">eqEsubv</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#279d21686ddbb39e1c3b4eb5ad283d06"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#279d21686ddbb39e1c3b4eb5ad283d06"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="vspaceP"><span class="id" title="lemma">vspaceP</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">=</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#df1ced36fc33ce188051218bca314374"><span class="id" title="notation">↔</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="subvPn"><span class="id" title="lemma">subvPn</span></a> {<span class="id" title="var">U</span> <span class="id" title="var">V</span>} : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">u</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">notin</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>) (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>).<br/>

<br/>
</div>

<div class="doc">
 Empty space.  
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="sub0v"><span class="id" title="lemma">sub0v</span></a> <span class="id" title="var">U</span> : (0 <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="subv0"><span class="id" title="lemma">subv0</span></a> <span class="id" title="var">U</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> 0)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">VS</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv0"><span class="id" title="lemma">memv0</span></a> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> 0%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
</div>

<div class="doc">
 Full space  
</div>
<div class="code">

<br/>
<span class="id" title="keyword">Lemma</span> <a name="subvf"><span class="id" title="lemma">subvf</span></a> <span class="id" title="var">U</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a>)%<span class="id" title="var">VS</span>.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="memvf"><span class="id" title="lemma">memvf</span></a> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a>.  <br/>

<br/>
</div>

<div class="doc">
 Picking a non-zero vector in a subspace.  
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="memv_pick"><span class="id" title="lemma">memv_pick</span></a> <span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#vpick"><span class="id" title="definition">vpick</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.  <br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="vpick0"><span class="id" title="lemma">vpick0</span></a> <span class="id" title="var">U</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#vpick"><span class="id" title="definition">vpick</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">VS</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
</div>

<div class="doc">
 Sum of subspaces.  
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="subv_add"><span class="id" title="lemma">subv_add</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">W</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="addvS"><span class="id" title="lemma">addvS</span></a> <span class="id" title="var">U1</span> <span class="id" title="var">U2</span> <span class="id" title="var">V1</span> <span class="id" title="var">V2</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U1"><span class="id" title="variable">U1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U2"><span class="id" title="variable">U2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V1"><span class="id" title="variable">V1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V2"><span class="id" title="variable">V2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U1"><span class="id" title="variable">U1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V1"><span class="id" title="variable">V1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U2"><span class="id" title="variable">U2</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V2"><span class="id" title="variable">V2</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="addvSl"><span class="id" title="lemma">addvSl</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="addvSr"><span class="id" title="lemma">addvSr</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="addvC"><span class="id" title="lemma">addvC</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#commutative"><span class="id" title="definition">commutative</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addV"><span class="id" title="abbreviation">addV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="addvA"><span class="id" title="lemma">addvA</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#associative"><span class="id" title="definition">associative</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addV"><span class="id" title="abbreviation">addV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="addv_idPl"><span class="id" title="lemma">addv_idPl</span></a> {<span class="id" title="var">U</span> <span class="id" title="var">V</span>}: <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span> (<a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="addv_idPr"><span class="id" title="lemma">addv_idPr</span></a> {<span class="id" title="var">U</span> <span class="id" title="var">V</span>} : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="addvv"><span class="id" title="lemma">addvv</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#idempotent"><span class="id" title="definition">idempotent</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addV"><span class="id" title="abbreviation">addV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="add0v"><span class="id" title="lemma">add0v</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_id"><span class="id" title="definition">left_id</span></a> 0%<span class="id" title="var">VS</span> <a class="idref" href="mathcomp.algebra.vector.html#addV"><span class="id" title="abbreviation">addV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="addv0"><span class="id" title="lemma">addv0</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#right_id"><span class="id" title="definition">right_id</span></a> 0%<span class="id" title="var">VS</span> <a class="idref" href="mathcomp.algebra.vector.html#addV"><span class="id" title="abbreviation">addV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="sumfv"><span class="id" title="lemma">sumfv</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_zero"><span class="id" title="definition">left_zero</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addV"><span class="id" title="abbreviation">addV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="addvf"><span class="id" title="lemma">addvf</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#right_zero"><span class="id" title="definition">right_zero</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addV"><span class="id" title="abbreviation">addV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">addv_monoid</span> := <a class="idref" href="mathcomp.ssreflect.bigop.html#Monoid.Law"><span class="id" title="constructor">Monoid.Law</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addvA"><span class="id" title="lemma">addvA</span></a> <a class="idref" href="mathcomp.algebra.vector.html#add0v"><span class="id" title="lemma">add0v</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addv0"><span class="id" title="lemma">addv0</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">addv_comoid</span> := <a class="idref" href="mathcomp.ssreflect.bigop.html#Monoid.ComLaw"><span class="id" title="constructor">Monoid.ComLaw</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addvC"><span class="id" title="lemma">addvC</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_add"><span class="id" title="lemma">memv_add</span></a> <span class="id" title="var">u</span> <span class="id" title="var">v</span> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_addP"><span class="id" title="lemma">memv_addP</span></a> {<span class="id" title="var">w</span> <span class="id" title="var">U</span> <span class="id" title="var">V</span>} :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">u</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">v</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a>)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="VectorTheory.BigSum"><span class="id" title="section">BigSum</span></a>.<br/>
<span class="id" title="keyword">Variable</span> <a name="VectorTheory.BigSum.I"><span class="id" title="variable">I</span></a> : <a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Exports.finType"><span class="id" title="abbreviation">finType</span></a>.<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">P</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSum.I"><span class="id" title="variable">I</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="sumv_sup"><span class="id" title="lemma">sumv_sup</span></a> <span class="id" title="var">i0</span> <span class="id" title="var">P</span> <span class="id" title="var">U</span> <span class="id" title="var">Vs</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vs"><span class="id" title="variable">Vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i0"><span class="id" title="variable">i0</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vs"><span class="id" title="variable">Vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="subv_sumP"><span class="id" title="lemma">subv_sumP</span></a> {<span class="id" title="var">P</span> <span class="id" title="var">Us</span> <span class="id" title="var">V</span>} :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<span class="id" title="keyword">∀</span> <span class="id" title="var">i</span>, <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>  (<a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_sumr"><span class="id" title="lemma">memv_sumr</span></a> <span class="id" title="var">P</span> <span class="id" title="var">vs</span> (<span class="id" title="var">Us</span> : <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSum.I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>) :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><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.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vs"><span class="id" title="variable">vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vs"><span class="id" title="variable">vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_sumP"><span class="id" title="lemma">memv_sumP</span></a> {<span class="id" title="var">P</span>} {<span class="id" title="var">Us</span> : <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSum.I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>} {<span class="id" title="var">v</span>} : <br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">vs</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><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.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a>  <a class="idref" href="mathcomp.algebra.vector.html#vs"><span class="id" title="variable">vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vs"><span class="id" title="variable">vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSum"><span class="id" title="section">BigSum</span></a>.<br/>

<br/>
</div>

<div class="doc">
 Intersection  
</div>
<div class="code">

<br/>
<span class="id" title="keyword">Lemma</span> <a name="subv_cap"><span class="id" title="lemma">subv_cap</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">W</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="capvS"><span class="id" title="lemma">capvS</span></a> <span class="id" title="var">U1</span> <span class="id" title="var">U2</span> <span class="id" title="var">V1</span> <span class="id" title="var">V2</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U1"><span class="id" title="variable">U1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U2"><span class="id" title="variable">U2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V1"><span class="id" title="variable">V1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V2"><span class="id" title="variable">V2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U1"><span class="id" title="variable">U1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V1"><span class="id" title="variable">V1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U2"><span class="id" title="variable">U2</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V2"><span class="id" title="variable">V2</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="capvSl"><span class="id" title="lemma">capvSl</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="capvSr"><span class="id" title="lemma">capvSr</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="capvC"><span class="id" title="lemma">capvC</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#commutative"><span class="id" title="definition">commutative</span></a> <a class="idref" href="mathcomp.algebra.vector.html#capV"><span class="id" title="abbreviation">capV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="capvA"><span class="id" title="lemma">capvA</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#associative"><span class="id" title="definition">associative</span></a> <a class="idref" href="mathcomp.algebra.vector.html#capV"><span class="id" title="abbreviation">capV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="capv_idPl"><span class="id" title="lemma">capv_idPl</span></a> {<span class="id" title="var">U</span> <span class="id" title="var">V</span>} : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="capv_idPr"><span class="id" title="lemma">capv_idPr</span></a> {<span class="id" title="var">U</span> <span class="id" title="var">V</span>} : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> (<a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="capvv"><span class="id" title="lemma">capvv</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#idempotent"><span class="id" title="definition">idempotent</span></a> <a class="idref" href="mathcomp.algebra.vector.html#capV"><span class="id" title="abbreviation">capV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="cap0v"><span class="id" title="lemma">cap0v</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_zero"><span class="id" title="definition">left_zero</span></a> 0%<span class="id" title="var">VS</span> <a class="idref" href="mathcomp.algebra.vector.html#capV"><span class="id" title="abbreviation">capV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="capv0"><span class="id" title="lemma">capv0</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#right_zero"><span class="id" title="definition">right_zero</span></a> 0%<span class="id" title="var">VS</span> <a class="idref" href="mathcomp.algebra.vector.html#capV"><span class="id" title="abbreviation">capV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="capfv"><span class="id" title="lemma">capfv</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_id"><span class="id" title="definition">left_id</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#capV"><span class="id" title="abbreviation">capV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="capvf"><span class="id" title="lemma">capvf</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#right_id"><span class="id" title="definition">right_id</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#capV"><span class="id" title="abbreviation">capV</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">capv_monoid</span> := <a class="idref" href="mathcomp.ssreflect.bigop.html#Monoid.Law"><span class="id" title="constructor">Monoid.Law</span></a> <a class="idref" href="mathcomp.algebra.vector.html#capvA"><span class="id" title="lemma">capvA</span></a> <a class="idref" href="mathcomp.algebra.vector.html#capfv"><span class="id" title="lemma">capfv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#capvf"><span class="id" title="lemma">capvf</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">capv_comoid</span> := <a class="idref" href="mathcomp.ssreflect.bigop.html#Monoid.ComLaw"><span class="id" title="constructor">Monoid.ComLaw</span></a> <a class="idref" href="mathcomp.algebra.vector.html#capvC"><span class="id" title="lemma">capvC</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_cap"><span class="id" title="lemma">memv_cap</span></a> <span class="id" title="var">w</span> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_capP"><span class="id" title="lemma">memv_capP</span></a> {<span class="id" title="var">w</span> <span class="id" title="var">U</span> <span class="id" title="var">V</span>} : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>) (<a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="vspace_modl"><span class="id" title="lemma">vspace_modl</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">W</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a><a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="vspace_modr"><span class="id" title="lemma">vspace_modr</span></a>  <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">W</span> : (<a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a><a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Section</span> <a name="VectorTheory.BigCap"><span class="id" title="section">BigCap</span></a>.<br/>
<span class="id" title="keyword">Variable</span> <a name="VectorTheory.BigCap.I"><span class="id" title="variable">I</span></a> : <a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Exports.finType"><span class="id" title="abbreviation">finType</span></a>.<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">P</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigCap.I"><span class="id" title="variable">I</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="bigcapv_inf"><span class="id" title="lemma">bigcapv_inf</span></a> <span class="id" title="var">i0</span> <span class="id" title="var">P</span> <span class="id" title="var">Us</span> <span class="id" title="var">V</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i0"><span class="id" title="variable">i0</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#20793aa95353fced22b75b1022e9ab39"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#20793aa95353fced22b75b1022e9ab39"><span class="id" title="notation">bigcap_</span></a><a class="idref" href="mathcomp.algebra.vector.html#20793aa95353fced22b75b1022e9ab39"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#20793aa95353fced22b75b1022e9ab39"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#20793aa95353fced22b75b1022e9ab39"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="subv_bigcapP"><span class="id" title="lemma">subv_bigcapP</span></a> {<span class="id" title="var">P</span> <span class="id" title="var">U</span> <span class="id" title="var">Vs</span>} :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<span class="id" title="keyword">∀</span> <span class="id" title="var">i</span>, <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vs"><span class="id" title="variable">Vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)%<span class="id" title="var">VS</span> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#20793aa95353fced22b75b1022e9ab39"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#20793aa95353fced22b75b1022e9ab39"><span class="id" title="notation">bigcap_</span></a><a class="idref" href="mathcomp.algebra.vector.html#20793aa95353fced22b75b1022e9ab39"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#20793aa95353fced22b75b1022e9ab39"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#20793aa95353fced22b75b1022e9ab39"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vs"><span class="id" title="variable">Vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigCap"><span class="id" title="section">BigCap</span></a>.<br/>

<br/>
</div>

<div class="doc">
 Complement  
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="addv_complf"><span class="id" title="lemma">addv_complf</span></a> <span class="id" title="var">U</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.algebra.vector.html#071d56fbd1000a21b48af9aadab34351"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.vector.html#071d56fbd1000a21b48af9aadab34351"><span class="id" title="notation">C</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="capv_compl"><span class="id" title="lemma">capv_compl</span></a> <span class="id" title="var">U</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.algebra.vector.html#071d56fbd1000a21b48af9aadab34351"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.vector.html#071d56fbd1000a21b48af9aadab34351"><span class="id" title="notation">C</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0)%<span class="id" title="var">VS</span>.<br/>

<br/>
</div>

<div class="doc">
 Difference  
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="diffvSl"><span class="id" title="lemma">diffvSl</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#946bddca9671fead9ed6e5aece130780"><span class="id" title="notation">:\:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="capv_diff"><span class="id" title="lemma">capv_diff</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#946bddca9671fead9ed6e5aece130780"><span class="id" title="notation">:\:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="addv_diff_cap"><span class="id" title="lemma">addv_diff_cap</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#946bddca9671fead9ed6e5aece130780"><span class="id" title="notation">:\:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="addv_diff"><span class="id" title="lemma">addv_diff</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#946bddca9671fead9ed6e5aece130780"><span class="id" title="notation">:\:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
</div>

<div class="doc">
 Subspace dimension.  
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="dimv0"><span class="id" title="lemma">dimv0</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a>0%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0%<span class="id" title="var">N</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="dimv_eq0"><span class="id" title="lemma">dimv_eq0</span></a> <span class="id" title="var">U</span> :  <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">VS</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="dimvf"><span class="id" title="lemma">dimvf</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dim"><span class="id" title="definition">Vector.dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="dim_vline"><span class="id" title="lemma">dim_vline</span></a> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">]&gt;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="dimvS"><span class="id" title="lemma">dimvS</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="dimv_leqif_sup"><span class="id" title="lemma">dimv_leqif_sup</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">?=</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">iff</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="dimv_leqif_eq"><span class="id" title="lemma">dimv_leqif_eq</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">?=</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">iff</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="eqEdim"><span class="id" title="lemma">eqEdim</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="dimv_compl"><span class="id" title="lemma">dimv_compl</span></a> <span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.algebra.vector.html#071d56fbd1000a21b48af9aadab34351"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.vector.html#071d56fbd1000a21b48af9aadab34351"><span class="id" title="notation">C</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9482aae3d3b06e249765c1225dbb8cbb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">N</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="dimv_cap_compl"><span class="id" title="lemma">dimv_cap_compl</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#b3eea360671e1b32b18a26e15b3aace3"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#946bddca9671fead9ed6e5aece130780"><span class="id" title="notation">:\:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">N</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="dimv_sum_cap"><span class="id" title="lemma">dimv_sum_cap</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#b3eea360671e1b32b18a26e15b3aace3"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#b3eea360671e1b32b18a26e15b3aace3"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">N</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="dimv_disjoint_sum"><span class="id" title="lemma">dimv_disjoint_sum</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> :<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#b3eea360671e1b32b18a26e15b3aace3"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">N</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="dimv_add_leqif"><span class="id" title="lemma">dimv_add_leqif</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#b3eea360671e1b32b18a26e15b3aace3"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">?=</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">iff</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> 0)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="diffv_eq0"><span class="id" title="lemma">diffv_eq0</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#946bddca9671fead9ed6e5aece130780"><span class="id" title="notation">:\:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="dimv_leq_sum"><span class="id" title="lemma">dimv_leq_sum</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/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a>) (<span class="id" title="var">Us</span> : <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>) : <br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.bigop.html#ea7e35bae15685d5cd3430a8e48be02b"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ea7e35bae15685d5cd3430a8e48be02b"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ea7e35bae15685d5cd3430a8e48be02b"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#ea7e35bae15685d5cd3430a8e48be02b"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.bigop.html#ea7e35bae15685d5cd3430a8e48be02b"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ea7e35bae15685d5cd3430a8e48be02b"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="VectorTheory.SumExpr"><span class="id" title="section">SumExpr</span></a>.<br/>

<br/>
</div>

<div class="doc">
 The vector direct sum theory clones the interface types of the matrix     
 direct sum theory (see mxalgebra for the technical details), but          
 nevetheless reuses much of the matrix theory.                              
</div>
<div class="code">
<span class="id" title="keyword">Structure</span> <a name="addv_expr"><span class="id" title="record">addv_expr</span></a> := <a name="Sumv"><span class="id" title="constructor">Sumv</span></a> {<br/>
&nbsp;&nbsp;<a name="addv_val"><span class="id" title="projection">addv_val</span></a> :&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#wrapped"><span class="id" title="record">wrapped</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>;<br/>
&nbsp;&nbsp;<a name="addv_dim"><span class="id" title="projection">addv_dim</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#wrapped"><span class="id" title="record">wrapped</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>;<br/>
&nbsp;&nbsp;<span class="id" title="var">_</span> : <a class="idref" href="mathcomp.algebra.mxalgebra.html#mxsum_spec"><span class="id" title="inductive">mxsum_spec</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addv_val"><span class="id" title="method">addv_val</span></a>)) (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addv_dim"><span class="id" title="method">addv_dim</span></a>)<br/>
}.<br/>

<br/>
</div>

<div class="doc">
 Piggyback on mxalgebra theory.  
</div>
<div class="code">
<span class="id" title="keyword">Definition</span> <a name="vs2mx_sum_expr_subproof"><span class="id" title="definition">vs2mx_sum_expr_subproof</span></a> (<span class="id" title="var">S</span> : <a class="idref" href="mathcomp.algebra.vector.html#addv_expr"><span class="id" title="record">addv_expr</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxalgebra.html#mxsum_spec"><span class="id" title="inductive">mxsum_spec</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a>)) (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#addv_dim"><span class="id" title="projection">addv_dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a>)).<br/>
 <span class="id" title="keyword">Canonical</span> <span class="id" title="var">vs2mx_sum_expr</span> <span class="id" title="var">S</span> := <a class="idref" href="mathcomp.algebra.mxalgebra.html#ProperMxsumExpr"><span class="id" title="constructor">ProperMxsumExpr</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx_sum_expr_subproof"><span class="id" title="definition">vs2mx_sum_expr_subproof</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a>).<br/>

<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">trivial_addv</span> <span class="id" title="var">U</span> := @<a class="idref" href="mathcomp.algebra.vector.html#Sumv"><span class="id" title="constructor">Sumv</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#Wrap"><span class="id" title="constructor">Wrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>) (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#Wrap"><span class="id" title="constructor">Wrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)) (<a class="idref" href="mathcomp.algebra.mxalgebra.html#TrivialMxsum"><span class="id" title="constructor">TrivialMxsum</span></a> <span class="id" title="var">_</span>).<br/>

<br/>
<span class="id" title="keyword">Structure</span> <a name="proper_addv_expr"><span class="id" title="record">proper_addv_expr</span></a> := <a name="ProperSumvExpr"><span class="id" title="constructor">ProperSumvExpr</span></a> {<br/>
&nbsp;&nbsp;<a name="proper_addv_val"><span class="id" title="projection">proper_addv_val</span></a> :&gt; <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>;<br/>
&nbsp;&nbsp;<a name="proper_addv_dim"><span class="id" title="projection">proper_addv_dim</span></a> :&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>;<br/>
&nbsp;&nbsp;<span class="id" title="var">_</span> : <a class="idref" href="mathcomp.algebra.mxalgebra.html#mxsum_spec"><span class="id" title="inductive">mxsum_spec</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#proper_addv_val"><span class="id" title="method">proper_addv_val</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#proper_addv_dim"><span class="id" title="method">proper_addv_dim</span></a><br/>
}.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="proper_addvP"><span class="id" title="definition">proper_addvP</span></a> (<span class="id" title="var">S</span> : <a class="idref" href="mathcomp.algebra.vector.html#proper_addv_expr"><span class="id" title="record">proper_addv_expr</span></a>) :=<br/>
&nbsp;&nbsp;<span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.vector.html#ProperSumvExpr"><span class="id" title="constructor">ProperSumvExpr</span></a> <span class="id" title="var">_</span> <span class="id" title="var">_</span> <span class="id" title="var">termS</span> := <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.mxalgebra.html#mxsum_spec"><span class="id" title="inductive">mxsum_spec</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">termS</span>.<br/>

<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">proper_addv</span> (<span class="id" title="var">S</span> : <a class="idref" href="mathcomp.algebra.vector.html#proper_addv_expr"><span class="id" title="record">proper_addv_expr</span></a>) :=<br/>
&nbsp;&nbsp;@<a class="idref" href="mathcomp.algebra.vector.html#Sumv"><span class="id" title="constructor">Sumv</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#wrap"><span class="id" title="definition">wrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>)) (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#wrap"><span class="id" title="definition">wrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>)) (<a class="idref" href="mathcomp.algebra.vector.html#proper_addvP"><span class="id" title="definition">proper_addvP</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a>).<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="VectorTheory.SumExpr.Binary"><span class="id" title="section">Binary</span></a>.<br/>
<span class="id" title="keyword">Variables</span> <a name="VectorTheory.SumExpr.Binary.S1"><span class="id" title="variable">S1</span></a> <a name="VectorTheory.SumExpr.Binary.S2"><span class="id" title="variable">S2</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#addv_expr"><span class="id" title="record">addv_expr</span></a>.<br/>
<span class="id" title="keyword">Fact</span> <a name="binary_addv_subproof"><span class="id" title="lemma">binary_addv_subproof</span></a> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxalgebra.html#mxsum_spec"><span class="id" title="inductive">mxsum_spec</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.SumExpr.Binary.S1"><span class="id" title="variable">S1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.SumExpr.Binary.S2"><span class="id" title="variable">S2</span></a>))<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#addv_dim"><span class="id" title="projection">addv_dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.SumExpr.Binary.S1"><span class="id" title="variable">S1</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#b3eea360671e1b32b18a26e15b3aace3"><span class="id" title="notation">+</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#addv_dim"><span class="id" title="projection">addv_dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.SumExpr.Binary.S2"><span class="id" title="variable">S2</span></a>)).<br/>
 <span class="id" title="keyword">Canonical</span> <span class="id" title="var">binary_addv_expr</span> := <a class="idref" href="mathcomp.algebra.vector.html#ProperSumvExpr"><span class="id" title="constructor">ProperSumvExpr</span></a> <a class="idref" href="mathcomp.algebra.vector.html#binary_addv_subproof"><span class="id" title="lemma">binary_addv_subproof</span></a>.<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.SumExpr.Binary"><span class="id" title="section">Binary</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="VectorTheory.SumExpr.Nary"><span class="id" title="section">Nary</span></a>.<br/>
<span class="id" title="keyword">Variables</span> (<a name="VectorTheory.SumExpr.Nary.I"><span class="id" title="variable">I</span></a> : <span class="id" title="keyword">Type</span>) (<a name="VectorTheory.SumExpr.Nary.r"><span class="id" title="variable">r</span></a> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a>) (<a name="VectorTheory.SumExpr.Nary.P"><span class="id" title="variable">P</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a>) (<a name="VectorTheory.SumExpr.Nary.S_"><span class="id" title="variable">S_</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addv_expr"><span class="id" title="record">addv_expr</span></a>).<br/>
<span class="id" title="keyword">Fact</span> <a name="nary_addv_subproof"><span class="id" title="lemma">nary_addv_subproof</span></a> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.mxalgebra.html#mxsum_spec"><span class="id" title="inductive">mxsum_spec</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.SumExpr.Nary.r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.SumExpr.Nary.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.SumExpr.Nary.S_"><span class="id" title="variable">S_</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)))<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.ssreflect.bigop.html#ea7e35bae15685d5cd3430a8e48be02b"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ea7e35bae15685d5cd3430a8e48be02b"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ea7e35bae15685d5cd3430a8e48be02b"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#ea7e35bae15685d5cd3430a8e48be02b"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.SumExpr.Nary.r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.ssreflect.bigop.html#ea7e35bae15685d5cd3430a8e48be02b"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.SumExpr.Nary.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#ea7e35bae15685d5cd3430a8e48be02b"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#addv_dim"><span class="id" title="projection">addv_dim</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.SumExpr.Nary.S_"><span class="id" title="variable">S_</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>))).<br/>
 <span class="id" title="keyword">Canonical</span> <span class="id" title="var">nary_addv_expr</span> := <a class="idref" href="mathcomp.algebra.vector.html#ProperSumvExpr"><span class="id" title="constructor">ProperSumvExpr</span></a> <a class="idref" href="mathcomp.algebra.vector.html#nary_addv_subproof"><span class="id" title="lemma">nary_addv_subproof</span></a>.<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.SumExpr.Nary"><span class="id" title="section">Nary</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="directv_def"><span class="id" title="definition">directv_def</span></a> <span class="id" title="var">S</span> <span class="id" title="keyword">of</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phantom"><span class="id" title="inductive">phantom</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#addv_val"><span class="id" title="projection">addv_val</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a>)) :=<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#addv_dim"><span class="id" title="projection">addv_dim</span></a> <a class="idref" href="mathcomp.algebra.vector.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.vector.html#VectorTheory.SumExpr"><span class="id" title="section">SumExpr</span></a>.<br/>

<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="directvE"><span class="id" title="lemma">directvE</span></a> (<span class="id" title="var">S</span> : <a class="idref" href="mathcomp.algebra.vector.html#addv_expr"><span class="id" title="record">addv_expr</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#addv_dim"><span class="id" title="projection">addv_dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="directvP"><span class="id" title="lemma">directvP</span></a> {<span class="id" title="var">S</span> : <a class="idref" href="mathcomp.algebra.vector.html#proper_addv_expr"><span class="id" title="record">proper_addv_expr</span></a>} : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="directv_trivial"><span class="id" title="lemma">directv_trivial</span></a> <span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> (@<a class="idref" href="mathcomp.algebra.vector.html#trivial_addv"><span class="id" title="definition">trivial_addv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="dimv_sum_leqif"><span class="id" title="lemma">dimv_sum_leqif</span></a> (<span class="id" title="var">S</span> : <a class="idref" href="mathcomp.algebra.vector.html#addv_expr"><span class="id" title="record">addv_expr</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">≤</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#addv_dim"><span class="id" title="projection">addv_dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">?=</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">iff</span></a> <a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="directvEgeq"><span class="id" title="lemma">directvEgeq</span></a> (<span class="id" title="var">S</span> : <a class="idref" href="mathcomp.algebra.vector.html#addv_expr"><span class="id" title="record">addv_expr</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#08fe8636f4b45ae6787c490d19de1366"><span class="id" title="notation">≥</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#addv_dim"><span class="id" title="projection">addv_dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S"><span class="id" title="variable">S</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Section</span> <a name="VectorTheory.BinaryDirect"><span class="id" title="section">BinaryDirect</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="directv_addE"><span class="id" title="lemma">directv_addE</span></a> (<span class="id" title="var">S1</span> <span class="id" title="var">S2</span> : <a class="idref" href="mathcomp.algebra.vector.html#addv_expr"><span class="id" title="record">addv_expr</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S1"><span class="id" title="variable">S1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S2"><span class="id" title="variable">S2</span></a>)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">[&amp;&amp;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S1"><span class="id" title="variable">S1</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S2"><span class="id" title="variable">S2</span></a>)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S1"><span class="id" title="variable">S1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> <a class="idref" href="mathcomp.algebra.vector.html#S2"><span class="id" title="variable">S2</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">]</span></a>%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="directv_addP"><span class="id" title="lemma">directv_addP</span></a> {<span class="id" title="var">U</span> <span class="id" title="var">V</span>} : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0)%<span class="id" title="var">VS</span> (<a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="directv_add_unique"><span class="id" title="lemma">directv_add_unique</span></a> {<span class="id" title="var">U</span> <span class="id" title="var">V</span>} :<br/>
&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<span class="id" title="keyword">∀</span> <span class="id" title="var">u1</span> <span class="id" title="var">u2</span> <span class="id" title="var">v1</span> <span class="id" title="var">v2</span>, <a class="idref" href="mathcomp.algebra.vector.html#u1"><span class="id" title="variable">u1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u2"><span class="id" title="variable">u2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v1"><span class="id" title="variable">v1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v2"><span class="id" title="variable">v2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#u1"><span class="id" title="variable">u1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v1"><span class="id" title="variable">v1</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u2"><span class="id" title="variable">u2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v2"><span class="id" title="variable">v2</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#u1"><span class="id" title="variable">u1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v1"><span class="id" title="variable">v1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#u2"><span class="id" title="variable">u2</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v2"><span class="id" title="variable">v2</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)).<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BinaryDirect"><span class="id" title="section">BinaryDirect</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="VectorTheory.NaryDirect"><span class="id" title="section">NaryDirect</span></a>.<br/>

<br/>
<span class="id" title="keyword">Context</span> {<span class="id" title="var">I</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">P</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a>}.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="directv_sumP"><span class="id" title="lemma">directv_sumP</span></a> {<span class="id" title="var">Us</span> : <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.NaryDirect.I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>} :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<span class="id" title="keyword">∀</span> <span class="id" title="var">i</span>, <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">(</span></a><span class="id" title="var">j</span> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0)%<span class="id" title="var">VS</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="directv_sumE"><span class="id" title="lemma">directv_sumE</span></a> {<span class="id" title="var">Ss</span> : <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.NaryDirect.I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addv_expr"><span class="id" title="record">addv_expr</span></a>} (<span class="id" title="var">xunwrap</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4d70beb460e783df2b7b2ad387c00194"><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.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#Ss"><span class="id" title="variable">Ss</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>))<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4d70beb460e783df2b7b2ad387c00194"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#xunwrap"><span class="id" title="variable">xunwrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#Ss"><span class="id" title="variable">Ss</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>))<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4d70beb460e783df2b7b2ad387c00194"><span class="id" title="notation">]</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#unwrap"><span class="id" title="projection">unwrap</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#Ss"><span class="id" title="variable">Ss</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>))).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="directv_sum_independent"><span class="id" title="lemma">directv_sum_independent</span></a> {<span class="id" title="var">Us</span> : <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.NaryDirect.I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>} :<br/>
&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<span class="id" title="keyword">∀</span> <span class="id" title="var">us</span>,<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><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.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#us"><span class="id" title="variable">us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#us"><span class="id" title="variable">us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><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.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#us"><span class="id" title="variable">us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a>)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="directv_sum_unique"><span class="id" title="lemma">directv_sum_unique</span></a> {<span class="id" title="var">Us</span> : <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.NaryDirect.I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>} :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<span class="id" title="keyword">∀</span> <span class="id" title="var">us</span> <span class="id" title="var">vs</span>,<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><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.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#us"><span class="id" title="variable">us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><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.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vs"><span class="id" title="variable">vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#us"><span class="id" title="variable">us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vs"><span class="id" title="variable">vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#71aa9b4d33ee64c2b31b6cd545727657"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#71aa9b4d33ee64c2b31b6cd545727657"><span class="id" title="notation">∀</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#71aa9b4d33ee64c2b31b6cd545727657"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#71aa9b4d33ee64c2b31b6cd545727657"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#71aa9b4d33ee64c2b31b6cd545727657"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#46e5a4123d46e6b126f7788a77176785"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#us"><span class="id" title="variable">us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vs"><span class="id" title="variable">vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#71aa9b4d33ee64c2b31b6cd545727657"><span class="id" title="notation">]</span></a>)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.NaryDirect.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.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.vector.html#VectorTheory.NaryDirect"><span class="id" title="section">NaryDirect</span></a>.<br/>

<br/>
</div>

<div class="doc">
 Linear span generated by a list of vectors  
</div>
<div class="code">
<span class="id" title="keyword">Lemma</span> <a name="memv_span"><span class="id" title="lemma">memv_span</span></a> <span class="id" title="var">X</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_span1"><span class="id" title="lemma">memv_span1</span></a> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="dim_span"><span class="id" title="lemma">dim_span</span></a> <span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="span_subvP"><span class="id" title="lemma">span_subvP</span></a> {<span class="id" title="var">X</span> <span class="id" title="var">U</span>} : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">}</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="sub_span"><span class="id" title="lemma">sub_span</span></a> <span class="id" title="var">X</span> <span class="id" title="var">Y</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="eq_span"><span class="id" title="lemma">eq_span</span></a> <span class="id" title="var">X</span> <span class="id" title="var">Y</span> : <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">=</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="span_def"><span class="id" title="lemma">span_def</span></a> <span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#span"><span class="id" title="definition">span</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">(</span></a><span class="id" title="var">u</span> <a class="idref" href="mathcomp.algebra.vector.html#a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">]&gt;</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="span_nil"><span class="id" title="lemma">span_nil</span></a> : (<a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#Nil"><span class="id" title="abbreviation">Nil</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="span_seq1"><span class="id" title="lemma">span_seq1</span></a> <span class="id" title="var">v</span> : (<a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">]&gt;</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="span_cons"><span class="id" title="lemma">span_cons</span></a> <span class="id" title="var">v</span> <span class="id" title="var">X</span> : (<a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">::</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">]&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="span_cat"><span class="id" title="lemma">span_cat</span></a> <span class="id" title="var">X</span> <span class="id" title="var">Y</span> : (<a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#2ac9001c05ad5bd2f6d5f68e59f48fbb"><span class="id" title="notation">++</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
</div>

<div class="doc">
 Coordinates function; should perhaps be generalized to nat indices.  
</div>
<div class="code">

<br/>
<span class="id" title="keyword">Definition</span> <a name="coord_expanded_def"><span class="id" title="definition">coord_expanded_def</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>) <span class="id" title="var">i</span> <span class="id" title="var">v</span> :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#v2r"><span class="id" title="definition">v2r</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c6b777e699b0b93592b907e7450465e"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c6b777e699b0b93592b907e7450465e"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.mxalgebra.html#pinvmx"><span class="id" title="definition">pinvmx</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#b2mx"><span class="id" title="definition">b2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a>)) 0 <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="coord"><span class="id" title="definition">coord</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#locked_with"><span class="id" title="definition">locked_with</span></a> <a class="idref" href="mathcomp.algebra.vector.html#span_key"><span class="id" title="lemma">span_key</span></a> <a class="idref" href="mathcomp.algebra.vector.html#coord_expanded_def"><span class="id" title="definition">coord_expanded_def</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">coord_unlockable</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">unlockable</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">fun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#coord"><span class="id" title="definition">coord</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Fact</span> <a name="coord_is_scalar"><span class="id" title="lemma">coord_is_scalar</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>) <span class="id" title="var">i</span> : <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.vector.html#coord"><span class="id" title="definition">coord</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>).<br/>
 <span class="id" title="keyword">Canonical</span> <span class="id" title="var">coord_addidive</span> <span class="id" title="var">n</span> <span class="id" title="var">Xn</span> <span class="id" title="var">i</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.vector.html#coord_is_scalar"><span class="id" title="lemma">coord_is_scalar</span></a> <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Xn"><span class="id" title="variable">Xn</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>).<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">coord_linear</span> <span class="id" title="var">n</span> <span class="id" title="var">Xn</span> <span class="id" title="var">i</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.vector.html#coord_is_scalar"><span class="id" title="lemma">coord_is_scalar</span></a> <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Xn"><span class="id" title="variable">Xn</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="coord_span"><span class="id" title="lemma">coord_span</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>) <span class="id" title="var">v</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#span"><span class="id" title="definition">span</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#640778742e86daa97d31c9911c679af3"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#640778742e86daa97d31c9911c679af3"><span class="id" title="notation">sum_i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#coord"><span class="id" title="definition">coord</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">_i</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="coord0"><span class="id" title="lemma">coord0</span></a> <span class="id" title="var">i</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.vector.html#coord"><span class="id" title="definition">coord</span></a> <a class="idref" href="mathcomp.ssreflect.tuple.html#b96c5fac4ea7ac478a42dc9d76e9dbb3"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#b96c5fac4ea7ac478a42dc9d76e9dbb3"><span class="id" title="notation">tuple</span></a> 0<a class="idref" href="mathcomp.ssreflect.tuple.html#b96c5fac4ea7ac478a42dc9d76e9dbb3"><span class="id" title="notation">]</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/>

<br/>
</div>

<div class="doc">
 Free generator sequences.  
</div>
<div class="code">

<br/>
<span class="id" title="keyword">Lemma</span> <a name="nil_free"><span class="id" title="lemma">nil_free</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#Nil"><span class="id" title="abbreviation">Nil</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="seq1_free"><span class="id" title="lemma">seq1_free</span></a> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="perm_free"><span class="id" title="lemma">perm_free</span></a> <span class="id" title="var">X</span> <span class="id" title="var">Y</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#perm_eq"><span class="id" title="definition">perm_eq</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="free_directv"><span class="id" title="lemma">free_directv</span></a> <span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a>0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">notin</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">(</span></a><span class="id" title="var">v</span> <a class="idref" href="mathcomp.algebra.vector.html#a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">]&gt;</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="free_not0"><span class="id" title="lemma">free_not0</span></a> <span class="id" title="var">v</span> <span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="freeP"><span class="id" title="lemma">freeP</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>) :  <br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<span class="id" title="keyword">∀</span> <span class="id" title="var">k</span>, <a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">_i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><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.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a>)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="coord_free"><span class="id" title="lemma">coord_free</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>) (<span class="id" title="var">i</span> <span class="id" title="var">j</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#9de6d53cccc27f521f3ab56b38159140"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#9de6d53cccc27f521f3ab56b38159140"><span class="id" title="notation">I_n</span></a>) :  <br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#coord"><span class="id" title="definition">coord</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.algebra.vector.html#j"><span class="id" title="variable">j</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">_i</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.vector.html#j"><span class="id" title="variable">j</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="coord_sum_free"><span class="id" title="lemma">coord_sum_free</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>) <span class="id" title="var">k</span> <span class="id" title="var">j</span> : <br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#coord"><span class="id" title="definition">coord</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.algebra.vector.html#j"><span class="id" title="variable">j</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">_i</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.vector.html#j"><span class="id" title="variable">j</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="cat_free"><span class="id" title="lemma">cat_free</span></a> <span class="id" title="var">X</span> <span class="id" title="var">Y</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#2ac9001c05ad5bd2f6d5f68e59f48fbb"><span class="id" title="notation">++</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">[&amp;&amp;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="catl_free"><span class="id" title="lemma">catl_free</span></a> <span class="id" title="var">Y</span> <span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#2ac9001c05ad5bd2f6d5f68e59f48fbb"><span class="id" title="notation">++</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="catr_free"><span class="id" title="lemma">catr_free</span></a> <span class="id" title="var">X</span> <span class="id" title="var">Y</span> : <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#2ac9001c05ad5bd2f6d5f68e59f48fbb"><span class="id" title="notation">++</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="filter_free"><span class="id" title="lemma">filter_free</span></a> <span class="id" title="var">p</span> <span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#filter"><span class="id" title="definition">filter</span></a> <a class="idref" href="mathcomp.algebra.vector.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="free_cons"><span class="id" title="lemma">free_cons</span></a> <span class="id" title="var">v</span> <span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">::</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">notin</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="freeE"><span class="id" title="lemma">freeE</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#924e46d1120f21a5b355c376b609abe3"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#924e46d1120f21a5b355c376b609abe3"><span class="id" title="notation">∀</span></a> <span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#924e46d1120f21a5b355c376b609abe3"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#9de6d53cccc27f521f3ab56b38159140"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#9de6d53cccc27f521f3ab56b38159140"><span class="id" title="notation">I_n</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#46e5a4123d46e6b126f7788a77176785"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">_i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">notin</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#drop"><span class="id" title="definition">drop</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span><a class="idref" href="mathcomp.ssreflect.fintype.html#924e46d1120f21a5b355c376b609abe3"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="freeNE"><span class="id" title="lemma">freeNE</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~</span></a> <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#a843dcbb9dc2e69b147054d3e1465e78"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#a843dcbb9dc2e69b147054d3e1465e78"><span class="id" title="notation">∃</span></a> <span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#a843dcbb9dc2e69b147054d3e1465e78"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#9de6d53cccc27f521f3ab56b38159140"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#9de6d53cccc27f521f3ab56b38159140"><span class="id" title="notation">I_n</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#46e5a4123d46e6b126f7788a77176785"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">_i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#drop"><span class="id" title="definition">drop</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span><a class="idref" href="mathcomp.ssreflect.fintype.html#a843dcbb9dc2e69b147054d3e1465e78"><span class="id" title="notation">]</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="free_uniq"><span class="id" title="lemma">free_uniq</span></a> <span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#uniq"><span class="id" title="definition">uniq</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="free_span"><span class="id" title="lemma">free_span</span></a> <span class="id" title="var">X</span> <span class="id" title="var">v</span> (<span class="id" title="var">sumX</span> := <span class="id" title="keyword">fun</span> <span class="id" title="var">k</span> ⇒ <a class="idref" href="mathcomp.algebra.ssralg.html#c9afba1af653123a1dddfe925d2b3ab3"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c9afba1af653123a1dddfe925d2b3ab3"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c9afba1af653123a1dddfe925d2b3ab3"><span class="id" title="notation">(</span></a><span class="id" title="var">x</span> <a class="idref" href="mathcomp.algebra.ssralg.html#c9afba1af653123a1dddfe925d2b3ab3"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c9afba1af653123a1dddfe925d2b3ab3"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a>) :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">{</span></a><span class="id" title="var">k</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#sumX"><span class="id" title="variable">sumX</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">&amp;</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">k1</span>, <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#sumX"><span class="id" title="variable">sumX</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k1"><span class="id" title="variable">k1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k1"><span class="id" title="variable">k1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="linear_of_free"><span class="id" title="lemma">linear_of_free</span></a> (<span class="id" title="var">rT</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.vector.html#VectorTheory.K"><span class="id" title="variable">K</span></a>) <span class="id" title="var">X</span> (<span class="id" title="var">fX</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.vector.html#rT"><span class="id" title="variable">rT</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">{</span></a><span class="id" title="var">f</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#697e59dccfd7ad4519680ddb16ef82da"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#697e59dccfd7ad4519680ddb16ef82da"><span class="id" title="notation">linear</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#697e59dccfd7ad4519680ddb16ef82da"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fX"><span class="id" title="variable">fX</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fX"><span class="id" title="variable">fX</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">}</span></a>.<br/>

<br/>
</div>

<div class="doc">
 Subspace bases  
</div>
<div class="code">

<br/>
<span class="id" title="keyword">Lemma</span> <a name="span_basis"><span class="id" title="lemma">span_basis</span></a> <span class="id" title="var">U</span> <span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="basis_free"><span class="id" title="lemma">basis_free</span></a> <span class="id" title="var">U</span> <span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="coord_basis"><span class="id" title="lemma">coord_basis</span></a> <span class="id" title="var">U</span> <span class="id" title="var">n</span> (<span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>) <span class="id" title="var">v</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#640778742e86daa97d31c9911c679af3"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#640778742e86daa97d31c9911c679af3"><span class="id" title="notation">sum_i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#coord"><span class="id" title="definition">coord</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">_i</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="nil_basis"><span class="id" title="lemma">nil_basis</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> 0 (<a class="idref" href="mathcomp.ssreflect.seq.html#Nil"><span class="id" title="abbreviation">Nil</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="seq1_basis"><span class="id" title="lemma">seq1_basis</span></a> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">]&gt;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">[::</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#36229928b54642a4a7da943ccf8f9612"><span class="id" title="notation">]</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="basis_not0"><span class="id" title="lemma">basis_not0</span></a> <span class="id" title="var">x</span> <span class="id" title="var">U</span> <span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="basis_mem"><span class="id" title="lemma">basis_mem</span></a> <span class="id" title="var">x</span> <span class="id" title="var">U</span> <span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="cat_basis"><span class="id" title="lemma">cat_basis</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">X</span> <span class="id" title="var">Y</span> : <br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>) (<a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#2ac9001c05ad5bd2f6d5f68e59f48fbb"><span class="id" title="notation">++</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="size_basis"><span class="id" title="lemma">size_basis</span></a> <span class="id" title="var">U</span> <span class="id" title="var">n</span> (<span class="id" title="var">X</span> : <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>) : <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="basisEdim"><span class="id" title="lemma">basisEdim</span></a> <span class="id" title="var">X</span> <span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="basisEfree"><span class="id" title="lemma">basisEfree</span></a> <span class="id" title="var">X</span> <span class="id" title="var">U</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">[&amp;&amp;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">,</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="perm_basis"><span class="id" title="lemma">perm_basis</span></a> <span class="id" title="var">X</span> <span class="id" title="var">Y</span> <span class="id" title="var">U</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#perm_eq"><span class="id" title="definition">perm_eq</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Y"><span class="id" title="variable">Y</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="vbasisP"><span class="id" title="lemma">vbasisP</span></a> <span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vbasis"><span class="id" title="definition">vbasis</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="vbasis_mem"><span class="id" title="lemma">vbasis_mem</span></a> <span class="id" title="var">v</span> <span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#vbasis"><span class="id" title="definition">vbasis</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="coord_vbasis"><span class="id" title="lemma">coord_vbasis</span></a> <span class="id" title="var">v</span> <span class="id" title="var">U</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b2bfc5b99c28e2c89b336d5f86347706"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#coord"><span class="id" title="definition">coord</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vbasis"><span class="id" title="definition">vbasis</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#vbasis"><span class="id" title="definition">vbasis</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">)`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">_i</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Section</span> <a name="VectorTheory.BigSumBasis"><span class="id" title="section">BigSumBasis</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="VectorTheory.BigSumBasis.I"><span class="id" title="variable">I</span></a> : <a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Exports.finType"><span class="id" title="abbreviation">finType</span></a>) (<a name="VectorTheory.BigSumBasis.P"><span class="id" title="variable">P</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a>) (<a name="VectorTheory.BigSumBasis.Xs"><span class="id" title="variable">Xs</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.vT"><span class="id" title="variable">vT</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="span_bigcat"><span class="id" title="lemma">span_bigcat</span></a> :<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#cat"><span class="id" title="definition">cat</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#747e2b5d553b2dfe76e024e1f8fb39d1"><span class="id" title="notation">[::]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSumBasis.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSumBasis.Xs"><span class="id" title="variable">Xs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSumBasis.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSumBasis.Xs"><span class="id" title="variable">Xs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="bigcat_free"><span class="id" title="lemma">bigcat_free</span></a> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSumBasis.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSumBasis.Xs"><span class="id" title="variable">Xs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><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.vector.html#VectorTheory.BigSumBasis.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSumBasis.Xs"><span class="id" title="variable">Xs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#free"><span class="id" title="definition">free</span></a> (<a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#cat"><span class="id" title="definition">cat</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#747e2b5d553b2dfe76e024e1f8fb39d1"><span class="id" title="notation">[::]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSumBasis.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSumBasis.Xs"><span class="id" title="variable">Xs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="bigcat_basis"><span class="id" title="lemma">bigcat_basis</span></a> <span class="id" title="var">Us</span> (<span class="id" title="var">U</span> := (<a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSumBasis.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)%<span class="id" title="var">VS</span>) :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><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.vector.html#VectorTheory.BigSumBasis.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>) (<a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSumBasis.Xs"><span class="id" title="variable">Xs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> (<a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#cat"><span class="id" title="definition">cat</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">/</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#747e2b5d553b2dfe76e024e1f8fb39d1"><span class="id" title="notation">[::]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSumBasis.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#8850ee6edf9a388b1213678f3d3ee856"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory.BigSumBasis.Xs"><span class="id" title="variable">Xs</span></a> <a class="idref" href="mathcomp.algebra.vector.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.vector.html#VectorTheory.BigSumBasis"><span class="id" title="section">BigSumBasis</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#VectorTheory"><span class="id" title="section">VectorTheory</span></a>.<br/>

<br/>
<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">subvv</span>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="directv"><span class="id" title="abbreviation">directv</span></a> <span class="id" title="var">S</span> := (<a class="idref" href="mathcomp.algebra.vector.html#directv_def"><span class="id" title="definition">directv_def</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phantom"><span class="id" title="constructor">Phantom</span></a> <span class="id" title="var">_</span> <span class="id" title="var">S</span>%<span class="id" title="var">VS</span>)).<br/>

<br/>
</div>

<div class="doc">
 Linear functions over a vectType  
</div>
<div class="code">
<span class="id" title="keyword">Section</span> <a name="LfunDefs"><span class="id" title="section">LfunDefs</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="LfunDefs.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/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">aT</span> <span class="id" title="var">vT</span> <span class="id" title="var">rT</span> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunDefs.R"><span class="id" title="variable">R</span></a>.<br/>

<br/>
<span class="id" title="keyword">Fact</span> <a name="lfun_key"><span class="id" title="lemma">lfun_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.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="fun_of_lfun_def"><span class="id" title="definition">fun_of_lfun_def</span></a> <span class="id" title="var">aT</span> <span class="id" title="var">rT</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) :=<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#r2v"><span class="id" title="definition">r2v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">o</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.vector.html#f2mx"><span class="id" title="definition">f2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v2r"><span class="id" title="definition">v2r</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="fun_of_lfun"><span class="id" title="definition">fun_of_lfun</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#locked_with"><span class="id" title="definition">locked_with</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_key"><span class="id" title="lemma">lfun_key</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fun_of_lfun_def"><span class="id" title="definition">fun_of_lfun_def</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fun_of_lfun_unlockable</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">unlockable</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">fun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fun_of_lfun"><span class="id" title="definition">fun_of_lfun</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">]</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="linfun_def"><span class="id" title="definition">linfun_def</span></a> <span class="id" title="var">aT</span> <span class="id" title="var">rT</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#aT"><span class="id" title="variable">aT</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#rT"><span class="id" title="variable">rT</span></a>) :=<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#Hom"><span class="id" title="constructor">Vector.Hom</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.vector.html#v2r"><span class="id" title="definition">v2r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#r2v"><span class="id" title="definition">r2v</span></a>)).<br/>
<span class="id" title="keyword">Definition</span> <a name="linfun"><span class="id" title="definition">linfun</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#locked_with"><span class="id" title="definition">locked_with</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_key"><span class="id" title="lemma">lfun_key</span></a> <a class="idref" href="mathcomp.algebra.vector.html#linfun_def"><span class="id" title="definition">linfun_def</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">linfun_unlockable</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">unlockable</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">fun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#linfun"><span class="id" title="definition">linfun</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="id_lfun"><span class="id" title="definition">id_lfun</span></a> <span class="id" title="var">vT</span> := @<a class="idref" href="mathcomp.algebra.vector.html#linfun"><span class="id" title="definition">linfun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vT"><span class="id" title="variable">vT</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vT"><span class="id" title="variable">vT</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#idfun"><span class="id" title="abbreviation">idfun</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="comp_lfun"><span class="id" title="definition">comp_lfun</span></a> <span class="id" title="var">aT</span> <span class="id" title="var">vT</span> <span class="id" title="var">rT</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">g</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) :=<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#linfun"><span class="id" title="definition">linfun</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#fun_of_lfun"><span class="id" title="definition">fun_of_lfun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fun_of_lfun"><span class="id" title="definition">fun_of_lfun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a>).<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#LfunDefs"><span class="id" title="section">LfunDefs</span></a>.<br/>

<br/>
<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.vector.html#fun_of_lfun"><span class="id" title="definition">fun_of_lfun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fun_of_lfun"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fun_of_lfun"><span class="id" title="definition">Vector.hom</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fun_of_lfun"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fun_of_lfun"><span class="id" title="definition">Funclass</span></a>.<br/>
<span class="id" title="keyword">Notation</span> <a name="9c5859a8d2fadc014a07818a2f27d0e9"><span class="id" title="notation">&quot;</span></a>\1" := (@<a class="idref" href="mathcomp.algebra.vector.html#id_lfun"><span class="id" title="definition">id_lfun</span></a> <span class="id" title="var">_</span> <span class="id" title="var">_</span>) : <span class="id" title="var">lfun_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">&quot;</span></a>f \o g" := (<a class="idref" href="mathcomp.algebra.vector.html#comp_lfun"><span class="id" title="definition">comp_lfun</span></a> <span class="id" title="var">f</span> <span class="id" title="var">g</span>) : <span class="id" title="var">lfun_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="LfunVspaceDefs"><span class="id" title="section">LfunVspaceDefs</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="LfunVspaceDefs.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>.<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">aT</span> <span class="id" title="var">rT</span> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunVspaceDefs.K"><span class="id" title="variable">K</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="inv_lfun"><span class="id" title="definition">inv_lfun</span></a> <span class="id" title="var">aT</span> <span class="id" title="var">rT</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) := <a class="idref" href="mathcomp.algebra.vector.html#Hom"><span class="id" title="constructor">Vector.Hom</span></a> (<a class="idref" href="mathcomp.algebra.mxalgebra.html#pinvmx"><span class="id" title="definition">pinvmx</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f2mx"><span class="id" title="definition">f2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>)).<br/>
<span class="id" title="keyword">Definition</span> <a name="lker"><span class="id" title="definition">lker</span></a> <span class="id" title="var">aT</span> <span class="id" title="var">rT</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) := <a class="idref" href="mathcomp.algebra.vector.html#mx2vs"><span class="id" title="definition">mx2vs</span></a> (<a class="idref" href="mathcomp.algebra.mxalgebra.html#kermx"><span class="id" title="definition">kermx</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f2mx"><span class="id" title="definition">f2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>)).<br/>
<span class="id" title="keyword">Fact</span> <a name="lfun_img_key"><span class="id" title="lemma">lfun_img_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.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="lfun_img_def"><span class="id" title="definition">lfun_img_def</span></a> <span class="id" title="var">aT</span> <span class="id" title="var">rT</span> <span class="id" title="var">f</span> (<span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>) : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a> :=<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#mx2vs"><span class="id" title="definition">mx2vs</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#9c6b777e699b0b93592b907e7450465e"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.algebra.matrix.html#9c6b777e699b0b93592b907e7450465e"><span class="id" title="notation">m</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f2mx"><span class="id" title="definition">f2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>).<br/>
<span class="id" title="keyword">Definition</span> <a name="lfun_img"><span class="id" title="definition">lfun_img</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#locked_with"><span class="id" title="definition">locked_with</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_img_key"><span class="id" title="lemma">lfun_img_key</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_img_def"><span class="id" title="definition">lfun_img_def</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lfun_img_unlockable</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">unlockable</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">fun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_img"><span class="id" title="definition">lfun_img</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">]</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="lfun_preim"><span class="id" title="definition">lfun_preim</span></a> <span class="id" title="var">aT</span> <span class="id" title="var">rT</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) <span class="id" title="var">W</span> :=<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#lfun_img"><span class="id" title="definition">lfun_img</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#inv_lfun"><span class="id" title="definition">inv_lfun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>) (<a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_img"><span class="id" title="definition">lfun_img</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#LfunVspaceDefs"><span class="id" title="section">LfunVspaceDefs</span></a>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="517f88b2f002b4e1dbd5bb3edaded374"><span class="id" title="notation">&quot;</span></a>f ^-1" := (<a class="idref" href="mathcomp.algebra.vector.html#inv_lfun"><span class="id" title="definition">inv_lfun</span></a> <span class="id" title="var">f</span>) : <span class="id" title="var">lfun_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">&quot;</span></a>f @: U" := (<a class="idref" href="mathcomp.algebra.vector.html#lfun_img"><span class="id" title="definition">lfun_img</span></a> <span class="id" title="var">f</span>%<span class="id" title="var">VF</span>%<span class="id" title="var">R</span> <span class="id" title="var">U</span>) (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 24) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="44829b34346d22907f726f49ab851da1"><span class="id" title="notation">&quot;</span></a>f @^-1: W" := (<a class="idref" href="mathcomp.algebra.vector.html#lfun_preim"><span class="id" title="definition">lfun_preim</span></a> <span class="id" title="var">f</span>%<span class="id" title="var">VF</span>%<span class="id" title="var">R</span> <span class="id" title="var">W</span>) (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 24) : <span class="id" title="var">vspace_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="limg"><span class="id" title="abbreviation">limg</span></a> <span class="id" title="var">f</span> := (<a class="idref" href="mathcomp.algebra.vector.html#lfun_img"><span class="id" title="definition">lfun_img</span></a> <span class="id" title="var">f</span> <a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a>).<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="LfunZmodType"><span class="id" title="section">LfunZmodType</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="LfunZmodType.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>) (<a name="LfunZmodType.aT"><span class="id" title="variable">aT</span></a> <a name="LfunZmodType.rT"><span class="id" title="variable">rT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#R"><span class="id" title="variable">R</span></a>).<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">f</span> <span class="id" title="var">g</span> <span class="id" title="var">h</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lfun_eqMixin</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#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">eqMixin</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">&lt;:]</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lfun_eqType</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.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_eqMixin"><span class="id" title="definition">lfun_eqMixin</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="lfun_choiceMixin"><span class="id" title="definition">lfun_choiceMixin</span></a> := <a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">choiceMixin</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">&lt;:]</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lfun_choiceType</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.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_choiceMixin"><span class="id" title="definition">lfun_choiceMixin</span></a>.<br/>

<br/>
<span class="id" title="keyword">Fact</span> <a name="lfun_is_linear"><span class="id" title="lemma">lfun_is_linear</span></a> <span class="id" title="var">f</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.vector.html#f"><span class="id" title="variable">f</span></a>.<br/>
 <span class="id" title="keyword">Canonical</span> <span class="id" title="var">lfun_additive</span> <span class="id" title="var">f</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.vector.html#lfun_is_linear"><span class="id" title="lemma">lfun_is_linear</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>).<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lfun_linear</span> <span class="id" title="var">f</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.vector.html#lfun_is_linear"><span class="id" title="lemma">lfun_is_linear</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="lfunE"><span class="id" title="lemma">lfunE</span></a> (<span class="id" title="var">ff</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#697e59dccfd7ad4519680ddb16ef82da"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#697e59dccfd7ad4519680ddb16ef82da"><span class="id" title="notation">linear</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.aT"><span class="id" title="variable">aT</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#697e59dccfd7ad4519680ddb16ef82da"><span class="id" title="notation">}</span></a>) : <a class="idref" href="mathcomp.algebra.vector.html#linfun"><span class="id" title="definition">linfun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ff"><span class="id" title="variable">ff</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ff"><span class="id" title="variable">ff</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="fun_of_lfunK"><span class="id" title="lemma">fun_of_lfunK</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> (@<a class="idref" href="mathcomp.algebra.vector.html#fun_of_lfun"><span class="id" title="definition">fun_of_lfun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.aT"><span class="id" title="variable">aT</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.rT"><span class="id" title="variable">rT</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#linfun"><span class="id" title="definition">linfun</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="lfunP"><span class="id" title="lemma">lfunP</span></a> <span class="id" title="var">f</span> <span class="id" title="var">g</span> : <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#df1ced36fc33ce188051218bca314374"><span class="id" title="notation">↔</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="zero_lfun"><span class="id" title="definition">zero_lfun</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#linfun"><span class="id" title="definition">linfun</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#bdc5ff84949fb09e2844ec63fb6a6940"><span class="id" title="notation">\0</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="add_lfun"><span class="id" title="definition">add_lfun</span></a> <span class="id" title="var">f</span> <span class="id" title="var">g</span> := <a class="idref" href="mathcomp.algebra.vector.html#linfun"><span class="id" title="definition">linfun</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#92c2de7e7e93a10a858367cf5d49cf1a"><span class="id" title="notation">\+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a>).<br/>
<span class="id" title="keyword">Definition</span> <a name="opp_lfun"><span class="id" title="definition">opp_lfun</span></a> <span class="id" title="var">f</span> := <a class="idref" href="mathcomp.algebra.vector.html#linfun"><span class="id" title="definition">linfun</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#9fdf1a446ceec36bc97cce801a3ef3f2"><span class="id" title="notation">-%</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9fdf1a446ceec36bc97cce801a3ef3f2"><span class="id" title="notation">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>).<br/>

<br/>
<span class="id" title="keyword">Fact</span> <a name="lfun_addA"><span class="id" title="lemma">lfun_addA</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#associative"><span class="id" title="definition">associative</span></a> <a class="idref" href="mathcomp.algebra.vector.html#add_lfun"><span class="id" title="definition">add_lfun</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Fact</span> <a name="lfun_addC"><span class="id" title="lemma">lfun_addC</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#commutative"><span class="id" title="definition">commutative</span></a> <a class="idref" href="mathcomp.algebra.vector.html#add_lfun"><span class="id" title="definition">add_lfun</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Fact</span> <a name="lfun_add0"><span class="id" title="lemma">lfun_add0</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_id"><span class="id" title="definition">left_id</span></a> <a class="idref" href="mathcomp.algebra.vector.html#zero_lfun"><span class="id" title="definition">zero_lfun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#add_lfun"><span class="id" title="definition">add_lfun</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="lfun_addN"><span class="id" title="lemma">lfun_addN</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_inverse"><span class="id" title="definition">left_inverse</span></a> <a class="idref" href="mathcomp.algebra.vector.html#zero_lfun"><span class="id" title="definition">zero_lfun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#opp_lfun"><span class="id" title="definition">opp_lfun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#add_lfun"><span class="id" title="definition">add_lfun</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Definition</span> <a name="lfun_zmodMixin"><span class="id" title="definition">lfun_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.vector.html#lfun_addA"><span class="id" title="lemma">lfun_addA</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_addC"><span class="id" title="lemma">lfun_addC</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_add0"><span class="id" title="lemma">lfun_add0</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_addN"><span class="id" title="lemma">lfun_addN</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lfun_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.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_zmodMixin"><span class="id" title="definition">lfun_zmodMixin</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="zero_lfunE"><span class="id" title="lemma">zero_lfunE</span></a> <span class="id" title="var">x</span> : (0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="add_lfunE"><span class="id" title="lemma">add_lfunE</span></a> <span class="id" title="var">f</span> <span class="id" title="var">g</span> <span class="id" title="var">x</span> : (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a>.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="opp_lfunE"><span class="id" title="lemma">opp_lfunE</span></a> <span class="id" title="var">f</span> <span class="id" title="var">x</span> : (<a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a>.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="sum_lfunE"><span class="id" title="lemma">sum_lfunE</span></a> <span class="id" title="var">I</span> (<span class="id" title="var">r</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a>) (<span class="id" title="var">P</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a>) (<span class="id" title="var">fs</span> : <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) <span class="id" title="var">x</span> :<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fs"><span class="id" title="variable">fs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fs"><span class="id" title="variable">fs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#LfunZmodType"><span class="id" title="section">LfunZmodType</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="LfunVectType"><span class="id" title="section">LfunVectType</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="LfunVectType.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>) (<a name="LfunVectType.aT"><span class="id" title="variable">aT</span></a> <a name="LfunVectType.rT"><span class="id" title="variable">rT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#R"><span class="id" title="variable">R</span></a>).<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunVectType.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunVectType.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="scale_lfun"><span class="id" title="definition">scale_lfun</span></a> <span class="id" title="var">k</span> <span class="id" title="var">f</span> := <a class="idref" href="mathcomp.algebra.vector.html#linfun"><span class="id" title="definition">linfun</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2dc3300d5161dd2922dafd7c5ed2a5da"><span class="id" title="notation">\*:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>).<br/>

<br/>
<span class="id" title="keyword">Fact</span> <a name="lfun_scaleA"><span class="id" title="lemma">lfun_scaleA</span></a> <span class="id" title="var">k1</span> <span class="id" title="var">k2</span> <span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#k1"><span class="id" title="variable">k1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">*:</span></a><a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">l</span></a> <a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#k2"><span class="id" title="variable">k2</span></a> <a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">*:</span></a><a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">l</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#k1"><span class="id" title="variable">k1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k2"><span class="id" title="variable">k2</span></a><a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">*:</span></a><a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">l</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Fact</span> <a name="lfun_scale1"><span class="id" title="lemma">lfun_scale1</span></a> <span class="id" title="var">f</span> : 1 <a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">*:</span></a><a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">l</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Fact</span> <a name="lfun_scaleDr"><span class="id" title="lemma">lfun_scaleDr</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="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">*:</span></a><a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">l</span></a> <a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f1"><span class="id" title="variable">f1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f2"><span class="id" title="variable">f2</span></a><a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">*:</span></a><a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">l</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f1"><span class="id" title="variable">f1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">*:</span></a><a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">l</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f2"><span class="id" title="variable">f2</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Fact</span> <a name="lfun_scaleDl"><span class="id" title="lemma">lfun_scaleDl</span></a> <span class="id" title="var">f</span> <span class="id" title="var">k1</span> <span class="id" title="var">k2</span> : <a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#k1"><span class="id" title="variable">k1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k2"><span class="id" title="variable">k2</span></a><a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">*:</span></a><a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">l</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k1"><span class="id" title="variable">k1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">*:</span></a><a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">l</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k2"><span class="id" title="variable">k2</span></a> <a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">*:</span></a><a class="idref" href="mathcomp.algebra.vector.html#d9efbba50c128860a9ca2044461c6235"><span class="id" title="notation">l</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Definition</span> <a name="lfun_lmodMixin"><span class="id" title="definition">lfun_lmodMixin</span></a> := <br/>
&nbsp;&nbsp;<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.vector.html#lfun_scaleA"><span class="id" title="lemma">lfun_scaleA</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_scale1"><span class="id" title="lemma">lfun_scale1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_scaleDr"><span class="id" title="lemma">lfun_scaleDr</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_scaleDl"><span class="id" title="lemma">lfun_scaleDl</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lfun_lmodType</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.Lmodule.Exports.LmodType"><span class="id" title="abbreviation">LmodType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunVectType.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunVectType.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunVectType.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_lmodMixin"><span class="id" title="definition">lfun_lmodMixin</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="scale_lfunE"><span class="id" title="lemma">scale_lfunE</span></a> <span class="id" title="var">k</span> <span class="id" title="var">f</span> <span class="id" title="var">x</span> : (<a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a>.  <br/>

<br/>
</div>

<div class="doc">
 GG: exists (Vector.Hom \o vec_mx) fails in the proof below in 8.3,     
 probably because of incomplete type unification. Will it work in 8.4?   
</div>
<div class="code">
<span class="id" title="keyword">Fact</span> <a name="lfun_vect_iso"><span class="id" title="lemma">lfun_vect_iso</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#axiom"><span class="id" title="abbreviation">Vector.axiom</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#dim"><span class="id" title="definition">Vector.dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunVectType.aT"><span class="id" title="variable">aT</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#697e4695610f677ae98a52af81f779d2"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dim"><span class="id" title="definition">Vector.dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunVectType.rT"><span class="id" title="variable">rT</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunVectType.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunVectType.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="lfun_vectMixin"><span class="id" title="definition">lfun_vectMixin</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#VectMixin"><span class="id" title="abbreviation">VectMixin</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_vect_iso"><span class="id" title="lemma">lfun_vect_iso</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lfun_vectType</span> := <a class="idref" href="mathcomp.algebra.vector.html#VectType"><span class="id" title="abbreviation">VectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunVectType.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunVectType.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunVectType.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_vectMixin"><span class="id" title="definition">lfun_vectMixin</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#LfunVectType"><span class="id" title="section">LfunVectType</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="CompLfun"><span class="id" title="section">CompLfun</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="CompLfun.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>) (<a name="CompLfun.wT"><span class="id" title="variable">wT</span></a> <a name="CompLfun.aT"><span class="id" title="variable">aT</span></a> <a name="CompLfun.vT"><span class="id" title="variable">vT</span></a> <a name="CompLfun.rT"><span class="id" title="variable">rT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#R"><span class="id" title="variable">R</span></a>).<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#CompLfun.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#CompLfun.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">g</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#CompLfun.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#CompLfun.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">h</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#CompLfun.wT"><span class="id" title="variable">wT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#CompLfun.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="id_lfunE"><span class="id" title="lemma">id_lfunE</span></a> <span class="id" title="var">u</span>: <a class="idref" href="mathcomp.algebra.vector.html#9c5859a8d2fadc014a07818a2f27d0e9"><span class="id" title="notation">\1</span></a>%<span class="id" title="var">VF</span> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#CompLfun.aT"><span class="id" title="variable">aT</span></a>.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="comp_lfunE"><span class="id" title="lemma">comp_lfunE</span></a> <span class="id" title="var">f</span> <span class="id" title="var">g</span> <span class="id" title="var">u</span> : (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a>)%<span class="id" title="var">VF</span> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a>).  <br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="comp_lfunA"><span class="id" title="lemma">comp_lfunA</span></a> <span class="id" title="var">f</span> <span class="id" title="var">g</span> <span class="id" title="var">h</span> : (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#h"><span class="id" title="variable">h</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#h"><span class="id" title="variable">h</span></a>)%<span class="id" title="var">VF</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="comp_lfun1l"><span class="id" title="lemma">comp_lfun1l</span></a> <span class="id" title="var">f</span> : (<a class="idref" href="mathcomp.algebra.vector.html#9c5859a8d2fadc014a07818a2f27d0e9"><span class="id" title="notation">\1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>)%<span class="id" title="var">VF</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="comp_lfun1r"><span class="id" title="lemma">comp_lfun1r</span></a> <span class="id" title="var">f</span> : (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9c5859a8d2fadc014a07818a2f27d0e9"><span class="id" title="notation">\1</span></a>)%<span class="id" title="var">VF</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="comp_lfun0l"><span class="id" title="lemma">comp_lfun0l</span></a> <span class="id" title="var">g</span> : (0 <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a>)%<span class="id" title="var">VF</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#CompLfun.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#CompLfun.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="comp_lfun0r"><span class="id" title="lemma">comp_lfun0r</span></a> <span class="id" title="var">f</span> : (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> 0)%<span class="id" title="var">VF</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#CompLfun.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#CompLfun.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="comp_lfunDl"><span class="id" title="lemma">comp_lfunDl</span></a> <span class="id" title="var">f1</span> <span class="id" title="var">f2</span> <span class="id" title="var">g</span> : (<a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f1"><span class="id" title="variable">f1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f2"><span class="id" title="variable">f2</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f1"><span class="id" title="variable">f1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2"><span class="id" title="variable">f2</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">VF</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="comp_lfunDr"><span class="id" title="lemma">comp_lfunDr</span></a> <span class="id" title="var">f</span> <span class="id" title="var">g1</span> <span class="id" title="var">g2</span> : (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#g1"><span class="id" title="variable">g1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g2"><span class="id" title="variable">g2</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g1"><span class="id" title="variable">g1</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g2"><span class="id" title="variable">g2</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">VF</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="comp_lfunNl"><span class="id" title="lemma">comp_lfunNl</span></a> <span class="id" title="var">f</span> <span class="id" title="var">g</span> : (<a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">VF</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="comp_lfunNr"><span class="id" title="lemma">comp_lfunNr</span></a> <span class="id" title="var">f</span> <span class="id" title="var">g</span> : (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">VF</span>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#CompLfun"><span class="id" title="section">CompLfun</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="lfun_simp"><span class="id" title="definition">lfun_simp</span></a> :=<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#comp_lfunE"><span class="id" title="lemma">comp_lfunE</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#scale_lfunE"><span class="id" title="lemma">scale_lfunE</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#opp_lfunE"><span class="id" title="lemma">opp_lfunE</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#add_lfunE"><span class="id" title="lemma">add_lfunE</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#sum_lfunE"><span class="id" title="lemma">sum_lfunE</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfunE"><span class="id" title="lemma">lfunE</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="ScaleCompLfun"><span class="id" title="section">ScaleCompLfun</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="ScaleCompLfun.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>) (<a name="ScaleCompLfun.aT"><span class="id" title="variable">aT</span></a> <a name="ScaleCompLfun.vT"><span class="id" title="variable">vT</span></a> <a name="ScaleCompLfun.rT"><span class="id" title="variable">rT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#R"><span class="id" title="variable">R</span></a>).<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#ScaleCompLfun.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ScaleCompLfun.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">g</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#ScaleCompLfun.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ScaleCompLfun.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="comp_lfunZl"><span class="id" title="lemma">comp_lfunZl</span></a> <span class="id" title="var">k</span> <span class="id" title="var">f</span> <span class="id" title="var">g</span> : (<a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a>)%<span class="id" title="var">VF</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="comp_lfunZr"><span class="id" title="lemma">comp_lfunZr</span></a> <span class="id" title="var">k</span> <span class="id" title="var">f</span> <span class="id" title="var">g</span> : (<a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">VF</span>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#ScaleCompLfun"><span class="id" title="section">ScaleCompLfun</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="LinearImage"><span class="id" title="section">LinearImage</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="LinearImage.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="LinearImage.aT"><span class="id" title="variable">aT</span></a> <a name="LinearImage.rT"><span class="id" title="variable">rT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a>).<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">f</span> <span class="id" title="var">g</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LinearImage.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinearImage.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">U</span> <span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinearImage.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">W</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinearImage.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="limgS"><span class="id" title="lemma">limgS</span></a> <span class="id" title="var">f</span> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="limg_line"><span class="id" title="lemma">limg_line</span></a> <span class="id" title="var">f</span> <span class="id" title="var">v</span> : (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">]&gt;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">]&gt;</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="limg0"><span class="id" title="lemma">limg0</span></a> <span class="id" title="var">f</span> : (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0)%<span class="id" title="var">VS</span>.  <br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_img"><span class="id" title="lemma">memv_img</span></a> <span class="id" title="var">f</span> <span class="id" title="var">v</span> <span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_imgP"><span class="id" title="lemma">memv_imgP</span></a> <span class="id" title="var">f</span> <span class="id" title="var">w</span> <span class="id" title="var">U</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">u</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a>) (<a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="lim0g"><span class="id" title="lemma">lim0g</span></a> <span class="id" title="var">U</span> : (0 <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinearImage.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="eq_in_limg"><span class="id" title="lemma">eq_in_limg</span></a> <span class="id" title="var">V</span> <span class="id" title="var">f</span> <span class="id" title="var">g</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="limg_add"><span class="id" title="lemma">limg_add</span></a> <span class="id" title="var">f</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_img"><span class="id" title="definition">lfun_img</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">:</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">}</span></a>%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="limg_sum"><span class="id" title="lemma">limg_sum</span></a> <span class="id" title="var">f</span> <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/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a>) <span class="id" title="var">Us</span> :<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="limg_cap"><span class="id" title="lemma">limg_cap</span></a> <span class="id" title="var">f</span> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="limg_bigcap"><span class="id" title="lemma">limg_bigcap</span></a> <span class="id" title="var">f</span> <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/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a>) <span class="id" title="var">Us</span> :<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#3c22b9be9efec34a36f75983de9297bd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#3c22b9be9efec34a36f75983de9297bd"><span class="id" title="notation">bigcap_</span></a><a class="idref" href="mathcomp.algebra.vector.html#3c22b9be9efec34a36f75983de9297bd"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#3c22b9be9efec34a36f75983de9297bd"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.vector.html#3c22b9be9efec34a36f75983de9297bd"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#3c22b9be9efec34a36f75983de9297bd"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#3c22b9be9efec34a36f75983de9297bd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#3c22b9be9efec34a36f75983de9297bd"><span class="id" title="notation">bigcap_</span></a><a class="idref" href="mathcomp.algebra.vector.html#3c22b9be9efec34a36f75983de9297bd"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#3c22b9be9efec34a36f75983de9297bd"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.vector.html#3c22b9be9efec34a36f75983de9297bd"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#3c22b9be9efec34a36f75983de9297bd"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Us"><span class="id" title="variable">Us</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="limg_span"><span class="id" title="lemma">limg_span</span></a> <span class="id" title="var">f</span> <span class="id" title="var">X</span> : (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.algebra.vector.html#dd838ef568fa7ae0628a7427a23d7215"><span class="id" title="notation">&gt;&gt;</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="lfunPn"><span class="id" title="lemma">lfunPn</span></a> <span class="id" title="var">f</span> <span class="id" title="var">g</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">∃</span></a> <span class="id" title="var">u</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a>) (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="inv_lfun_def"><span class="id" title="lemma">inv_lfun_def</span></a> <span class="id" title="var">f</span> : (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#517f88b2f002b4e1dbd5bb3edaded374"><span class="id" title="notation">^-1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>)%<span class="id" title="var">VF</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="limg_lfunVK"><span class="id" title="lemma">limg_lfunVK</span></a> <span class="id" title="var">f</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#limg"><span class="id" title="abbreviation">limg</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#517f88b2f002b4e1dbd5bb3edaded374"><span class="id" title="notation">^-1</span></a>%<span class="id" title="var">VF</span> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="lkerE"><span class="id" title="lemma">lkerE</span></a> <span class="id" title="var">f</span> <span class="id" title="var">U</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_ker"><span class="id" title="lemma">memv_ker</span></a> <span class="id" title="var">f</span> <span class="id" title="var">v</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="eqlfunP"><span class="id" title="lemma">eqlfunP</span></a> <span class="id" title="var">f</span> <span class="id" title="var">g</span> <span class="id" title="var">v</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a>) (<a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a>)).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="eqlfun_inP"><span class="id" title="lemma">eqlfun_inP</span></a> <span class="id" title="var">V</span> <span class="id" title="var">f</span> <span class="id" title="var">g</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a>))%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="limg_ker_compl"><span class="id" title="lemma">limg_ker_compl</span></a> <span class="id" title="var">f</span> <span class="id" title="var">U</span> : (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#946bddca9671fead9ed6e5aece130780"><span class="id" title="notation">:\:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="limg_ker_dim"><span class="id" title="lemma">limg_ker_dim</span></a> <span class="id" title="var">f</span> <span class="id" title="var">U</span> : (<a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#b3eea360671e1b32b18a26e15b3aace3"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">N</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="limg_dim_eq"><span class="id" title="lemma">limg_dim_eq</span></a> <span class="id" title="var">f</span> <span class="id" title="var">U</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="limg_basis_of"><span class="id" title="lemma">limg_basis_of</span></a> <span class="id" title="var">f</span> <span class="id" title="var">U</span> <span class="id" title="var">X</span> :<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#basis_of"><span class="id" title="definition">basis_of</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>) (<a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#X"><span class="id" title="variable">X</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="lker0P"><span class="id" title="lemma">lker0P</span></a> <span class="id" title="var">f</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#injective"><span class="id" title="definition">injective</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>) (<a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">VS</span>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="limg_ker0"><span class="id" title="lemma">limg_ker0</span></a> <span class="id" title="var">f</span> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="eq_limg_ker0"><span class="id" title="lemma">eq_limg_ker0</span></a> <span class="id" title="var">f</span> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="lker0_lfunK"><span class="id" title="lemma">lker0_lfunK</span></a> <span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#517f88b2f002b4e1dbd5bb3edaded374"><span class="id" title="notation">^-1</span></a>%<span class="id" title="var">VF</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="lker0_compVf"><span class="id" title="lemma">lker0_compVf</span></a> <span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#517f88b2f002b4e1dbd5bb3edaded374"><span class="id" title="notation">^-1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9c5859a8d2fadc014a07818a2f27d0e9"><span class="id" title="notation">\1</span></a>)%<span class="id" title="var">VF</span>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#LinearImage"><span class="id" title="section">LinearImage</span></a>.<br/>

<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="FixedSpace"><span class="id" title="section">FixedSpace</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="FixedSpace.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="FixedSpace.vT"><span class="id" title="variable">vT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a>).<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">End</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#FixedSpace.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#FixedSpace.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>).<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="fixedSpace"><span class="id" title="definition">fixedSpace</span></a> <span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#FixedSpace.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9c5859a8d2fadc014a07818a2f27d0e9"><span class="id" title="notation">\1</span></a>%<span class="id" title="var">VF</span>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="fixedSpaceP"><span class="id" title="lemma">fixedSpaceP</span></a> <span class="id" title="var">f</span> <span class="id" title="var">a</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#a"><span class="id" title="variable">a</span></a>) (<a class="idref" href="mathcomp.algebra.vector.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fixedSpace"><span class="id" title="definition">fixedSpace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="fixedSpacesP"><span class="id" title="lemma">fixedSpacesP</span></a> <span class="id" title="var">f</span> <span class="id" title="var">U</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fixedSpace"><span class="id" title="definition">fixedSpace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="fixedSpace_limg"><span class="id" title="lemma">fixedSpace_limg</span></a> <span class="id" title="var">f</span> <span class="id" title="var">U</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fixedSpace"><span class="id" title="definition">fixedSpace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="fixedSpace_id"><span class="id" title="lemma">fixedSpace_id</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#fixedSpace"><span class="id" title="definition">fixedSpace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9c5859a8d2fadc014a07818a2f27d0e9"><span class="id" title="notation">\1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.algebra.vector.html#FixedSpace.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a>%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#FixedSpace"><span class="id" title="section">FixedSpace</span></a>.<br/>

<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="LinAut"><span class="id" title="section">LinAut</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="LinAut.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="LinAut.vT"><span class="id" title="variable">vT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a>) (<a name="LinAut.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">End</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">)</span></a>).<br/>
<span class="id" title="keyword">Hypothesis</span> <a name="LinAut.kerf0"><span class="id" title="variable">kerf0</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinAut.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="lker0_limgf"><span class="id" title="lemma">lker0_limgf</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#limg"><span class="id" title="abbreviation">limg</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinAut.f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fullv"><span class="id" title="definition">fullv</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="lker0_lfunVK"><span class="id" title="lemma">lker0_lfunVK</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinAut.f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#517f88b2f002b4e1dbd5bb3edaded374"><span class="id" title="notation">^-1</span></a>%<span class="id" title="var">VF</span> <a class="idref" href="mathcomp.algebra.vector.html#LinAut.f"><span class="id" title="variable">f</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="lker0_compfV"><span class="id" title="lemma">lker0_compfV</span></a> : (<a class="idref" href="mathcomp.algebra.vector.html#LinAut.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinAut.f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#517f88b2f002b4e1dbd5bb3edaded374"><span class="id" title="notation">^-1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9c5859a8d2fadc014a07818a2f27d0e9"><span class="id" title="notation">\1</span></a>)%<span class="id" title="var">VF</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="lker0_compVKf"><span class="id" title="lemma">lker0_compVKf</span></a> <span class="id" title="var">aT</span> <span class="id" title="var">g</span> : (<a class="idref" href="mathcomp.algebra.vector.html#LinAut.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LinAut.f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#517f88b2f002b4e1dbd5bb3edaded374"><span class="id" title="notation">^-1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">VF</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinAut.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="lker0_compKf"><span class="id" title="lemma">lker0_compKf</span></a> <span class="id" title="var">aT</span> <span class="id" title="var">g</span> : (<a class="idref" href="mathcomp.algebra.vector.html#LinAut.f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#517f88b2f002b4e1dbd5bb3edaded374"><span class="id" title="notation">^-1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LinAut.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">VF</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinAut.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="lker0_compfK"><span class="id" title="lemma">lker0_compfK</span></a> <span class="id" title="var">rT</span> <span class="id" title="var">h</span> : (<a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#h"><span class="id" title="variable">h</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinAut.f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinAut.f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#517f88b2f002b4e1dbd5bb3edaded374"><span class="id" title="notation">^-1</span></a>)%<span class="id" title="var">VF</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#h"><span class="id" title="variable">h</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LinAut.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="lker0_compfVK"><span class="id" title="lemma">lker0_compfVK</span></a> <span class="id" title="var">rT</span> <span class="id" title="var">h</span> : (<a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#h"><span class="id" title="variable">h</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinAut.f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#517f88b2f002b4e1dbd5bb3edaded374"><span class="id" title="notation">^-1</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinAut.f"><span class="id" title="variable">f</span></a>)%<span class="id" title="var">VF</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#h"><span class="id" title="variable">h</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LinAut.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#LinAut"><span class="id" title="section">LinAut</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="LinearImageComp"><span class="id" title="section">LinearImageComp</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="LinearImageComp.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="LinearImageComp.aT"><span class="id" title="variable">aT</span></a> <a name="LinearImageComp.vT"><span class="id" title="variable">vT</span></a> <a name="LinearImageComp.rT"><span class="id" title="variable">rT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a>).<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LinearImageComp.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinearImageComp.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">g</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LinearImageComp.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinearImageComp.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinearImageComp.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="lim1g"><span class="id" title="lemma">lim1g</span></a> <span class="id" title="var">U</span> : (<a class="idref" href="mathcomp.algebra.vector.html#9c5859a8d2fadc014a07818a2f27d0e9"><span class="id" title="notation">\1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="limg_comp"><span class="id" title="lemma">limg_comp</span></a> <span class="id" title="var">f</span> <span class="id" title="var">g</span> <span class="id" title="var">U</span> : (<a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#LinearImageComp"><span class="id" title="section">LinearImageComp</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="LinearPreimage"><span class="id" title="section">LinearPreimage</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="LinearPreimage.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="LinearPreimage.aT"><span class="id" title="variable">aT</span></a> <a name="LinearPreimage.rT"><span class="id" title="variable">rT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a>).<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">Hom</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LinearPreimage.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinearPreimage.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#83f0032a38b59483260ed68e0d6a1c56"><span class="id" title="notation">)</span></a>) (<span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinearPreimage.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">V</span> <span class="id" title="var">W</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LinearPreimage.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="lpreim_cap_limg"><span class="id" title="lemma">lpreim_cap_limg</span></a> <span class="id" title="var">f</span> <span class="id" title="var">W</span> : (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#44829b34346d22907f726f49ab851da1"><span class="id" title="notation">@^-1:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#44829b34346d22907f726f49ab851da1"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#limg"><span class="id" title="abbreviation">limg</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#44829b34346d22907f726f49ab851da1"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#44829b34346d22907f726f49ab851da1"><span class="id" title="notation">@^-1:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="lpreim0"><span class="id" title="lemma">lpreim0</span></a> <span class="id" title="var">f</span> : (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#44829b34346d22907f726f49ab851da1"><span class="id" title="notation">@^-1:</span></a> 0)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="lpreimS"><span class="id" title="lemma">lpreimS</span></a> <span class="id" title="var">f</span> <span class="id" title="var">V</span> <span class="id" title="var">W</span> : (<a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a>)%<span class="id" title="var">VS</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#44829b34346d22907f726f49ab851da1"><span class="id" title="notation">@^-1:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#44829b34346d22907f726f49ab851da1"><span class="id" title="notation">@^-1:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a>)%<span class="id" title="var">VS</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="lpreimK"><span class="id" title="lemma">lpreimK</span></a> <span class="id" title="var">f</span> <span class="id" title="var">W</span> : (<a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#limg"><span class="id" title="abbreviation">limg</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#44829b34346d22907f726f49ab851da1"><span class="id" title="notation">@^-1:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a><a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_preim"><span class="id" title="lemma">memv_preim</span></a> <span class="id" title="var">f</span> <span class="id" title="var">u</span> <span class="id" title="var">W</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#44829b34346d22907f726f49ab851da1"><span class="id" title="notation">@^-1:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#W"><span class="id" title="variable">W</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#LinearPreimage"><span class="id" title="section">LinearPreimage</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="LfunAlgebra"><span class="id" title="section">LfunAlgebra</span></a>.<br/>
</div>

<div class="doc">
 This section is a bit of a place holder: the instances we build here can't 
 be canonical because we are missing an interface for proper vectTypes,     
 would sit between Vector and Falgebra. For now, we just supply structure   
 definitions here and supply actual instances for F-algebras in a submodule 
 of the algebra library (there is currently no actual use of the End(vT)    
 algebra structure). Also note that the unit ring structure is missing.      
</div>
<div class="code">

<br/>
<span class="id" title="keyword">Variables</span> (<a name="LfunAlgebra.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>) (<a name="LfunAlgebra.vT"><span class="id" title="variable">vT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#R"><span class="id" title="variable">R</span></a>).<br/>
<span class="id" title="keyword">Hypothesis</span> <a name="LfunAlgebra.vT_proper"><span class="id" title="variable">vT_proper</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#dim"><span class="id" title="definition">Vector.dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunAlgebra.vT"><span class="id" title="variable">vT</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#19ab5cfd7e4f60fa14f22b576013bd96"><span class="id" title="notation">&gt;</span></a> 0.<br/>

<br/>
<span class="id" title="keyword">Fact</span> <a name="lfun1_neq0"><span class="id" title="lemma">lfun1_neq0</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#9c5859a8d2fadc014a07818a2f27d0e9"><span class="id" title="notation">\1</span></a>%<span class="id" title="var">VF</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#9e45f909d1732d6d9e153b650829bccf"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="mathcomp.ssreflect.eqtype.html#9e45f909d1732d6d9e153b650829bccf"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">End</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunAlgebra.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">)</span></a>.<br/>

<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="lfun_comp_ringMixin"><span class="id" title="definition">lfun_comp_ringMixin</span></a> :=<br/>
&nbsp;&nbsp;<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.vector.html#comp_lfunA"><span class="id" title="lemma">comp_lfunA</span></a> <a class="idref" href="mathcomp.algebra.vector.html#comp_lfun1l"><span class="id" title="lemma">comp_lfun1l</span></a> <a class="idref" href="mathcomp.algebra.vector.html#comp_lfun1r"><span class="id" title="lemma">comp_lfun1r</span></a> <a class="idref" href="mathcomp.algebra.vector.html#comp_lfunDl"><span class="id" title="lemma">comp_lfunDl</span></a> <a class="idref" href="mathcomp.algebra.vector.html#comp_lfunDr"><span class="id" title="lemma">comp_lfunDr</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#lfun1_neq0"><span class="id" title="lemma">lfun1_neq0</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="lfun_comp_ringType"><span class="id" title="definition">lfun_comp_ringType</span></a> := <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.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">End</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunAlgebra.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_comp_ringMixin"><span class="id" title="definition">lfun_comp_ringMixin</span></a>.<br/>

<br/>
</div>

<div class="doc">
 In the standard endomorphism ring product is categorical composition.      
</div>
<div class="code">
<span class="id" title="keyword">Definition</span> <a name="lfun_ringMixin"><span class="id" title="definition">lfun_ringMixin</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.mixin_of"><span class="id" title="record">GRing.Ring.mixin_of</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#lfun_zmodType"><span class="id" title="definition">lfun_zmodType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunAlgebra.vT"><span class="id" title="variable">vT</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunAlgebra.vT"><span class="id" title="variable">vT</span></a>) :=<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.converse_ringMixin"><span class="id" title="definition">GRing.converse_ringMixin</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_comp_ringType"><span class="id" title="definition">lfun_comp_ringType</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="lfun_ringType"><span class="id" title="definition">lfun_ringType</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.algebra.ssralg.html#GRing.Ring.Exports.RingType"><span class="id" title="abbreviation">RingType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">End</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunAlgebra.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_ringMixin"><span class="id" title="definition">lfun_ringMixin</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="lfun_lalgType"><span class="id" title="definition">lfun_lalgType</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.algebra.ssralg.html#d808753be7e4a961b68bffadddfcdf30"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d808753be7e4a961b68bffadddfcdf30"><span class="id" title="notation">lalgType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d808753be7e4a961b68bffadddfcdf30"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">End</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunAlgebra.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">)</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#d808753be7e4a961b68bffadddfcdf30"><span class="id" title="notation">for</span></a> <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.vector.html#LfunAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lfun_ringType"><span class="id" title="definition">lfun_ringType</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">k</span> <span class="id" title="var">x</span> <span class="id" title="var">y</span> ⇒ <a class="idref" href="mathcomp.algebra.vector.html#comp_lfunZr"><span class="id" title="lemma">comp_lfunZr</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.vector.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a>)<a class="idref" href="mathcomp.algebra.ssralg.html#d808753be7e4a961b68bffadddfcdf30"><span class="id" title="notation">]</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="lfun_algType"><span class="id" title="definition">lfun_algType</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.algebra.ssralg.html#30ca49fca582d0576271da5ba1a53c8c"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#30ca49fca582d0576271da5ba1a53c8c"><span class="id" title="notation">algType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#LfunAlgebra.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#30ca49fca582d0576271da5ba1a53c8c"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">End</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#LfunAlgebra.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">)</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#30ca49fca582d0576271da5ba1a53c8c"><span class="id" title="notation">for</span></a> <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.vector.html#LfunAlgebra.R"><span class="id" title="variable">R</span></a> <span class="id" title="var">_</span> (<span class="id" title="keyword">fun</span> <span class="id" title="var">k</span> (<span class="id" title="var">x</span> <span class="id" title="var">y</span> : <a class="idref" href="mathcomp.algebra.vector.html#lfun_lalgType"><span class="id" title="definition">lfun_lalgType</span></a>) ⇒ <a class="idref" href="mathcomp.algebra.vector.html#comp_lfunZl"><span class="id" title="lemma">comp_lfunZl</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.algebra.vector.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.algebra.vector.html#x"><span class="id" title="variable">x</span></a>)<a class="idref" href="mathcomp.algebra.ssralg.html#30ca49fca582d0576271da5ba1a53c8c"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#LfunAlgebra"><span class="id" title="section">LfunAlgebra</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="Projection"><span class="id" title="section">Projection</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="Projection.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="Projection.vT"><span class="id" title="variable">vT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a>).<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.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="daddv_pi"><span class="id" title="definition">daddv_pi</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> := <a class="idref" href="mathcomp.algebra.vector.html#Hom"><span class="id" title="constructor">Vector.Hom</span></a> (<a class="idref" href="mathcomp.algebra.mxalgebra.html#proj_mx"><span class="id" title="definition">proj_mx</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>) (<a class="idref" href="mathcomp.algebra.vector.html#vs2mx"><span class="id" title="definition">vs2mx</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)).<br/>
<span class="id" title="keyword">Definition</span> <a name="projv"><span class="id" title="definition">projv</span></a> <span class="id" title="var">U</span> := <a class="idref" href="mathcomp.algebra.vector.html#daddv_pi"><span class="id" title="definition">daddv_pi</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.algebra.vector.html#071d56fbd1000a21b48af9aadab34351"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.vector.html#071d56fbd1000a21b48af9aadab34351"><span class="id" title="notation">C</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="addv_pi1"><span class="id" title="definition">addv_pi1</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> := <a class="idref" href="mathcomp.algebra.vector.html#daddv_pi"><span class="id" title="definition">daddv_pi</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#946bddca9671fead9ed6e5aece130780"><span class="id" title="notation">:\:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="addv_pi2"><span class="id" title="definition">addv_pi2</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> := <a class="idref" href="mathcomp.algebra.vector.html#daddv_pi"><span class="id" title="definition">daddv_pi</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#946bddca9671fead9ed6e5aece130780"><span class="id" title="notation">:\:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_pi"><span class="id" title="lemma">memv_pi</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">w</span> : (<a class="idref" href="mathcomp.algebra.vector.html#daddv_pi"><span class="id" title="definition">daddv_pi</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_proj"><span class="id" title="lemma">memv_proj</span></a> <span class="id" title="var">U</span> <span class="id" title="var">w</span> : <a class="idref" href="mathcomp.algebra.vector.html#projv"><span class="id" title="definition">projv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.  <br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_pi1"><span class="id" title="lemma">memv_pi1</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">w</span> : (<a class="idref" href="mathcomp.algebra.vector.html#addv_pi1"><span class="id" title="definition">addv_pi1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_pi2"><span class="id" title="lemma">memv_pi2</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">w</span> : (<a class="idref" href="mathcomp.algebra.vector.html#addv_pi2"><span class="id" title="definition">addv_pi2</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>.  <br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="daddv_pi_id"><span class="id" title="lemma">daddv_pi_id</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">u</span> : (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#daddv_pi"><span class="id" title="definition">daddv_pi</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="daddv_pi_proj"><span class="id" title="lemma">daddv_pi_proj</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">w</span> (<span class="id" title="var">pi</span> := <a class="idref" href="mathcomp.algebra.vector.html#daddv_pi"><span class="id" title="definition">daddv_pi</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>) :<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#pi"><span class="id" title="variable">pi</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#pi"><span class="id" title="variable">pi</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#pi"><span class="id" title="variable">pi</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="daddv_pi_add"><span class="id" title="lemma">daddv_pi_add</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">w</span> :<br/>
&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#daddv_pi"><span class="id" title="definition">daddv_pi</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#daddv_pi"><span class="id" title="definition">daddv_pi</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="projv_id"><span class="id" title="lemma">projv_id</span></a> <span class="id" title="var">U</span> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#projv"><span class="id" title="definition">projv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="projv_proj"><span class="id" title="lemma">projv_proj</span></a> <span class="id" title="var">U</span> <span class="id" title="var">w</span> : <a class="idref" href="mathcomp.algebra.vector.html#projv"><span class="id" title="definition">projv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#projv"><span class="id" title="definition">projv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#projv"><span class="id" title="definition">projv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_projC"><span class="id" title="lemma">memv_projC</span></a> <span class="id" title="var">U</span> <span class="id" title="var">w</span> : <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#projv"><span class="id" title="definition">projv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.algebra.vector.html#071d56fbd1000a21b48af9aadab34351"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.vector.html#071d56fbd1000a21b48af9aadab34351"><span class="id" title="notation">C</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="limg_proj"><span class="id" title="lemma">limg_proj</span></a> <span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#limg"><span class="id" title="abbreviation">limg</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#projv"><span class="id" title="definition">projv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="lker_proj"><span class="id" title="lemma">lker_proj</span></a> <span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#projv"><span class="id" title="definition">projv</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.algebra.vector.html#071d56fbd1000a21b48af9aadab34351"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.vector.html#071d56fbd1000a21b48af9aadab34351"><span class="id" title="notation">C</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="addv_pi1_proj"><span class="id" title="lemma">addv_pi1_proj</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">w</span> (<span class="id" title="var">pi1</span> := <a class="idref" href="mathcomp.algebra.vector.html#addv_pi1"><span class="id" title="definition">addv_pi1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>) : <a class="idref" href="mathcomp.algebra.vector.html#pi1"><span class="id" title="variable">pi1</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#pi1"><span class="id" title="variable">pi1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#pi1"><span class="id" title="variable">pi1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="addv_pi2_id"><span class="id" title="lemma">addv_pi2_id</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addv_pi2"><span class="id" title="definition">addv_pi2</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="addv_pi2_proj"><span class="id" title="lemma">addv_pi2_proj</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">w</span> (<span class="id" title="var">pi2</span> := <a class="idref" href="mathcomp.algebra.vector.html#addv_pi2"><span class="id" title="definition">addv_pi2</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>) : <a class="idref" href="mathcomp.algebra.vector.html#pi2"><span class="id" title="variable">pi2</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#pi2"><span class="id" title="variable">pi2</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#pi2"><span class="id" title="variable">pi2</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="addv_pi1_pi2"><span class="id" title="lemma">addv_pi1_pi2</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">w</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#706deac9766015ea164a28957c46a7b4"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addv_pi1"><span class="id" title="definition">addv_pi1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addv_pi2"><span class="id" title="definition">addv_pi2</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Section</span> <a name="Projection.Sumv_Pi"><span class="id" title="section">Sumv_Pi</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="Projection.Sumv_Pi.I"><span class="id" title="variable">I</span></a> : <a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Exports.eqType"><span class="id" title="abbreviation">eqType</span></a>) (<a name="Projection.Sumv_Pi.r0"><span class="id" title="variable">r0</span></a> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a>) (<a name="Projection.Sumv_Pi.P"><span class="id" title="variable">P</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a>) (<a name="Projection.Sumv_Pi.Vs"><span class="id" title="variable">Vs</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>).<br/>

<br/>
<span class="id" title="keyword">Let</span> <a name="Projection.Sumv_Pi.sumv_pi_rec"><span class="id" title="variable">sumv_pi_rec</span></a> <span class="id" title="var">i</span> :=<br/>
&nbsp;&nbsp;<span class="id" title="keyword">fix</span> <span class="id" title="var">loop</span> <span class="id" title="var">r</span> := <span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.algebra.vector.html#r"><span class="id" title="variable">r</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">j</span> <a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">::</span></a> <span class="id" title="var">r1</span> <span class="id" title="keyword">then</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" title="keyword">let</span> <span class="id" title="var">V1</span> := (<a class="idref" href="mathcomp.algebra.vector.html#a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">(</span></a><span class="id" title="var">k</span> <a class="idref" href="mathcomp.algebra.vector.html#a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">&lt;-</span></a> <span class="id" title="var">r1</span><a class="idref" href="mathcomp.algebra.vector.html#a0cc109dcb3354cdc641c4ee52a2f4cb"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.Vs"><span class="id" title="variable">Vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#k"><span class="id" title="variable">k</span></a>)%<span class="id" title="var">VS</span> <span class="id" title="tactic">in</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <span class="id" title="var">j</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addv_pi1"><span class="id" title="definition">addv_pi1</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.Vs"><span class="id" title="variable">Vs</span></a> <span class="id" title="var">j</span>) <a class="idref" href="mathcomp.algebra.vector.html#V1"><span class="id" title="variable">V1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#loop"><span class="id" title="variable">loop</span></a> <span class="id" title="var">r1</span> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#addv_pi2"><span class="id" title="definition">addv_pi2</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.Vs"><span class="id" title="variable">Vs</span></a> <span class="id" title="var">j</span>) <a class="idref" href="mathcomp.algebra.vector.html#V1"><span class="id" title="variable">V1</span></a>)%<span class="id" title="var">VF</span><br/>
&nbsp;&nbsp;<span class="id" title="keyword">else</span> 0.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="sumV"><span class="id" title="abbreviation">sumV</span></a> := (<a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.r0"><span class="id" title="variable">r0</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#ab83237670c8eecadafc9524ff9fc50e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.Vs"><span class="id" title="variable">Vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)%<span class="id" title="var">VS</span>.<br/>
<span class="id" title="keyword">Definition</span> <a name="sumv_pi_for"><span class="id" title="definition">sumv_pi_for</span></a> <span class="id" title="var">V</span> <span class="id" title="keyword">of</span> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#sumV"><span class="id" title="abbreviation">sumV</span></a> := <span class="id" title="keyword">fun</span> <span class="id" title="var">i</span> ⇒ <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.sumv_pi_rec"><span class="id" title="variable">sumv_pi_rec</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#filter"><span class="id" title="definition">filter</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.r0"><span class="id" title="variable">r0</span></a>).<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="Projection.Sumv_Pi.V"><span class="id" title="variable">V</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>) (<a name="Projection.Sumv_Pi.defV"><span class="id" title="variable">defV</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#sumV"><span class="id" title="abbreviation">sumV</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="memv_sum_pi"><span class="id" title="lemma">memv_sum_pi</span></a> <span class="id" title="var">i</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.vector.html#sumv_pi_for"><span class="id" title="definition">sumv_pi_for</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.defV"><span class="id" title="variable">defV</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.Vs"><span class="id" title="variable">Vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="sumv_pi_uniq_sum"><span class="id" title="lemma">sumv_pi_uniq_sum</span></a> <span class="id" title="var">v</span> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.seq.html#uniq"><span class="id" title="definition">uniq</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#filter"><span class="id" title="definition">filter</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.r0"><span class="id" title="variable">r0</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.r0"><span class="id" title="variable">r0</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#cbc2f2ab11c1c376b5c4511d28b14d74"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#sumv_pi_for"><span class="id" title="definition">sumv_pi_for</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi.defV"><span class="id" title="variable">defV</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#Projection.Sumv_Pi"><span class="id" title="section">Sumv_Pi</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#Projection"><span class="id" title="section">Projection</span></a>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="sumv_pi"><span class="id" title="abbreviation">sumv_pi</span></a> <span class="id" title="var">V</span> := (<a class="idref" href="mathcomp.algebra.vector.html#sumv_pi_for"><span class="id" title="definition">sumv_pi_for</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#erefl"><span class="id" title="abbreviation">erefl</span></a> <span class="id" title="var">V</span>)).<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="SumvPi"><span class="id" title="section">SumvPi</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> (<a name="SumvPi.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="SumvPi.vT"><span class="id" title="variable">vT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="sumv_pi_sum"><span class="id" title="lemma">sumv_pi_sum</span></a> (<span class="id" title="var">I</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">P</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.algebra.vector.html#I"><span class="id" title="variable">I</span></a>) <span class="id" title="var">Vs</span> <span class="id" title="var">v</span> (<span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#SumvPi.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" title="var">defV</span> : <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#d977f5115f4427a1c821b49789732de6"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vs"><span class="id" title="variable">Vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)%<span class="id" title="var">VS</span>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#sumv_pi_for"><span class="id" title="definition">sumv_pi_for</span></a> <a class="idref" href="mathcomp.algebra.vector.html#defV"><span class="id" title="variable">defV</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#SumvPi.vT"><span class="id" title="variable">vT</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="sumv_pi_nat_sum"><span class="id" title="lemma">sumv_pi_nat_sum</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> (<span class="id" title="var">P</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) <span class="id" title="var">Vs</span> <span class="id" title="var">v</span> (<span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#SumvPi.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" title="var">defV</span> : <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#c39e266eae2b9d16deeec803fc46fe8c"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#c39e266eae2b9d16deeec803fc46fe8c"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.vector.html#c39e266eae2b9d16deeec803fc46fe8c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c39e266eae2b9d16deeec803fc46fe8c"><span class="id" title="notation">≤</span></a> <span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.vector.html#c39e266eae2b9d16deeec803fc46fe8c"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c39e266eae2b9d16deeec803fc46fe8c"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#c39e266eae2b9d16deeec803fc46fe8c"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Vs"><span class="id" title="variable">Vs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>)%<span class="id" title="var">VS</span>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2c867945467f28d796e85a2abf6a164e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#2c867945467f28d796e85a2abf6a164e"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#2c867945467f28d796e85a2abf6a164e"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2c867945467f28d796e85a2abf6a164e"><span class="id" title="notation">≤</span></a> <span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#2c867945467f28d796e85a2abf6a164e"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#2c867945467f28d796e85a2abf6a164e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.vector.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#2c867945467f28d796e85a2abf6a164e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#sumv_pi_for"><span class="id" title="definition">sumv_pi_for</span></a> <a class="idref" href="mathcomp.algebra.vector.html#defV"><span class="id" title="variable">defV</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="mathcomp.algebra.vector.html#SumvPi.vT"><span class="id" title="variable">vT</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#SumvPi"><span class="id" title="section">SumvPi</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="SubVector"><span class="id" title="section">SubVector</span></a>.<br/>

<br/>
</div>

<div class="doc">
 Turn a {vspace V} into a vectType                                           
</div>
<div class="code">
<span class="id" title="keyword">Variable</span> (<a name="SubVector.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="SubVector.vT"><span class="id" title="variable">vT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a>) (<a name="SubVector.U"><span class="id" title="variable">U</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>).<br/>

<br/>
<span class="id" title="keyword">Inductive</span> <a name="subvs_of"><span class="id" title="inductive">subvs_of</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#predArgType"><span class="id" title="definition">predArgType</span></a> := <a name="Subvs"><span class="id" title="constructor">Subvs</span></a> <span class="id" title="var">u</span> &amp; <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#SubVector.U"><span class="id" title="variable">U</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="vsval"><span class="id" title="definition">vsval</span></a> <span class="id" title="var">w</span> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.vector.html#Subvs"><span class="id" title="constructor">Subvs</span></a> <span class="id" title="var">u</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">u</span>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subvs_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#341c160c3e7b20d967b85d1852a7f89f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#341c160c3e7b20d967b85d1852a7f89f"><span class="id" title="notation">subType</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#341c160c3e7b20d967b85d1852a7f89f"><span class="id" title="notation">for</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vsval"><span class="id" title="definition">vsval</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#341c160c3e7b20d967b85d1852a7f89f"><span class="id" title="notation">]</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="subvs_eqMixin"><span class="id" title="definition">subvs_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#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">eqMixin</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">&lt;:]</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subvs_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.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_eqMixin"><span class="id" title="definition">subvs_eqMixin</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="subvs_choiceMixin"><span class="id" title="definition">subvs_choiceMixin</span></a> := <a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">choiceMixin</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">&lt;:]</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subvs_choiceType</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.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_choiceMixin"><span class="id" title="definition">subvs_choiceMixin</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="subvs_zmodMixin"><span class="id" title="definition">subvs_zmodMixin</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#12c08185c491bc566a7da7b64605c9a3"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#12c08185c491bc566a7da7b64605c9a3"><span class="id" title="notation">zmodMixin</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#12c08185c491bc566a7da7b64605c9a3"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#12c08185c491bc566a7da7b64605c9a3"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#12c08185c491bc566a7da7b64605c9a3"><span class="id" title="notation">&lt;:]</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subvs_zmodType</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.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_zmodMixin"><span class="id" title="definition">subvs_zmodMixin</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="subvs_lmodMixin"><span class="id" title="definition">subvs_lmodMixin</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#32c2078c0586b055b54305843b7f7e67"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#32c2078c0586b055b54305843b7f7e67"><span class="id" title="notation">lmodMixin</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#32c2078c0586b055b54305843b7f7e67"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#32c2078c0586b055b54305843b7f7e67"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#32c2078c0586b055b54305843b7f7e67"><span class="id" title="notation">&lt;:]</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subvs_lmodType</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.vector.html#SubVector.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_lmodMixin"><span class="id" title="definition">subvs_lmodMixin</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="subvsP"><span class="id" title="lemma">subvsP</span></a> <span class="id" title="var">w</span> : <a class="idref" href="mathcomp.algebra.vector.html#vsval"><span class="id" title="definition">vsval</span></a> <a class="idref" href="mathcomp.algebra.vector.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#SubVector.U"><span class="id" title="variable">U</span></a>.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="subvs_inj"><span class="id" title="lemma">subvs_inj</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#injective"><span class="id" title="definition">injective</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vsval"><span class="id" title="definition">vsval</span></a>.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="congr_subvs"><span class="id" title="lemma">congr_subvs</span></a> <span class="id" title="var">u</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vsval"><span class="id" title="definition">vsval</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vsval"><span class="id" title="definition">vsval</span></a> <a class="idref" href="mathcomp.algebra.vector.html#v"><span class="id" title="variable">v</span></a>.  <br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="vsval_is_linear"><span class="id" title="lemma">vsval_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.vector.html#vsval"><span class="id" title="definition">vsval</span></a>.  <br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vsval_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.vector.html#vsval_is_linear"><span class="id" title="lemma">vsval_is_linear</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vsval_linear</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.vector.html#vsval_is_linear"><span class="id" title="lemma">vsval_is_linear</span></a>.<br/>

<br/>
<span class="id" title="keyword">Fact</span> <a name="vsproj_key"><span class="id" title="lemma">vsproj_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.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="vsproj_def"><span class="id" title="definition">vsproj_def</span></a> <span class="id" title="var">u</span> := <a class="idref" href="mathcomp.algebra.vector.html#Subvs"><span class="id" title="constructor">Subvs</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#memv_proj"><span class="id" title="lemma">memv_proj</span></a> <a class="idref" href="mathcomp.algebra.vector.html#SubVector.U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a>).<br/>
<span class="id" title="keyword">Definition</span> <a name="vsproj"><span class="id" title="definition">vsproj</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#locked_with"><span class="id" title="definition">locked_with</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vsproj_key"><span class="id" title="lemma">vsproj_key</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vsproj_def"><span class="id" title="definition">vsproj_def</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vsproj_unlockable</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">unlockable</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">fun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vsproj"><span class="id" title="definition">vsproj</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#58f94351327943cd874eb55da8e0ca14"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="vsprojK"><span class="id" title="lemma">vsprojK</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#SubVector.U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vsproj"><span class="id" title="definition">vsproj</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vsval"><span class="id" title="definition">vsval</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>.<br/>
 <span class="id" title="keyword">Lemma</span> <a name="vsvalK"><span class="id" title="lemma">vsvalK</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vsval"><span class="id" title="definition">vsval</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vsproj"><span class="id" title="definition">vsproj</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="vsproj_is_linear"><span class="id" title="lemma">vsproj_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.vector.html#vsproj"><span class="id" title="definition">vsproj</span></a>.<br/>
 <span class="id" title="keyword">Canonical</span> <span class="id" title="var">vsproj_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.vector.html#vsproj_is_linear"><span class="id" title="lemma">vsproj_is_linear</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vsproj_linear</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.vector.html#vsproj_is_linear"><span class="id" title="lemma">vsproj_is_linear</span></a>.<br/>

<br/>
<span class="id" title="keyword">Fact</span> <a name="subvs_vect_iso"><span class="id" title="lemma">subvs_vect_iso</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#axiom"><span class="id" title="abbreviation">Vector.axiom</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#SubVector.U"><span class="id" title="variable">U</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="subvs_vectMixin"><span class="id" title="definition">subvs_vectMixin</span></a> :=  <a class="idref" href="mathcomp.algebra.vector.html#VectMixin"><span class="id" title="abbreviation">VectMixin</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_vect_iso"><span class="id" title="lemma">subvs_vect_iso</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">subvs_vectType</span> := <a class="idref" href="mathcomp.algebra.vector.html#VectType"><span class="id" title="abbreviation">VectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#SubVector.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_vectMixin"><span class="id" title="definition">subvs_vectMixin</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#SubVector"><span class="id" title="section">SubVector</span></a>.<br/>

<br/>
<span class="id" title="keyword">Section</span> <a name="MatrixVectType"><span class="id" title="section">MatrixVectType</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="MatrixVectType.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>) (<a name="MatrixVectType.m"><span class="id" title="variable">m</span></a> <a name="MatrixVectType.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>).<br/>

<br/>
</div>

<div class="doc">
 The apparently useless =&gt; /= in line 1 of the proof performs some evar     
 expansions that the Ltac interpretation of exists is incapable of doing.    
</div>
<div class="code">
<span class="id" title="keyword">Fact</span> <a name="matrix_vect_iso"><span class="id" title="lemma">matrix_vect_iso</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#axiom"><span class="id" title="abbreviation">Vector.axiom</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#MatrixVectType.m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#697e4695610f677ae98a52af81f779d2"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.vector.html#MatrixVectType.n"><span class="id" title="variable">n</span></a>) <a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#MatrixVectType.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#MatrixVectType.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#MatrixVectType.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">)</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="matrix_vectMixin"><span class="id" title="definition">matrix_vectMixin</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#VectMixin"><span class="id" title="abbreviation">VectMixin</span></a> <a class="idref" href="mathcomp.algebra.vector.html#matrix_vect_iso"><span class="id" title="lemma">matrix_vect_iso</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">matrix_vectType</span> := <a class="idref" href="mathcomp.algebra.vector.html#VectType"><span class="id" title="abbreviation">VectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#MatrixVectType.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">M</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#MatrixVectType.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#MatrixVectType.m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#MatrixVectType.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.matrix.html#e36c289fb249221b43b9c978a67340fb"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#matrix_vectMixin"><span class="id" title="definition">matrix_vectMixin</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#MatrixVectType"><span class="id" title="section">MatrixVectType</span></a>.<br/>

<br/>
</div>

<div class="doc">
 A ring is a one-dimension vector space  
</div>
<div class="code">
<span class="id" title="keyword">Section</span> <a name="RegularVectType"><span class="id" title="section">RegularVectType</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="RegularVectType.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">Fact</span> <a name="regular_vect_iso"><span class="id" title="lemma">regular_vect_iso</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#axiom"><span class="id" title="abbreviation">Vector.axiom</span></a> 1 <a class="idref" href="mathcomp.algebra.vector.html#RegularVectType.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c2b6ed6fbc6f0b41c6ad09005b7580b6"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c2b6ed6fbc6f0b41c6ad09005b7580b6"><span class="id" title="notation">o</span></a>.<br/>
<span class="id" title="keyword">Definition</span> <a name="regular_vectMixin"><span class="id" title="definition">regular_vectMixin</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#VectMixin"><span class="id" title="abbreviation">VectMixin</span></a> <a class="idref" href="mathcomp.algebra.vector.html#regular_vect_iso"><span class="id" title="lemma">regular_vect_iso</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">regular_vectType</span> := <a class="idref" href="mathcomp.algebra.vector.html#VectType"><span class="id" title="abbreviation">VectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#RegularVectType.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.vector.html#RegularVectType.R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c2b6ed6fbc6f0b41c6ad09005b7580b6"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c2b6ed6fbc6f0b41c6ad09005b7580b6"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#regular_vectMixin"><span class="id" title="definition">regular_vectMixin</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#RegularVectType"><span class="id" title="section">RegularVectType</span></a>.<br/>

<br/>
</div>

<div class="doc">
 External direct product of two vectTypes.  
</div>
<div class="code">
<span class="id" title="keyword">Section</span> <a name="ProdVector"><span class="id" title="section">ProdVector</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="ProdVector.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>) (<a name="ProdVector.vT1"><span class="id" title="variable">vT1</span></a> <a name="ProdVector.vT2"><span class="id" title="variable">vT2</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#R"><span class="id" title="variable">R</span></a>).<br/>

<br/>
<span class="id" title="keyword">Fact</span> <a name="pair_vect_iso"><span class="id" title="lemma">pair_vect_iso</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#axiom"><span class="id" title="abbreviation">Vector.axiom</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#dim"><span class="id" title="definition">Vector.dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ProdVector.vT1"><span class="id" title="variable">vT1</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#b3eea360671e1b32b18a26e15b3aace3"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dim"><span class="id" title="definition">Vector.dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ProdVector.vT2"><span class="id" title="variable">vT2</span></a>) (<a class="idref" href="mathcomp.algebra.vector.html#ProdVector.vT1"><span class="id" title="variable">vT1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ProdVector.vT2"><span class="id" title="variable">vT2</span></a>).<br/>
<span class="id" title="keyword">Definition</span> <a name="pair_vectMixin"><span class="id" title="definition">pair_vectMixin</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#VectMixin"><span class="id" title="abbreviation">VectMixin</span></a> <a class="idref" href="mathcomp.algebra.vector.html#pair_vect_iso"><span class="id" title="lemma">pair_vect_iso</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">pair_vectType</span> := <a class="idref" href="mathcomp.algebra.vector.html#VectType"><span class="id" title="abbreviation">VectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ProdVector.R"><span class="id" title="variable">R</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#ProdVector.vT1"><span class="id" title="variable">vT1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#d19c7eafd0e2d195d10df94b392087b5"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ProdVector.vT2"><span class="id" title="variable">vT2</span></a>) <a class="idref" href="mathcomp.algebra.vector.html#pair_vectMixin"><span class="id" title="definition">pair_vectMixin</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#ProdVector"><span class="id" title="section">ProdVector</span></a>.<br/>

<br/>
</div>

<div class="doc">
 Function from a finType into a ring form a vectype.  
</div>
<div class="code">
<span class="id" title="keyword">Section</span> <a name="FunVectType"><span class="id" title="section">FunVectType</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> (<a name="FunVectType.I"><span class="id" title="variable">I</span></a> : <a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Exports.finType"><span class="id" title="abbreviation">finType</span></a>) (<a name="FunVectType.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>) (<a name="FunVectType.vT"><span class="id" title="variable">vT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#R"><span class="id" title="variable">R</span></a>).<br/>

<br/>
</div>

<div class="doc">
 Type unification with exist is again a problem in this proof.  
</div>
<div class="code">
<span class="id" title="keyword">Fact</span> <a name="ffun_vect_iso"><span class="id" title="lemma">ffun_vect_iso</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#axiom"><span class="id" title="abbreviation">Vector.axiom</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.algebra.vector.html#FunVectType.I"><span class="id" title="variable">I</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#697e4695610f677ae98a52af81f779d2"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.vector.html#dim"><span class="id" title="definition">Vector.dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#FunVectType.vT"><span class="id" title="variable">vT</span></a>) <a class="idref" href="mathcomp.ssreflect.finfun.html#9f24a6f16bf73832c2d9aa4e2c16f692"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.ssreflect.finfun.html#9f24a6f16bf73832c2d9aa4e2c16f692"><span class="id" title="notation">ffun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#FunVectType.I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#FunVectType.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.ssreflect.finfun.html#9f24a6f16bf73832c2d9aa4e2c16f692"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="ffun_vectMixin"><span class="id" title="definition">ffun_vectMixin</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#VectMixin"><span class="id" title="abbreviation">VectMixin</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ffun_vect_iso"><span class="id" title="lemma">ffun_vect_iso</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ffun_vectType</span> := <a class="idref" href="mathcomp.algebra.vector.html#VectType"><span class="id" title="abbreviation">VectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#FunVectType.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.ssreflect.finfun.html#9f24a6f16bf73832c2d9aa4e2c16f692"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.ssreflect.finfun.html#9f24a6f16bf73832c2d9aa4e2c16f692"><span class="id" title="notation">ffun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#FunVectType.I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#FunVectType.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.ssreflect.finfun.html#9f24a6f16bf73832c2d9aa4e2c16f692"><span class="id" title="notation">}</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ffun_vectMixin"><span class="id" title="definition">ffun_vectMixin</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.vector.html#FunVectType"><span class="id" title="section">FunVectType</span></a>.<br/>

<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">exp_vectType</span> (<span class="id" title="var">K</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<span class="id" title="var">vT</span> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a>) <span class="id" title="var">n</span> :=<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.vector.html#204b3fccda7df2b23e9d96fbf111d67d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.vector.html#204b3fccda7df2b23e9d96fbf111d67d"><span class="id" title="notation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#204b3fccda7df2b23e9d96fbf111d67d"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vT"><span class="id" title="variable">vT</span></a> <a class="idref" href="mathcomp.ssreflect.finfun.html#cd1bca6dfdb74a6b15c6c8969f27472a"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.vector.html#204b3fccda7df2b23e9d96fbf111d67d"><span class="id" title="notation">]</span></a>.<br/>

<br/>
</div>

<div class="doc">
 Solving a tuple of linear equations.  
</div>
<div class="code">
<span class="id" title="keyword">Section</span> <a name="Solver"><span class="id" title="section">Solver</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> (<a name="Solver.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="Solver.vT"><span class="id" title="variable">vT</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#vectType"><span class="id" title="abbreviation">vectType</span></a> <a class="idref" href="mathcomp.algebra.vector.html#K"><span class="id" title="variable">K</span></a>).<br/>
<span class="id" title="keyword">Variables</span> (<a name="Solver.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<a name="Solver.lhs"><span class="id" title="variable">lhs</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">End</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.vector.html#Solver.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">)</span></a>) (<a name="Solver.rhs"><span class="id" title="variable">rhs</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Solver.vT"><span class="id" title="variable">vT</span></a>).<br/>

<br/>
<span class="id" title="keyword">Let</span> <a name="Solver.lhsf"><span class="id" title="variable">lhsf</span></a> <span class="id" title="var">u</span> := <a class="idref" href="mathcomp.ssreflect.finfun.html#finfun"><span class="id" title="abbreviation">finfun</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#8f28bbd804547edd8de802d63ef85617"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#tnth"><span class="id" title="definition">tnth</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Solver.lhs"><span class="id" title="variable">lhs</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#8f28bbd804547edd8de802d63ef85617"><span class="id" title="notation">)^~</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a>).<br/>
<span class="id" title="keyword">Definition</span> <a name="vsolve_eq"><span class="id" title="definition">vsolve_eq</span></a> <span class="id" title="var">U</span> := <a class="idref" href="mathcomp.ssreflect.finfun.html#finfun"><span class="id" title="abbreviation">finfun</span></a> (<a class="idref" href="mathcomp.ssreflect.tuple.html#tnth"><span class="id" title="definition">tnth</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Solver.rhs"><span class="id" title="variable">rhs</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#linfun"><span class="id" title="definition">linfun</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Solver.lhsf"><span class="id" title="variable">lhsf</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a>)%<span class="id" title="var">VS</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="vsolve_eqP"><span class="id" title="lemma">vsolve_eqP</span></a> (<span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Solver.vT"><span class="id" title="variable">vT</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">u</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&amp;</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">i</span>, <a class="idref" href="mathcomp.ssreflect.tuple.html#tnth"><span class="id" title="definition">tnth</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Solver.lhs"><span class="id" title="variable">lhs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.vector.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.tuple.html#tnth"><span class="id" title="definition">tnth</span></a> <a class="idref" href="mathcomp.algebra.vector.html#Solver.rhs"><span class="id" title="variable">rhs</span></a> <a class="idref" href="mathcomp.algebra.vector.html#i"><span class="id" title="variable">i</span></a>) <br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.algebra.vector.html#vsolve_eq"><span class="id" title="definition">vsolve_eq</span></a> <a class="idref" href="mathcomp.algebra.vector.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.vector.html#Solver"><span class="id" title="section">Solver</span></a>.<br/>

<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>