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

<body>

<div id="page">

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

<div id="main">

<h1 class="libtitle">Library mathcomp.solvable.abelian</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">
 Constructions based on abelian groups and their structure, with some       
 emphasis on elementary abelian p-groups.                                   
          'Ldiv_n == the set of all x that satisfy x ^+ n = 1, or,        
                       equivalently the set of x whose order divides n.     
         'Ldiv_n(G) == the set of x in G that satisfy x ^+ n = 1.           
                    := G :&amp;: 'Ldiv_n (pure Notation)                      
         exponent G == the exponent of G: the least e such that x ^+ e = 1  
                       for all x in G (the LCM of the orders of x \in G).   
                       If G is nilpotent its exponent is reached. Note that 
                       `exponent G %| m' reads as `G has exponent m'.       
              'm(G) == the generator rank of G: the size of a smallest      
                       generating set for G (this is a basis for G if G     
                       abelian).                                            
     abelian_type G == the abelian type of G : if G is abelian, a lexico-   
                       graphically maximal sequence of the orders of the    
                       elements of a minimal basis of G (if G is a p-group  
                       this is the sequence of orders for any basis of G,   
                       sorted in decending order).                          
       homocyclic G == G is the direct product of cycles of equal order,    
                       i.e., G is abelian with constant abelian type.       
        p.-abelem G == G is an elementary abelian p-group, i.e., it is      
                       an abelian p-group of exponent p, and thus of order  
                       p ^ 'm(G) and rank (logn p #|G|).                    
        is_abelem G == G is an elementary abelian p-group for some prime p. 
            'E_p(G) == the set of elementary abelian p-subgroups of G.      
                    := [set E : {group _} | p.-abelem E &amp; E \subset G]      
          'E_p^n(G) == the set of elementary abelian p-subgroups of G of    
                       order p ^ n (or, equivalently, of rank n).           
                    := [set E in 'E_p(G) | logn p #|E| == n]                
                    := [set E in 'E_p(G) | #|E| == p ^ n]%N if p is prime   
           'E*<i>p(G) == the set of maximal elementary abelian p-subgroups    
                       of G.                                                
                    := [set E | [max E | E \in 'E_p(G) ]#]                    
            'E^n(G) == the set of elementary abelian subgroups of G that    
                       have gerank n (i.e., p-rank n for some prime p).     
                    := \bigcup</i>(0 &lt;= p &lt; #|G|.+1) 'E_p^n(G)                 
            'r_p(G) == the p-rank of G: the maximal rank of an elementary   
                       subgroup of G.                                       
                    := \max(E in 'E_p(G)) logn p #|E|.                     
              'r(G) == the rank of G.                                       
                    := \max(0 &lt;= p &lt; #|G|.+1) 'm_p(G).                     
 Note that 'r(G) coincides with 'r_p(G) if G is a p-group, and with 'm(G)   
 if G is abelian, but is much more useful than 'm(G) in the proof of the    
 Odd Order Theorem.                                                         
          'Ohm_n(G) == the group generated by the x in G with order p ^ m   
                       for some prime p and some m &lt;= n. Usually, G will be 
                       a p-group, so 'Ohm_n(G) will be generated by         
                       'Ldiv(p ^ n)(G), set of elements of G of order at   
                       most p ^ n. If G is also abelian then 'Ohm_n(G)      
                       consists exactly of those element, and the abelian   
                       type of G can be computed from the orders of the     
                       'Ohm_n(G) subgroups.                                 
          'Mho^n(G) == the group generated by the x ^+ (p ^ n) for x a      
                       p-element of G for some prime p. Usually G is a      
                       p-group, and 'Mho^n(G) is generated by all such      
                       x ^+ (p ^ n); it consists of exactly these if G is   
                       also abelian.                                         
</div>
<div class="code">

<br/>
<span class="id" title="keyword">Set Implicit Arguments</span>.<br/>

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

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

<br/>
</div>

<div class="doc">
 We defer the definition of the functors ('Omh_n(G), 'Mho^n(G)) because     
 they must quantify over the finGroupType explicitly.                        
</div>
<div class="code">

<br/>
<span class="id" title="keyword">Variable</span> <a name="AbelianDefs.gT"><span class="id" title="variable">gT</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.finGroupType"><span class="id" title="abbreviation">finGroupType</span></a>.<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#AbelianDefs.gT"><span class="id" title="variable">gT</span></a>) (<span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">set</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#AbelianDefs.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">pi</span> : <a class="idref" href="mathcomp.ssreflect.prime.html#nat_pred"><span class="id" title="definition">nat_pred</span></a>) (<span class="id" title="var">p</span> <span class="id" title="var">n</span> : <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/>
<span class="id" title="keyword">Definition</span> <a name="Ldiv"><span class="id" title="definition">Ldiv</span></a> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.ssreflect.finset.html#d086f256e0c3de938a1d3ad3965b5d4b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#d086f256e0c3de938a1d3ad3965b5d4b"><span class="id" title="notation">set</span></a> <span class="id" title="var">x</span> <a class="idref" href="mathcomp.ssreflect.finset.html#d086f256e0c3de938a1d3ad3965b5d4b"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#AbelianDefs.gT"><span class="id" title="variable">gT</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#d086f256e0c3de938a1d3ad3965b5d4b"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1<a class="idref" href="mathcomp.ssreflect.finset.html#d086f256e0c3de938a1d3ad3965b5d4b"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="exponent"><span class="id" title="definition">exponent</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><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.ssreflect.div.html#lcmn"><span class="id" title="definition">lcmn</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">/</span></a>1%<span class="id" title="var">N</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">x</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#9b4515ceb280b6b5a2638c4e28ba3f31"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="abelem"><span class="id" title="definition">abelem</span></a> <span class="id" title="var">p</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#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">[&amp;&amp;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#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#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="is_abelem"><span class="id" title="definition">is_abelem</span></a> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.solvable.abelian.html#abelem"><span class="id" title="definition">abelem</span></a> (<a class="idref" href="mathcomp.ssreflect.prime.html#pdiv"><span class="id" title="definition">pdiv</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a>) <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="pElem"><span class="id" title="definition">pElem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.ssreflect.finset.html#92573f9b19c03e948cd1a21ac092cb5a"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#92573f9b19c03e948cd1a21ac092cb5a"><span class="id" title="notation">set</span></a> <span class="id" title="var">E</span> <a class="idref" href="mathcomp.ssreflect.finset.html#92573f9b19c03e948cd1a21ac092cb5a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#AbelianDefs.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#92573f9b19c03e948cd1a21ac092cb5a"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#92573f9b19c03e948cd1a21ac092cb5a"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#abelem"><span class="id" title="definition">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#92573f9b19c03e948cd1a21ac092cb5a"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="pnElem"><span class="id" title="definition">pnElem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">set</span></a> <span class="id" title="var">E</span> <a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#pElem"><span class="id" title="definition">pElem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="nElem"><span class="id" title="definition">nElem</span></a> <span class="id" title="var">n</span> <span class="id" title="var">A</span> :=  <a class="idref" href="mathcomp.ssreflect.finset.html#0a31164dc6723b8e70a0452fd2aed471"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0a31164dc6723b8e70a0452fd2aed471"><span class="id" title="notation">bigcup_</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0a31164dc6723b8e70a0452fd2aed471"><span class="id" title="notation">(</span></a>0 <a class="idref" href="mathcomp.ssreflect.finset.html#0a31164dc6723b8e70a0452fd2aed471"><span class="id" title="notation">≤</span></a> <span class="id" title="var">p</span> <a class="idref" href="mathcomp.ssreflect.finset.html#0a31164dc6723b8e70a0452fd2aed471"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</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#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0a31164dc6723b8e70a0452fd2aed471"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#pnElem"><span class="id" title="definition">pnElem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="pmaxElem"><span class="id" title="definition">pmaxElem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.ssreflect.finset.html#20dd00d77a881552893c96be95088d1a"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#20dd00d77a881552893c96be95088d1a"><span class="id" title="notation">set</span></a> <span class="id" title="var">E</span> <a class="idref" href="mathcomp.ssreflect.finset.html#20dd00d77a881552893c96be95088d1a"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#037a06093aea0e31650c64484aec1c53"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#037a06093aea0e31650c64484aec1c53"><span class="id" title="notation">max</span></a> <span class="id" title="var">E</span> <a class="idref" href="mathcomp.fingroup.fingroup.html#037a06093aea0e31650c64484aec1c53"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#pElem"><span class="id" title="definition">pElem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#037a06093aea0e31650c64484aec1c53"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#20dd00d77a881552893c96be95088d1a"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="p_rank"><span class="id" title="definition">p_rank</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.ssreflect.bigop.html#71d58bf7fdcf47f002b51de38c69e9d5"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#71d58bf7fdcf47f002b51de38c69e9d5"><span class="id" title="notation">max_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#71d58bf7fdcf47f002b51de38c69e9d5"><span class="id" title="notation">(</span></a><span class="id" title="var">E</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#71d58bf7fdcf47f002b51de38c69e9d5"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#pElem"><span class="id" title="definition">pElem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#71d58bf7fdcf47f002b51de38c69e9d5"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="rank"><span class="id" title="definition">rank</span></a> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.ssreflect.bigop.html#716731a3a1230ec6ed334fc013cabc91"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#716731a3a1230ec6ed334fc013cabc91"><span class="id" title="notation">max_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#716731a3a1230ec6ed334fc013cabc91"><span class="id" title="notation">(</span></a>0 <a class="idref" href="mathcomp.ssreflect.bigop.html#716731a3a1230ec6ed334fc013cabc91"><span class="id" title="notation">≤</span></a> <span class="id" title="var">p</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#716731a3a1230ec6ed334fc013cabc91"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</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#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#716731a3a1230ec6ed334fc013cabc91"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p_rank"><span class="id" title="definition">p_rank</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="gen_rank"><span class="id" title="definition">gen_rank</span></a> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#58ad7fb63a7c636cab554e0ee7a84bcf"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#58ad7fb63a7c636cab554e0ee7a84bcf"><span class="id" title="notation">arg</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#58ad7fb63a7c636cab554e0ee7a84bcf"><span class="id" title="notation">min_</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#58ad7fb63a7c636cab554e0ee7a84bcf"><span class="id" title="notation">(</span></a><span class="id" title="var">B</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#58ad7fb63a7c636cab554e0ee7a84bcf"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#58ad7fb63a7c636cab554e0ee7a84bcf"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&gt;&gt;</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#58ad7fb63a7c636cab554e0ee7a84bcf"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#58ad7fb63a7c636cab554e0ee7a84bcf"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a>.<br/>

<br/>
</div>

<div class="doc">
 The definition of abelian_type depends on an existence lemma. 
 The definition of homocyclic depends on abelian_type.  
</div>
<div class="code">

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.abelian.html#AbelianDefs"><span class="id" title="section">AbelianDefs</span></a>.<br/>

<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">&quot;</span></a>''Ldiv_' n " := (<a class="idref" href="mathcomp.solvable.abelian.html#Ldiv"><span class="id" title="definition">Ldiv</span></a> <span class="id" title="var">_</span> <span class="id" title="var">n</span>)<br/>
&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">format</span> "''Ldiv_' n ") : <span class="id" title="var">group_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">&quot;</span></a>''Ldiv_' n ( G )" := (<span class="id" title="var">G</span> <a class="idref" href="mathcomp.ssreflect.finset.html#cb41714a5a23482f7a48a98975fa8c59"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">Ldiv_n</span></a>)<br/>
&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">format</span> "''Ldiv_' n ( G )") : <span class="id" title="var">group_scope</span>.<br/>

<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">&quot;</span></a>p .-abelem" := (<a class="idref" href="mathcomp.solvable.abelian.html#abelem"><span class="id" title="definition">abelem</span></a> <span class="id" title="var">p</span>)<br/>
&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">format</span> "p .-abelem") : <span class="id" title="var">group_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">&quot;</span></a>''E_' p ( G )" := (<a class="idref" href="mathcomp.solvable.abelian.html#pElem"><span class="id" title="definition">pElem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span>)<br/>
&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">p</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">format</span> "''E_' p ( G )") : <span class="id" title="var">group_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">&quot;</span></a>''E_' p ^ n ( G )" := (<a class="idref" href="mathcomp.solvable.abelian.html#pnElem"><span class="id" title="definition">pnElem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">G</span>)<br/>
&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">p</span>, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">format</span> "''E_' p ^ n ( G )") : <span class="id" title="var">group_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">&quot;</span></a>''E' ^ n ( G )" := (<a class="idref" href="mathcomp.solvable.abelian.html#nElem"><span class="id" title="definition">nElem</span></a> <span class="id" title="var">n</span> <span class="id" title="var">G</span>)<br/>
&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">format</span> "''E' ^ n ( G )") : <span class="id" title="var">group_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">&quot;</span></a>''E*_' p ( G )" := (<a class="idref" href="mathcomp.solvable.abelian.html#pmaxElem"><span class="id" title="definition">pmaxElem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span>)<br/>
&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">p</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">format</span> "''E*_' p ( G )") : <span class="id" title="var">group_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">&quot;</span></a>''m' ( A )" := (<a class="idref" href="mathcomp.solvable.abelian.html#gen_rank"><span class="id" title="definition">gen_rank</span></a> <span class="id" title="var">A</span>)<br/>
&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">format</span> "''m' ( A )") : <span class="id" title="var">group_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">&quot;</span></a>''r' ( A )" := (<a class="idref" href="mathcomp.solvable.abelian.html#rank"><span class="id" title="definition">rank</span></a> <span class="id" title="var">A</span>)<br/>
&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">format</span> "''r' ( A )") : <span class="id" title="var">group_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">&quot;</span></a>''r_' p ( A )" := (<a class="idref" href="mathcomp.solvable.abelian.html#p_rank"><span class="id" title="definition">p_rank</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span>)<br/>
&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">p</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">format</span> "''r_' p ( A )") : <span class="id" title="var">group_scope</span>.<br/>

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

<br/>
</div>

<div class="doc">
 A functor needs to quantify over the finGroupType just beore the set.  
</div>
<div class="code">

<br/>
<span class="id" title="keyword">Variables</span> (<a name="Functors.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="Functors.gT"><span class="id" title="variable">gT</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.finGroupType"><span class="id" title="abbreviation">finGroupType</span></a>) (<a name="Functors.A"><span class="id" title="variable">A</span></a> : <a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">set</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>).<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Ohm"><span class="id" title="definition">Ohm</span></a> := <a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">set</span></a> <span class="id" title="var">x</span> <a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Functors.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#pdiv"><span class="id" title="definition">pdiv</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Functors.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1<a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&gt;&gt;</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="Mho"><span class="id" title="definition">Mho</span></a> := <a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#182f0780f81053a8ec00cd0f2bb25536"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#182f0780f81053a8ec00cd0f2bb25536"><span class="id" title="notation">set</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#pdiv"><span class="id" title="definition">pdiv</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Functors.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#182f0780f81053a8ec00cd0f2bb25536"><span class="id" title="notation">|</span></a> <span class="id" title="var">x</span> <a class="idref" href="mathcomp.ssreflect.finset.html#182f0780f81053a8ec00cd0f2bb25536"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Functors.A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#182f0780f81053a8ec00cd0f2bb25536"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.solvable.pgroup.html#aaad772397747f44964bc11bb8028a94"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#pdiv"><span class="id" title="definition">pdiv</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#aaad772397747f44964bc11bb8028a94"><span class="id" title="notation">).-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#aaad772397747f44964bc11bb8028a94"><span class="id" title="notation">elt</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#182f0780f81053a8ec00cd0f2bb25536"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&gt;&gt;</span></a>.<br/>

<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Ohm_group</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Functors.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</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.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Ohm"><span class="id" title="definition">Ohm</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">]</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Mho_group</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Functors.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</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.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Mho"><span class="id" title="definition">Mho</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="pdiv_p_elt"><span class="id" title="lemma">pdiv_p_elt</span></a> (<span class="id" title="var">p</span> : <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">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#Functors.gT"><span class="id" title="variable">gT</span></a>) : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#aaad772397747f44964bc11bb8028a94"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#aaad772397747f44964bc11bb8028a94"><span class="id" title="notation">elt</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.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> 1 <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.prime.html#pdiv"><span class="id" title="definition">pdiv</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="OhmPredP"><span class="id" title="lemma">OhmPredP</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#Functors.gT"><span class="id" title="variable">gT</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">p</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.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Functors.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><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> 1) (<a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#pdiv"><span class="id" title="definition">pdiv</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Functors.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Mho_p_elt"><span class="id" title="lemma">Mho_p_elt</span></a> (<span class="id" title="var">p</span> : <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">x</span> : <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#Functors.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#aaad772397747f44964bc11bb8028a94"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#aaad772397747f44964bc11bb8028a94"><span class="id" title="notation">elt</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Functors.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><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">\</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.solvable.abelian.html#Mho"><span class="id" title="definition">Mho</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.abelian.html#Functors"><span class="id" title="section">Functors</span></a>.<br/>

<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">&quot;</span></a>''Ohm_' n ( G )" := (<a class="idref" href="mathcomp.solvable.abelian.html#Ohm"><span class="id" title="definition">Ohm</span></a> <span class="id" title="var">n</span> <span class="id" title="var">G</span>)<br/>
&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">format</span> "''Ohm_' n ( G )") : <span class="id" title="var">group_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="8ce10e5a865533ba61bc29dbd4d1570c"><span class="id" title="notation">&quot;</span></a>''Ohm_' n ( G )" := (<a class="idref" href="mathcomp.solvable.abelian.html#Ohm_group"><span class="id" title="definition">Ohm_group</span></a> <span class="id" title="var">n</span> <span class="id" title="var">G</span>) : <span class="id" title="var">Group_scope</span>.<br/>

<br/>
<span class="id" title="keyword">Notation</span> <a name="c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">&quot;</span></a>''Mho^' n ( G )" := (<a class="idref" href="mathcomp.solvable.abelian.html#Mho"><span class="id" title="definition">Mho</span></a> <span class="id" title="var">n</span> <span class="id" title="var">G</span>)<br/>
&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">n</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 2, <span class="id" title="var">format</span> "''Mho^' n ( G )") : <span class="id" title="var">group_scope</span>.<br/>
<span class="id" title="keyword">Notation</span> <a name="07643b9c2536b728881f5e5077dd0aca"><span class="id" title="notation">&quot;</span></a>''Mho^' n ( G )" := (<a class="idref" href="mathcomp.solvable.abelian.html#Mho_group"><span class="id" title="definition">Mho_group</span></a> <span class="id" title="var">n</span> <span class="id" title="var">G</span>) : <span class="id" title="var">Group_scope</span>.<br/>

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

<br/>
<span class="id" title="keyword">Variable</span> <a name="ExponentAbelem.gT"><span class="id" title="variable">gT</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.finGroupType"><span class="id" title="abbreviation">finGroupType</span></a>.<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">p</span> <span class="id" title="var">n</span> : <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">pi</span> : <a class="idref" href="mathcomp.ssreflect.prime.html#nat_pred"><span class="id" title="definition">nat_pred</span></a>) (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#ExponentAbelem.gT"><span class="id" title="variable">gT</span></a>) (<span class="id" title="var">A</span> <span class="id" title="var">B</span> <span class="id" title="var">C</span> : <a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">set</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#ExponentAbelem.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>).<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">E</span> <span class="id" title="var">G</span> <span class="id" title="var">H</span> <span class="id" title="var">K</span> <span class="id" title="var">P</span> <span class="id" title="var">X</span> <span class="id" title="var">Y</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#ExponentAbelem.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="LdivP"><span class="id" title="lemma">LdivP</span></a> <span class="id" title="var">A</span> <span class="id" title="var">n</span> <span class="id" title="var">x</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.solvable.abelian.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.solvable.abelian.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#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</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> 1) (<a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">Ldiv_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">)</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="dvdn_exponent"><span class="id" title="lemma">dvdn_exponent</span></a> <span class="id" title="var">x</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="expg_exponent"><span class="id" title="lemma">expg_exponent</span></a> <span class="id" title="var">x</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.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> 1.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="exponentS"><span class="id" title="lemma">exponentS</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="exponentP"><span class="id" title="lemma">exponentP</span></a> <span class="id" title="var">A</span> <span class="id" title="var">n</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">x</span>, <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</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> 1) (<a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="trivg_exponent"><span class="id" title="lemma">trivg_exponent</span></a> <span class="id" title="var">G</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.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#24f47bb7b1a372904563d2bdb8a213a4"><span class="id" title="notation">:==:</span></a> 1<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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> 1<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="exponent1"><span class="id" title="lemma">exponent1</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#26d0437a0433a7dd4f49130a7fb26acc"><span class="id" title="notation">[1</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#ExponentAbelem.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#26d0437a0433a7dd4f49130a7fb26acc"><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> 1%<span class="id" title="var">N</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="exponent_dvdn"><span class="id" title="lemma">exponent_dvdn</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="exponent_gt0"><span class="id" title="lemma">exponent_gt0</span></a> <span class="id" title="var">G</span> : 0 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>
 <span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">exponent_gt0</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="pnat_exponent"><span class="id" title="lemma">pnat_exponent</span></a> <span class="id" title="var">pi</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#pi"><span class="id" title="variable">pi</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#8663a77d1d910826e10ba42d1e8d2a02"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#8663a77d1d910826e10ba42d1e8d2a02"><span class="id" title="notation">nat</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#pi"><span class="id" title="variable">pi</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="exponentJ"><span class="id" title="lemma">exponentJ</span></a> <span class="id" title="var">A</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1deb3845cf16de446ae6619879e9d6db"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="exponent_witness"><span class="id" title="lemma">exponent_witness</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.nilpotent.html#nilpotent"><span class="id" title="definition">nilpotent</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><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><span class="id" title="var">x</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.solvable.abelian.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.solvable.abelian.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.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><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="exponent_cycle"><span class="id" title="lemma">exponent_cycle</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="exponent_cyclic"><span class="id" title="lemma">exponent_cyclic</span></a> <span class="id" title="var">X</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="primes_exponent"><span class="id" title="lemma">primes_exponent</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.ssreflect.prime.html#primes"><span class="id" title="definition">primes</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.ssreflect.prime.html#primes"><span class="id" title="definition">primes</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="pi_of_exponent"><span class="id" title="lemma">pi_of_exponent</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">pi</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><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.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">pi</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="partn_exponentS"><span class="id" title="lemma">partn_exponentS</span></a> <span class="id" title="var">pi</span> <span class="id" title="var">H</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#fdd58465d6c6ade4406f2c94baecf8f8"><span class="id" title="notation">`</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#fdd58465d6c6ade4406f2c94baecf8f8"><span class="id" title="notation">_pi</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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.ssreflect.prime.html#fdd58465d6c6ade4406f2c94baecf8f8"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#fdd58465d6c6ade4406f2c94baecf8f8"><span class="id" title="notation">)`</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#fdd58465d6c6ade4406f2c94baecf8f8"><span class="id" title="notation">_pi</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.prime.html#fdd58465d6c6ade4406f2c94baecf8f8"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#fdd58465d6c6ade4406f2c94baecf8f8"><span class="id" title="notation">)`</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#fdd58465d6c6ade4406f2c94baecf8f8"><span class="id" title="notation">_pi</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="exponent_Hall"><span class="id" title="lemma">exponent_Hall</span></a> <span class="id" title="var">pi</span> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.abelian.html#pi"><span class="id" title="variable">pi</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#d5534ad0d60aaeab355c10fe84cd2504"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#d5534ad0d60aaeab355c10fe84cd2504"><span class="id" title="notation">Hall</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#d5534ad0d60aaeab355c10fe84cd2504"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#d5534ad0d60aaeab355c10fe84cd2504"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.prime.html#fdd58465d6c6ade4406f2c94baecf8f8"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#fdd58465d6c6ade4406f2c94baecf8f8"><span class="id" title="notation">)`</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#fdd58465d6c6ade4406f2c94baecf8f8"><span class="id" title="notation">_pi</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="exponent_Zgroup"><span class="id" title="lemma">exponent_Zgroup</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.sylow.html#Zgroup"><span class="id" title="definition">Zgroup</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="cprod_exponent"><span class="id" title="lemma">cprod_exponent</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#9607c0b7b0a7e59f4327b220d5a93330"><span class="id" title="notation">\*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#lcmn"><span class="id" title="definition">lcmn</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a>) (<a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.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>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="dprod_exponent"><span class="id" title="lemma">dprod_exponent</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">x</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#lcmn"><span class="id" title="definition">lcmn</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a>) (<a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.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>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="sub_LdivT"><span class="id" title="lemma">sub_LdivT</span></a> <span class="id" title="var">A</span> <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.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">Ldiv_n</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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</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="LdivT_J"><span class="id" title="lemma">LdivT_J</span></a> <span class="id" title="var">n</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">Ldiv_n</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1deb3845cf16de446ae6619879e9d6db"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">Ldiv_n</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="LdivJ"><span class="id" title="lemma">LdivJ</span></a> <span class="id" title="var">n</span> <span class="id" title="var">A</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">Ldiv_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1deb3845cf16de446ae6619879e9d6db"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><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.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">Ldiv_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1deb3845cf16de446ae6619879e9d6db"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="sub_Ldiv"><span class="id" title="lemma">sub_Ldiv</span></a> <span class="id" title="var">A</span> <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.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">Ldiv_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><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.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</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="group_Ldiv"><span class="id" title="lemma">group_Ldiv</span></a> <span class="id" title="var">G</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#group_set"><span class="id" title="definition">group_set</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">Ldiv_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelian_exponent_gen"><span class="id" title="lemma">abelian_exponent_gen</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelem_pgroup"><span class="id" title="lemma">abelem_pgroup</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelem_abelian"><span class="id" title="lemma">abelem_abelian</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelem1"><span class="id" title="lemma">abelem1</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#26d0437a0433a7dd4f49130a7fb26acc"><span class="id" title="notation">[1</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#ExponentAbelem.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#26d0437a0433a7dd4f49130a7fb26acc"><span class="id" title="notation">]</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelemE"><span class="id" title="lemma">abelemE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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="abelemP"><span class="id" title="lemma">abelemP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">x</span>, <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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> 1) (<a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelem_order_p"><span class="id" title="lemma">abelem_order_p</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.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> 1 <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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="cyclic_abelem_prime"><span class="id" title="lemma">cyclic_abelem_prime</span></a> <span class="id" title="var">p</span> <span class="id" title="var">X</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#36625695d37b6869c156bfcdf13834f7"><span class="id" title="notation">:!=:</span></a> 1 <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.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="cycle_abelem"><span class="id" title="lemma">cycle_abelem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#aaad772397747f44964bc11bb8028a94"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#aaad772397747f44964bc11bb8028a94"><span class="id" title="notation">elt</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">||</span></a> <a class="idref" href="mathcomp.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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="exponent2_abelem"><span class="id" title="lemma">exponent2_abelem</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> 2 <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> 2<a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="prime_abelem"><span class="id" title="lemma">prime_abelem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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.solvable.abelian.html#p"><span class="id" title="variable">p</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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelem_cyclic"><span class="id" title="lemma">abelem_cyclic</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.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="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.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</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#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> 1<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="abelemS"><span class="id" title="lemma">abelemS</span></a> <span class="id" title="var">p</span> <span class="id" title="var">H</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelemJ"><span class="id" title="lemma">abelemJ</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1deb3845cf16de446ae6619879e9d6db"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="cprod_abelem"><span class="id" title="lemma">cprod_abelem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">B</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#9607c0b7b0a7e59f4327b220d5a93330"><span class="id" title="notation">\*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="dprod_abelem"><span class="id" title="lemma">dprod_abelem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">B</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">x</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="is_abelem_pgroup"><span class="id" title="lemma">is_abelem_pgroup</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#is_abelem"><span class="id" title="definition">is_abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="is_abelemP"><span class="id" title="lemma">is_abelemP</span></a> <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#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">p</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.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>) (<a class="idref" href="mathcomp.solvable.abelian.html#is_abelem"><span class="id" title="definition">is_abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="pElemP"><span class="id" title="lemma">pElemP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">E</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.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a>) (<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">)</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="pElemS"><span class="id" title="lemma">pElemS</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="pElemI"><span class="id" title="lemma">pElemI</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#cb41714a5a23482f7a48a98975fa8c59"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#cb41714a5a23482f7a48a98975fa8c59"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#subgroups"><span class="id" title="definition">subgroups</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="pElemJ"><span class="id" title="lemma">pElemJ</span></a> <span class="id" title="var">x</span> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">E</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.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1b3b7d5a57412e3916d5cd60241d631a"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a>)%<span class="id" title="var">G</span> <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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1deb3845cf16de446ae6619879e9d6db"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><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.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><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/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="pnElemP"><span class="id" title="lemma">pnElemP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">A</span> <span class="id" title="var">E</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.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">[/\</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">]</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">)</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="pnElemPcard"><span class="id" title="lemma">pnElemPcard</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">A</span> <span class="id" title="var">E</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">[/\</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">]</span></a>%<span class="id" title="var">N</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="card_pnElem"><span class="id" title="lemma">card_pnElem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">A</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">N</span>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="pnElem0"><span class="id" title="lemma">pnElem0</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a>0<a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.ssreflect.finset.html#b08e42f5c9c65aa9346e7b6dc26e3b5a"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#b08e42f5c9c65aa9346e7b6dc26e3b5a"><span class="id" title="notation">set</span></a> 1%<span class="id" title="var">G</span><a class="idref" href="mathcomp.ssreflect.finset.html#b08e42f5c9c65aa9346e7b6dc26e3b5a"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="pnElem_prime"><span class="id" title="lemma">pnElem_prime</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">A</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="pnElemE"><span class="id" title="lemma">pnElemE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">A</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">set</span></a> <span class="id" title="var">E</span> <a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">N</span><a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="pnElemS"><span class="id" title="lemma">pnElemS</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="pnElemI"><span class="id" title="lemma">pnElemI</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#cb41714a5a23482f7a48a98975fa8c59"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#cb41714a5a23482f7a48a98975fa8c59"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#subgroups"><span class="id" title="definition">subgroups</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="pnElemJ"><span class="id" title="lemma">pnElemJ</span></a> <span class="id" title="var">x</span> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">A</span> <span class="id" title="var">E</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.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1b3b7d5a57412e3916d5cd60241d631a"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a>)%<span class="id" title="var">G</span> <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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1deb3845cf16de446ae6619879e9d6db"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelem_pnElem"><span class="id" title="lemma">abelem_pnElem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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="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">E</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.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="card_p1Elem"><span class="id" title="lemma">card_p1Elem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">X</span> : <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a>1<a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="p1ElemE"><span class="id" title="lemma">p1ElemE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a>1<a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">set</span></a> <span class="id" title="var">X</span> <a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#subgroups"><span class="id" title="definition">subgroups</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#X"><span class="id" title="variable">X</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="TIp1ElemP"><span class="id" title="lemma">TIp1ElemP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">X</span> <span class="id" title="var">Y</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a>1<a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.solvable.abelian.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#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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a>1<a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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="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.solvable.abelian.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#cb41714a5a23482f7a48a98975fa8c59"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.solvable.abelian.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> 1) (<a class="idref" href="mathcomp.solvable.abelian.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#36625695d37b6869c156bfcdf13834f7"><span class="id" title="notation">:!=:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Y"><span class="id" title="variable">Y</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="card_p1Elem_pnElem"><span class="id" title="lemma">card_p1Elem_pnElem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">A</span> <span class="id" title="var">E</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a>1<a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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.ssreflect.bigop.html#61f81dc9ba2725ea9fb474df7def3848"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#61f81dc9ba2725ea9fb474df7def3848"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#61f81dc9ba2725ea9fb474df7def3848"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#61f81dc9ba2725ea9fb474df7def3848"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#61f81dc9ba2725ea9fb474df7def3848"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#i"><span class="id" title="variable">i</span></a>)%<span class="id" title="var">N</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="card_p1Elem_p2Elem"><span class="id" title="lemma">card_p1Elem_p2Elem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a>2<a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a>1<a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="p2Elem_dprodP"><span class="id" title="lemma">p2Elem_dprodP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">E</span> <span class="id" title="var">X</span> <span class="id" title="var">Y</span> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a>2<a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.solvable.abelian.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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a>1<a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.solvable.abelian.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#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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a>1<a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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="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.solvable.abelian.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">x</span></a> <a class="idref" href="mathcomp.solvable.abelian.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="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a>) (<a class="idref" href="mathcomp.solvable.abelian.html#X"><span class="id" title="variable">X</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#36625695d37b6869c156bfcdf13834f7"><span class="id" title="notation">:!=:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Y"><span class="id" title="variable">Y</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="nElemP"><span class="id" title="lemma">nElemP</span></a> <span class="id" title="var">n</span> <span class="id" title="var">G</span> <span class="id" title="var">E</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">p</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.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">)</span></a>) (<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">)</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="nElem0"><span class="id" title="lemma">nElem0</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">^</span></a>0<a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><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.ssreflect.finset.html#b08e42f5c9c65aa9346e7b6dc26e3b5a"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#b08e42f5c9c65aa9346e7b6dc26e3b5a"><span class="id" title="notation">set</span></a> 1%<span class="id" title="var">G</span><a class="idref" href="mathcomp.ssreflect.finset.html#b08e42f5c9c65aa9346e7b6dc26e3b5a"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="nElem1P"><span class="id" title="lemma">nElem1P</span></a> <span class="id" title="var">G</span> <span class="id" title="var">E</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="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</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">p</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.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">^</span></a>1<a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">)</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="nElemS"><span class="id" title="lemma">nElemS</span></a> <span class="id" title="var">n</span> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="nElemI"><span class="id" title="lemma">nElemI</span></a> <span class="id" title="var">n</span> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#cb41714a5a23482f7a48a98975fa8c59"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><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.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#cb41714a5a23482f7a48a98975fa8c59"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#subgroups"><span class="id" title="definition">subgroups</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="def_pnElem"><span class="id" title="lemma">def_pnElem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#cb41714a5a23482f7a48a98975fa8c59"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="pmaxElemP"><span class="id" title="lemma">pmaxElemP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">E</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="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">)</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> <span class="id" title="keyword">∀</span> <span class="id" title="var">H</span>, <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><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.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#67291ec55239f54fa5aa0b0bb974446c"><span class="id" title="notation">:=:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a>)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">)</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="pmaxElem_exists"><span class="id" title="lemma">pmaxElem_exists</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">D</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#D"><span class="id" title="variable">D</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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><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="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">E</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.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><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">&amp;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#D"><span class="id" title="variable">D</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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="pmaxElem_LdivP"><span class="id" title="lemma">pmaxElem_LdivP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> <span class="id" title="var">E</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">Ldiv_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#507fd39a15bb9cb7e52e1aaa9e2285b5"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#507fd39a15bb9cb7e52e1aaa9e2285b5"><span class="id" title="notation">C_G</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#507fd39a15bb9cb7e52e1aaa9e2285b5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#507fd39a15bb9cb7e52e1aaa9e2285b5"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><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.solvable.abelian.html#E"><span class="id" title="variable">E</span></a>) (<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">)</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="pmaxElemS"><span class="id" title="lemma">pmaxElemS</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">B</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#cb41714a5a23482f7a48a98975fa8c59"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#subgroups"><span class="id" title="definition">subgroups</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="pmaxElemJ"><span class="id" title="lemma">pmaxElemJ</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">E</span> <span class="id" title="var">x</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.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1b3b7d5a57412e3916d5cd60241d631a"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a>)%<span class="id" title="var">G</span> <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.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1deb3845cf16de446ae6619879e9d6db"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><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.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><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/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="grank_min"><span class="id" title="lemma">grank_min</span></a> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&gt;&gt;</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><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.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="grank_witness"><span class="id" title="lemma">grank_witness</span></a> <span class="id" title="var">G</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><span class="id" title="var">B</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.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><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.solvable.abelian.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.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><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="p_rank_witness"><span class="id" title="lemma">p_rank_witness</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</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><span class="id" title="var">E</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="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">)(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">)</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/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rank_geP"><span class="id" title="lemma">p_rank_geP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</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">E</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.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">)</span></a>) (<a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rank_gt0"><span class="id" title="lemma">p_rank_gt0</span></a> <span class="id" title="var">p</span> <span class="id" title="var">H</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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#19ab5cfd7e4f60fa14f22b576013bd96"><span class="id" title="notation">&gt;</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.solvable.abelian.html#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#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.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">pi</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><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/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rank1"><span class="id" title="lemma">p_rank1</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#26d0437a0433a7dd4f49130a7fb26acc"><span class="id" title="notation">[1</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#ExponentAbelem.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#26d0437a0433a7dd4f49130a7fb26acc"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="logn_le_p_rank"><span class="id" title="lemma">logn_le_p_rank</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><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.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rank_le_logn"><span class="id" title="lemma">p_rank_le_logn</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rank_abelem"><span class="id" title="lemma">p_rank_abelem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rankS"><span class="id" title="lemma">p_rankS</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rankElem_max"><span class="id" title="lemma">p_rankElem_max</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">)(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rankJ"><span class="id" title="lemma">p_rankJ</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1deb3845cf16de446ae6619879e9d6db"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rank_Sylow"><span class="id" title="lemma">p_rank_Sylow</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#43f075314fcfccdaa8a5813debe2d9ed"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#43f075314fcfccdaa8a5813debe2d9ed"><span class="id" title="notation">Sylow</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#43f075314fcfccdaa8a5813debe2d9ed"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#43f075314fcfccdaa8a5813debe2d9ed"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rank_Hall"><span class="id" title="lemma">p_rank_Hall</span></a> <span class="id" title="var">pi</span> <span class="id" title="var">p</span> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.abelian.html#pi"><span class="id" title="variable">pi</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#d5534ad0d60aaeab355c10fe84cd2504"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#d5534ad0d60aaeab355c10fe84cd2504"><span class="id" title="notation">Hall</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#d5534ad0d60aaeab355c10fe84cd2504"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#d5534ad0d60aaeab355c10fe84cd2504"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#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#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.solvable.abelian.html#pi"><span class="id" title="variable">pi</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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rank_pmaxElem_exists"><span class="id" title="lemma">p_rank_pmaxElem_exists</span></a> <span class="id" title="var">p</span> <span class="id" title="var">r</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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="mathcomp.solvable.abelian.html#r"><span class="id" title="variable">r</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#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">E</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.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">)</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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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="mathcomp.solvable.abelian.html#r"><span class="id" title="variable">r</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="rank1"><span class="id" title="lemma">rank1</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#26d0437a0433a7dd4f49130a7fb26acc"><span class="id" title="notation">[1</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#ExponentAbelem.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#26d0437a0433a7dd4f49130a7fb26acc"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><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.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rank_le_rank"><span class="id" title="lemma">p_rank_le_rank</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="rank_gt0"><span class="id" title="lemma">rank_gt0</span></a> <span class="id" title="var">G</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.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#19ab5cfd7e4f60fa14f22b576013bd96"><span class="id" title="notation">&gt;</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.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#36625695d37b6869c156bfcdf13834f7"><span class="id" title="notation">:!=:</span></a> 1<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="rank_witness"><span class="id" title="lemma">rank_witness</span></a> <span class="id" title="var">G</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><span class="id" title="var">p</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.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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> <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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="rank_pgroup"><span class="id" title="lemma">rank_pgroup</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="rank_Sylow"><span class="id" title="lemma">rank_Sylow</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> <span class="id" title="var">P</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#43f075314fcfccdaa8a5813debe2d9ed"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#43f075314fcfccdaa8a5813debe2d9ed"><span class="id" title="notation">Sylow</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#43f075314fcfccdaa8a5813debe2d9ed"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#43f075314fcfccdaa8a5813debe2d9ed"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#P"><span class="id" title="variable">P</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.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#P"><span class="id" title="variable">P</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="rank_abelem"><span class="id" title="lemma">rank_abelem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><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.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="nt_pnElem"><span class="id" title="lemma">nt_pnElem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">E</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.solvable.abelian.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#19ab5cfd7e4f60fa14f22b576013bd96"><span class="id" title="notation">&gt;</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.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#36625695d37b6869c156bfcdf13834f7"><span class="id" title="notation">:!=:</span></a> 1.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="rankJ"><span class="id" title="lemma">rankJ</span></a> <span class="id" title="var">A</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1deb3845cf16de446ae6619879e9d6db"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><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.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="rankS"><span class="id" title="lemma">rankS</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><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.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="rank_geP"><span class="id" title="lemma">rank_geP</span></a> <span class="id" title="var">n</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">E</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.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">)</span></a>) (<a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a>).<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.abelian.html#ExponentAbelem"><span class="id" title="section">ExponentAbelem</span></a>.<br/>

<br/>

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

<br/>
<span class="id" title="keyword">Variables</span> (<a name="MorphAbelem.aT"><span class="id" title="variable">aT</span></a> <a name="MorphAbelem.rT"><span class="id" title="variable">rT</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.finGroupType"><span class="id" title="abbreviation">finGroupType</span></a>) (<a name="MorphAbelem.D"><span class="id" title="variable">D</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>) (<a name="MorphAbelem.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">morphism</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#D"><span class="id" title="variable">D</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">}</span></a>).<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">G</span> <span class="id" title="var">H</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#MorphAbelem.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">set</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#MorphAbelem.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="exponent_morphim"><span class="id" title="lemma">exponent_morphim</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#MorphAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>) <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="morphim_LdivT"><span class="id" title="lemma">morphim_LdivT</span></a> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.solvable.abelian.html#MorphAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">Ldiv_n</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">Ldiv_n</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="morphim_Ldiv"><span class="id" title="lemma">morphim_Ldiv</span></a> <span class="id" title="var">n</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.solvable.abelian.html#MorphAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">Ldiv_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">Ldiv_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#MorphAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="morphim_abelem"><span class="id" title="lemma">morphim_abelem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#MorphAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="morphim_pElem"><span class="id" title="lemma">morphim_pElem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><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.solvable.abelian.html#MorphAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#3b106b15610dbcdb2f3d7e59c9b527c5"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">G</span> <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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#MorphAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="morphim_pnElem"><span class="id" title="lemma">morphim_pnElem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">G</span> <span class="id" title="var">E</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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="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">m</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.solvable.abelian.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</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> (<a class="idref" href="mathcomp.solvable.abelian.html#MorphAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#3b106b15610dbcdb2f3d7e59c9b527c5"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">G</span> <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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#MorphAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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="morphim_grank"><span class="id" title="lemma">morphim_grank</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#MorphAbelem.D"><span class="id" title="variable">D</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.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#MorphAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><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.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">)</span></a>.<br/>

<br/>
</div>

<div class="doc">
 There are no general morphism relations for the p-rank. We later prove     
 some relations for the p-rank of a quotient in the QuotientAbelem section.  
</div>
<div class="code">

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.abelian.html#MorphAbelem"><span class="id" title="section">MorphAbelem</span></a>.<br/>

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

<br/>
<span class="id" title="keyword">Variables</span> (<a name="InjmAbelem.aT"><span class="id" title="variable">aT</span></a> <a name="InjmAbelem.rT"><span class="id" title="variable">rT</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.finGroupType"><span class="id" title="abbreviation">finGroupType</span></a>) (<a name="InjmAbelem.D"><span class="id" title="variable">D</span></a> <a name="InjmAbelem.G"><span class="id" title="variable">G</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>) (<a name="InjmAbelem.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">morphism</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#D"><span class="id" title="variable">D</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">}</span></a>).<br/>
<span class="id" title="keyword">Hypotheses</span> (<a name="InjmAbelem.injf"><span class="id" title="variable">injf</span></a> : <a class="idref" href="mathcomp.fingroup.morphism.html#14bfb149f00fa839cfb11397f4fe629f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#14bfb149f00fa839cfb11397f4fe629f"><span class="id" title="notation">injm</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a>) (<a name="InjmAbelem.sGD"><span class="id" title="variable">sGD</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.D"><span class="id" title="variable">D</span></a>).<br/>
<span class="id" title="keyword">Let</span> <a name="InjmAbelem.defG"><span class="id" title="variable">defG</span></a> : <a class="idref" href="mathcomp.fingroup.morphism.html#invm"><span class="id" title="definition">invm</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.injf"><span class="id" title="variable">injf</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><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.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a> := <a class="idref" href="mathcomp.fingroup.morphism.html#morphim_invm"><span class="id" title="lemma">morphim_invm</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.injf"><span class="id" title="variable">injf</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.sGD"><span class="id" title="variable">sGD</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="exponent_injm"><span class="id" title="lemma">exponent_injm</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="injm_Ldiv"><span class="id" title="lemma">injm_Ldiv</span></a> <span class="id" title="var">n</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">Ldiv_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><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.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">Ldiv_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="injm_abelem"><span class="id" title="lemma">injm_abelem</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="injm_pElem"><span class="id" title="lemma">injm_pElem</span></a> <span class="id" title="var">p</span> (<span class="id" title="var">E</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.D"><span class="id" title="variable">D</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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a>(<a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#3b106b15610dbcdb2f3d7e59c9b527c5"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">G</span> <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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><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.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><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/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="injm_pnElem"><span class="id" title="lemma">injm_pnElem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> (<span class="id" title="var">E</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.D"><span class="id" title="variable">D</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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a>(<a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#3b106b15610dbcdb2f3d7e59c9b527c5"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">G</span> <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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="injm_nElem"><span class="id" title="lemma">injm_nElem</span></a> <span class="id" title="var">n</span> (<span class="id" title="var">E</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.D"><span class="id" title="variable">D</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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a>(<a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#3b106b15610dbcdb2f3d7e59c9b527c5"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">G</span> <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.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><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.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#afcbfc52192347c2cfc7024c08ed2e96"><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/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="injm_pmaxElem"><span class="id" title="lemma">injm_pmaxElem</span></a> <span class="id" title="var">p</span> (<span class="id" title="var">E</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.D"><span class="id" title="variable">D</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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a>(<a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#3b106b15610dbcdb2f3d7e59c9b527c5"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">G</span> <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.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><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.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><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/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="injm_grank"><span class="id" title="lemma">injm_grank</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><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.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="injm_p_rank"><span class="id" title="lemma">injm_p_rank</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="injm_rank"><span class="id" title="lemma">injm_rank</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><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.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.abelian.html#InjmAbelem"><span class="id" title="section">InjmAbelem</span></a>.<br/>

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

<br/>
<span class="id" title="keyword">Variables</span> (<a name="IsogAbelem.aT"><span class="id" title="variable">aT</span></a> <a name="IsogAbelem.rT"><span class="id" title="variable">rT</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.finGroupType"><span class="id" title="abbreviation">finGroupType</span></a>) (<a name="IsogAbelem.G"><span class="id" title="variable">G</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>) (<a name="IsogAbelem.H"><span class="id" title="variable">H</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>).<br/>
<span class="id" title="keyword">Hypothesis</span> <a name="IsogAbelem.isoGH"><span class="id" title="variable">isoGH</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelem.G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#cec6c3028572f2d4d267ecf02dc64058"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#cec6c3028572f2d4d267ecf02dc64058"><span class="id" title="notation">isog</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelem.H"><span class="id" title="variable">H</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="exponent_isog"><span class="id" title="lemma">exponent_isog</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelem.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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelem.H"><span class="id" title="variable">H</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="isog_abelem"><span class="id" title="lemma">isog_abelem</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelem.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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelem.H"><span class="id" title="variable">H</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="isog_grank"><span class="id" title="lemma">isog_grank</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><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.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelem.H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="isog_p_rank"><span class="id" title="lemma">isog_p_rank</span></a> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelem.H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="isog_rank"><span class="id" title="lemma">isog_rank</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelem.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><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.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelem.H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelem"><span class="id" title="section">IsogAbelem</span></a>.<br/>

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

<br/>
<span class="id" title="keyword">Variables</span> (<a name="QuotientAbelem.gT"><span class="id" title="variable">gT</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.finGroupType"><span class="id" title="abbreviation">finGroupType</span></a>) (<a name="QuotientAbelem.p"><span class="id" title="variable">p</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/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">E</span> <span class="id" title="var">G</span> <span class="id" title="var">K</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#QuotientAbelem.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="exponent_quotient"><span class="id" title="lemma">exponent_quotient</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#c7768147d2d560601601fbf95706ddcc"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a>) <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="quotient_LdivT"><span class="id" title="lemma">quotient_LdivT</span></a> <span class="id" title="var">n</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">Ldiv_n</span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#c7768147d2d560601601fbf95706ddcc"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#51a3e9ffc57810fb075b7e4ccecaf6f1"><span class="id" title="notation">Ldiv_n</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="quotient_Ldiv"><span class="id" title="lemma">quotient_Ldiv</span></a> <span class="id" title="var">n</span> <span class="id" title="var">A</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">Ldiv_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#c7768147d2d560601601fbf95706ddcc"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">Ldiv_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#c7768147d2d560601601fbf95706ddcc"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="quotient_abelem"><span class="id" title="lemma">quotient_abelem</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.abelian.html#QuotientAbelem.p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#QuotientAbelem.p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#c7768147d2d560601601fbf95706ddcc"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="quotient_pElem"><span class="id" title="lemma">quotient_pElem</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><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.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#8801253978f4673894d0abd8a04faa8d"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a>)%<span class="id" title="var">G</span> <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.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#c7768147d2d560601601fbf95706ddcc"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#e0336b1f74adb91285263f02bb02017d"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="logn_quotient"><span class="id" title="lemma">logn_quotient</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#QuotientAbelem.p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#c7768147d2d560601601fbf95706ddcc"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</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#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#QuotientAbelem.p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="quotient_pnElem"><span class="id" title="lemma">quotient_pnElem</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> <span class="id" title="var">n</span> <span class="id" title="var">E</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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="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">m</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.solvable.abelian.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</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> (<a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#8801253978f4673894d0abd8a04faa8d"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a>)%<span class="id" title="var">G</span> <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.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">E_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#c7768147d2d560601601fbf95706ddcc"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#1b851bcf821e0c155d9765a6ddd2e288"><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="quotient_grank"><span class="id" title="lemma">quotient_grank</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#3cae19671031307d430e5b14ccbd1058"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#3cae19671031307d430e5b14ccbd1058"><span class="id" title="notation">N</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#3cae19671031307d430e5b14ccbd1058"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#3cae19671031307d430e5b14ccbd1058"><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.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#c7768147d2d560601601fbf95706ddcc"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><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.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rank_quotient"><span class="id" title="lemma">p_rank_quotient</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#3cae19671031307d430e5b14ccbd1058"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#3cae19671031307d430e5b14ccbd1058"><span class="id" title="notation">N</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#3cae19671031307d430e5b14ccbd1058"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#3cae19671031307d430e5b14ccbd1058"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#c7768147d2d560601601fbf95706ddcc"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rank_dprod"><span class="id" title="lemma">p_rank_dprod</span></a> <span class="id" title="var">K</span> <span class="id" title="var">H</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">x</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rank_p'quotient"><span class="id" title="lemma">p_rank_p'quotient</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.prime.html#233366c70a33ee49ba3eedb41626d66a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#QuotientAbelem.p"><span class="id" title="variable">p</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.ssreflect.prime.html#233366c70a33ee49ba3eedb41626d66a"><span class="id" title="notation">)^'</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#3cae19671031307d430e5b14ccbd1058"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#3cae19671031307d430e5b14ccbd1058"><span class="id" title="notation">N</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#3cae19671031307d430e5b14ccbd1058"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#3cae19671031307d430e5b14ccbd1058"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#c7768147d2d560601601fbf95706ddcc"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.abelian.html#QuotientAbelem"><span class="id" title="section">QuotientAbelem</span></a>.<br/>

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

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

<br/>
<span class="id" title="keyword">Variables</span> (<a name="OhmProps.Generic.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="OhmProps.Generic.gT"><span class="id" title="variable">gT</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.finGroupType"><span class="id" title="abbreviation">finGroupType</span></a>).<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">p</span> : <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">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.gT"><span class="id" title="variable">gT</span></a>) (<span class="id" title="var">rT</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.finGroupType"><span class="id" title="abbreviation">finGroupType</span></a>).<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">set</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">D</span> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm_sub"><span class="id" title="lemma">Ohm_sub</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm1"><span class="id" title="lemma">Ohm1</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#26d0437a0433a7dd4f49130a7fb26acc"><span class="id" title="notation">[1</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#26d0437a0433a7dd4f49130a7fb26acc"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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> 1.  <br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm_id"><span class="id" title="lemma">Ohm_id</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">('</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm_cont"><span class="id" title="lemma">Ohm_cont</span></a> <span class="id" title="var">rT</span> <span class="id" title="var">G</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">morphism</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">}</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="OhmS"><span class="id" title="lemma">OhmS</span></a> <span class="id" title="var">H</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="OhmE"><span class="id" title="lemma">OhmE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">Ldiv_</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">)(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&gt;&gt;</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="OhmEabelian"><span class="id" title="lemma">OhmEabelian</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">Ldiv_</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">)(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm_p_cycle"><span class="id" title="lemma">Ohm_p_cycle</span></a> <span class="id" title="var">p</span> <span class="id" title="var">x</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#aaad772397747f44964bc11bb8028a94"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#aaad772397747f44964bc11bb8028a94"><span class="id" title="notation">elt</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]&gt;</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><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.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]&gt;</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm_dprod"><span class="id" title="lemma">Ohm_dprod</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">x</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">x</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Mho_sub"><span class="id" title="lemma">Mho_sub</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Mho1"><span class="id" title="lemma">Mho1</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#26d0437a0433a7dd4f49130a7fb26acc"><span class="id" title="notation">[1</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#26d0437a0433a7dd4f49130a7fb26acc"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><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> 1.  <br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="morphim_Mho"><span class="id" title="lemma">morphim_Mho</span></a> <span class="id" title="var">rT</span> <span class="id" title="var">D</span> <span class="id" title="var">G</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">morphism</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#D"><span class="id" title="variable">D</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">}</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#D"><span class="id" title="variable">D</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.solvable.abelian.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><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.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Mho_cont"><span class="id" title="lemma">Mho_cont</span></a> <span class="id" title="var">rT</span> <span class="id" title="var">G</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">morphism</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">}</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="MhoS"><span class="id" title="lemma">MhoS</span></a> <span class="id" title="var">H</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="MhoE"><span class="id" title="lemma">MhoE</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><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.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#c4eb68ed64baca4028c54e8eaca3672a"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#c4eb68ed64baca4028c54e8eaca3672a"><span class="id" title="notation">set</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#c4eb68ed64baca4028c54e8eaca3672a"><span class="id" title="notation">|</span></a> <span class="id" title="var">x</span> <a class="idref" href="mathcomp.ssreflect.finset.html#c4eb68ed64baca4028c54e8eaca3672a"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#c4eb68ed64baca4028c54e8eaca3672a"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&gt;&gt;</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="MhoEabelian"><span class="id" title="lemma">MhoEabelian</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><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.ssreflect.finset.html#c4eb68ed64baca4028c54e8eaca3672a"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#c4eb68ed64baca4028c54e8eaca3672a"><span class="id" title="notation">set</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#c4eb68ed64baca4028c54e8eaca3672a"><span class="id" title="notation">|</span></a> <span class="id" title="var">x</span> <a class="idref" href="mathcomp.ssreflect.finset.html#c4eb68ed64baca4028c54e8eaca3672a"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#c4eb68ed64baca4028c54e8eaca3672a"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="trivg_Mho"><span class="id" title="lemma">trivg_Mho</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1 <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.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Mho_p_cycle"><span class="id" title="lemma">Mho_p_cycle</span></a> <span class="id" title="var">p</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#aaad772397747f44964bc11bb8028a94"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#aaad772397747f44964bc11bb8028a94"><span class="id" title="notation">elt</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]&gt;</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><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.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]&gt;</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Mho_cprod"><span class="id" title="lemma">Mho_cprod</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#9607c0b7b0a7e59f4327b220d5a93330"><span class="id" title="notation">\*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#9607c0b7b0a7e59f4327b220d5a93330"><span class="id" title="notation">\*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><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.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Mho_dprod"><span class="id" title="lemma">Mho_dprod</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">x</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">x</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><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.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.Generic"><span class="id" title="section">Generic</span></a>.<br/>

<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Ohm_igFun</span> <span class="id" title="var">i</span> := <a class="idref" href="mathcomp.solvable.gfunctor.html#a1ae11930941a680f6750f6723874923"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.solvable.gfunctor.html#a1ae11930941a680f6750f6723874923"><span class="id" title="notation">igFun</span></a> <a class="idref" href="mathcomp.solvable.gfunctor.html#a1ae11930941a680f6750f6723874923"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Ohm_sub"><span class="id" title="lemma">Ohm_sub</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.solvable.gfunctor.html#a1ae11930941a680f6750f6723874923"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Ohm_cont"><span class="id" title="lemma">Ohm_cont</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.solvable.gfunctor.html#a1ae11930941a680f6750f6723874923"><span class="id" title="notation">]</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Ohm_gFun</span> <span class="id" title="var">i</span> := <a class="idref" href="mathcomp.solvable.gfunctor.html#f83b8fb103ae042d25e7034a8b11b7e7"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.solvable.gfunctor.html#f83b8fb103ae042d25e7034a8b11b7e7"><span class="id" title="notation">gFun</span></a> <a class="idref" href="mathcomp.solvable.gfunctor.html#f83b8fb103ae042d25e7034a8b11b7e7"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Ohm_cont"><span class="id" title="lemma">Ohm_cont</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.solvable.gfunctor.html#f83b8fb103ae042d25e7034a8b11b7e7"><span class="id" title="notation">]</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Ohm_mgFun</span> <span class="id" title="var">i</span> := <a class="idref" href="mathcomp.solvable.gfunctor.html#34d675edff20d6d91e43f305650662d9"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.solvable.gfunctor.html#34d675edff20d6d91e43f305650662d9"><span class="id" title="notation">mgFun</span></a> <a class="idref" href="mathcomp.solvable.gfunctor.html#34d675edff20d6d91e43f305650662d9"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmS"><span class="id" title="lemma">OhmS</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.solvable.gfunctor.html#34d675edff20d6d91e43f305650662d9"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Mho_igFun</span> <span class="id" title="var">i</span> := <a class="idref" href="mathcomp.solvable.gfunctor.html#a1ae11930941a680f6750f6723874923"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.solvable.gfunctor.html#a1ae11930941a680f6750f6723874923"><span class="id" title="notation">igFun</span></a> <a class="idref" href="mathcomp.solvable.gfunctor.html#a1ae11930941a680f6750f6723874923"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Mho_sub"><span class="id" title="lemma">Mho_sub</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.solvable.gfunctor.html#a1ae11930941a680f6750f6723874923"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Mho_cont"><span class="id" title="lemma">Mho_cont</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.solvable.gfunctor.html#a1ae11930941a680f6750f6723874923"><span class="id" title="notation">]</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Mho_gFun</span> <span class="id" title="var">i</span> := <a class="idref" href="mathcomp.solvable.gfunctor.html#f83b8fb103ae042d25e7034a8b11b7e7"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.solvable.gfunctor.html#f83b8fb103ae042d25e7034a8b11b7e7"><span class="id" title="notation">gFun</span></a> <a class="idref" href="mathcomp.solvable.gfunctor.html#f83b8fb103ae042d25e7034a8b11b7e7"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#Mho_cont"><span class="id" title="lemma">Mho_cont</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.solvable.gfunctor.html#f83b8fb103ae042d25e7034a8b11b7e7"><span class="id" title="notation">]</span></a>.<br/>
<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Mho_mgFun</span> <span class="id" title="var">i</span> := <a class="idref" href="mathcomp.solvable.gfunctor.html#34d675edff20d6d91e43f305650662d9"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.solvable.gfunctor.html#34d675edff20d6d91e43f305650662d9"><span class="id" title="notation">mgFun</span></a> <a class="idref" href="mathcomp.solvable.gfunctor.html#34d675edff20d6d91e43f305650662d9"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#MhoS"><span class="id" title="lemma">MhoS</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.solvable.gfunctor.html#34d675edff20d6d91e43f305650662d9"><span class="id" title="notation">]</span></a>.<br/>

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

<br/>
<span class="id" title="keyword">Variables</span> (<a name="OhmProps.char.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="OhmProps.char.gT"><span class="id" title="variable">gT</span></a> <a name="OhmProps.char.rT"><span class="id" title="variable">rT</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.finGroupType"><span class="id" title="abbreviation">finGroupType</span></a>) (<a name="OhmProps.char.D"><span class="id" title="variable">D</span></a> <a name="OhmProps.char.G"><span class="id" title="variable">G</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm_char"><span class="id" title="lemma">Ohm_char</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.automorphism.html#004858100bfba9714bde1cdbce60358b"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.automorphism.html#004858100bfba9714bde1cdbce60358b"><span class="id" title="notation">char</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a>.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm_normal"><span class="id" title="lemma">Ohm_normal</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#c27c638e534bbb5b7de2d4b4aa0a3e82"><span class="id" title="notation">&lt;|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a>.  <br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Mho_char"><span class="id" title="lemma">Mho_char</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.automorphism.html#004858100bfba9714bde1cdbce60358b"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.automorphism.html#004858100bfba9714bde1cdbce60358b"><span class="id" title="notation">char</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a>.  <br/>
<span class="id" title="keyword">Lemma</span> <a name="Mho_normal"><span class="id" title="lemma">Mho_normal</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#c27c638e534bbb5b7de2d4b4aa0a3e82"><span class="id" title="notation">&lt;|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a>.  <br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="morphim_Ohm"><span class="id" title="lemma">morphim_Ohm</span></a> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">morphism</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.D"><span class="id" title="variable">D</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">}</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.D"><span class="id" title="variable">D</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.solvable.abelian.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="injm_Ohm"><span class="id" title="lemma">injm_Ohm</span></a> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">morphism</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.D"><span class="id" title="variable">D</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">}</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.fingroup.morphism.html#14bfb149f00fa839cfb11397f4fe629f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#14bfb149f00fa839cfb11397f4fe629f"><span class="id" title="notation">injm</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.D"><span class="id" title="variable">D</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.solvable.abelian.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="isog_Ohm"><span class="id" title="lemma">isog_Ohm</span></a> (<span class="id" title="var">H</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>) : <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#cec6c3028572f2d4d267ecf02dc64058"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#cec6c3028572f2d4d267ecf02dc64058"><span class="id" title="notation">isog</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#cec6c3028572f2d4d267ecf02dc64058"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#cec6c3028572f2d4d267ecf02dc64058"><span class="id" title="notation">isog</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="isog_Mho"><span class="id" title="lemma">isog_Mho</span></a> (<span class="id" title="var">H</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>) : <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#cec6c3028572f2d4d267ecf02dc64058"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#cec6c3028572f2d4d267ecf02dc64058"><span class="id" title="notation">isog</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#cec6c3028572f2d4d267ecf02dc64058"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#cec6c3028572f2d4d267ecf02dc64058"><span class="id" title="notation">isog</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char.n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.char"><span class="id" title="section">char</span></a>.<br/>

<br/>
<span class="id" title="keyword">Variable</span> <a name="OhmProps.gT"><span class="id" title="variable">gT</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.finGroupType"><span class="id" title="abbreviation">finGroupType</span></a>.<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">pi</span> : <a class="idref" href="mathcomp.ssreflect.prime.html#nat_pred"><span class="id" title="definition">nat_pred</span></a>) (<span class="id" title="var">p</span> : <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/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">A</span> <span class="id" title="var">B</span> <span class="id" title="var">C</span> : <a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">set</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">D</span> <span class="id" title="var">G</span> <span class="id" title="var">H</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm0"><span class="id" title="lemma">Ohm0</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_0</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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> 1.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm_leq"><span class="id" title="lemma">Ohm_leq</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</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.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_m</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="OhmJ"><span class="id" title="lemma">OhmJ</span></a> <span class="id" title="var">n</span> <span class="id" title="var">G</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1deb3845cf16de446ae6619879e9d6db"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1deb3845cf16de446ae6619879e9d6db"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Mho0"><span class="id" title="lemma">Mho0</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a>0<a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><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.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Mho_leq"><span class="id" title="lemma">Mho_leq</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</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.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="MhoJ"><span class="id" title="lemma">MhoJ</span></a> <span class="id" title="var">n</span> <span class="id" title="var">G</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1deb3845cf16de446ae6619879e9d6db"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><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.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1deb3845cf16de446ae6619879e9d6db"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="extend_cyclic_Mho"><span class="id" title="lemma">extend_cyclic_Mho</span></a> <span class="id" title="var">G</span> <span class="id" title="var">p</span> <span class="id" title="var">x</span> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a>1<a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><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.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <br/>
&nbsp;&nbsp;<span class="id" title="keyword">∀</span> <span class="id" title="var">k</span>, <a class="idref" href="mathcomp.solvable.abelian.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#19ab5cfd7e4f60fa14f22b576013bd96"><span class="id" title="notation">&gt;</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.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><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.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]&gt;</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm1Eprime"><span class="id" title="lemma">Ohm1Eprime</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">set</span></a> <span class="id" title="var">x</span> <a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#11a9aebd9632a5968df4f5811663355a"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">&gt;&gt;</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelem_Ohm1"><span class="id" title="lemma">abelem_Ohm1</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm1_abelem"><span class="id" title="lemma">Ohm1_abelem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a>).<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm1_id"><span class="id" title="lemma">Ohm1_id</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelem_Ohm1P"><span class="id" title="lemma">abelem_Ohm1P</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#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#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>) (<a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="TI_Ohm1"><span class="id" title="lemma">TI_Ohm1</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#cb41714a5a23482f7a48a98975fa8c59"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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> 1 <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.solvable.abelian.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#cb41714a5a23482f7a48a98975fa8c59"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.solvable.abelian.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> 1.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm1_eq1"><span class="id" title="lemma">Ohm1_eq1</span></a> <span class="id" title="var">G</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.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1<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.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#24f47bb7b1a372904563d2bdb8a213a4"><span class="id" title="notation">:==:</span></a> 1<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="meet_Ohm1"><span class="id" title="lemma">meet_Ohm1</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#cb41714a5a23482f7a48a98975fa8c59"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 1 <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.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#cb41714a5a23482f7a48a98975fa8c59"><span class="id" title="notation">:&amp;:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 1.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm1_cent_max"><span class="id" title="lemma">Ohm1_cent_max</span></a> <span class="id" title="var">G</span> <span class="id" title="var">E</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</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.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">E</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">×</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#0d68c29ae94d047cc138b92b24216846"><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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#507fd39a15bb9cb7e52e1aaa9e2285b5"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#507fd39a15bb9cb7e52e1aaa9e2285b5"><span class="id" title="notation">C_G</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#507fd39a15bb9cb7e52e1aaa9e2285b5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#507fd39a15bb9cb7e52e1aaa9e2285b5"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.solvable.abelian.html#E"><span class="id" title="variable">E</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm1_cyclic_pgroup_prime"><span class="id" title="lemma">Ohm1_cyclic_pgroup_prime</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#36625695d37b6869c156bfcdf13834f7"><span class="id" title="notation">:!=:</span></a> 1 <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.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="cyclic_pgroup_dprod_trivg"><span class="id" title="lemma">cyclic_pgroup_dprod_trivg</span></a> <span class="id" title="var">p</span> <span class="id" title="var">A</span> <span class="id" title="var">B</span> <span class="id" title="var">C</span> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#C"><span class="id" title="variable">C</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.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#C"><span class="id" title="variable">C</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.solvable.abelian.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">x</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.html#C"><span class="id" title="variable">C</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.solvable.abelian.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> 1 <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.solvable.abelian.html#B"><span class="id" title="variable">B</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.solvable.abelian.html#C"><span class="id" title="variable">C</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#7a45dffb109c3069e5c675be68643e60"><span class="id" title="notation">∨</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#B"><span class="id" title="variable">B</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> 1 <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.solvable.abelian.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.solvable.abelian.html#C"><span class="id" title="variable">C</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="piOhm1"><span class="id" title="lemma">piOhm1</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">pi</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><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.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">pi</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#041d58b37e83f44180445b7edc4ecdfd"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm1Eexponent"><span class="id" title="lemma">Ohm1Eexponent</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">Ldiv_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#b06f56cd886fcbad526a037600cca851"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rank_Ohm1"><span class="id" title="lemma">p_rank_Ohm1</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="rank_Ohm1"><span class="id" title="lemma">rank_Ohm1</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><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.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="p_rank_abelian"><span class="id" title="lemma">p_rank_abelian</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="rank_abelian_pgroup"><span class="id" title="lemma">rank_abelian_pgroup</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><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.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.abelian.html#OhmProps"><span class="id" title="section">OhmProps</span></a>.<br/>

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

<br/>
<span class="id" title="keyword">Variable</span> <a name="AbelianStructure.gT"><span class="id" title="variable">gT</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.finGroupType"><span class="id" title="abbreviation">finGroupType</span></a>.<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">p</span> : <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">G</span> <span class="id" title="var">H</span> <span class="id" title="var">K</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#AbelianStructure.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelian_splits"><span class="id" title="lemma">abelian_splits</span></a> <span class="id" title="var">x</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#0a7352dd0cab58f1c154ca74b1d45ebb"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#0a7352dd0cab58f1c154ca74b1d45ebb"><span class="id" title="notation">splits</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#0a7352dd0cab58f1c154ca74b1d45ebb"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#0a7352dd0cab58f1c154ca74b1d45ebb"><span class="id" title="notation">over</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]&gt;</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#0a7352dd0cab58f1c154ca74b1d45ebb"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelem_splits"><span class="id" title="lemma">abelem_splits</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#0a7352dd0cab58f1c154ca74b1d45ebb"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#0a7352dd0cab58f1c154ca74b1d45ebb"><span class="id" title="notation">splits</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#0a7352dd0cab58f1c154ca74b1d45ebb"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#0a7352dd0cab58f1c154ca74b1d45ebb"><span class="id" title="notation">over</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#0a7352dd0cab58f1c154ca74b1d45ebb"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Fact</span> <a name="abelian_type_subproof"><span class="id" title="lemma">abelian_type_subproof</span></a> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#50b5d8dd6be4fba768e35617e518ad76"><span class="id" title="notation">{</span></a><span class="id" title="var">H</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#50b5d8dd6be4fba768e35617e518ad76"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#AbelianStructure.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#50b5d8dd6be4fba768e35617e518ad76"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><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><span class="id" title="var">x</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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]&gt;</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">x</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#50b5d8dd6be4fba768e35617e518ad76"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Fixpoint</span> <a name="abelian_type_rec"><span class="id" title="definition">abelian_type_rec</span></a> <span class="id" title="var">n</span> <span class="id" title="var">G</span> :=<br/>
&nbsp;&nbsp;<span class="id" title="keyword">if</span> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a> <span class="id" title="keyword">is</span> <span class="id" title="var">n'</span><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a> <span class="id" title="keyword">then</span> <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> <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.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.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#36625695d37b6869c156bfcdf13834f7"><span class="id" title="notation">:!=:</span></a> 1<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.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#d7fed0909a58e41c49e3ee117361b0a5"><span class="id" title="notation">::</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#abelian_type_rec"><span class="id" title="definition">abelian_type_rec</span></a> <span class="id" title="var">n'</span> (<a class="idref" href="mathcomp.ssreflect.eqtype.html#tag"><span class="id" title="definition">tag</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#abelian_type_subproof"><span class="id" title="lemma">abelian_type_subproof</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>))<br/>
&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">else</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#747e2b5d553b2dfe76e024e1f8fb39d1"><span class="id" title="notation">[::]</span></a> <span class="id" title="keyword">else</span> <a class="idref" href="mathcomp.ssreflect.seq.html#747e2b5d553b2dfe76e024e1f8fb39d1"><span class="id" title="notation">[::]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Definition</span> <a name="abelian_type"><span class="id" title="definition">abelian_type</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">set</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#AbelianStructure.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>) := <a class="idref" href="mathcomp.solvable.abelian.html#abelian_type_rec"><span class="id" title="definition">abelian_type_rec</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#8794516b70618e1ee3ecb179b4baf368"><span class="id" title="notation">&lt;&lt;</span></a><a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#8794516b70618e1ee3ecb179b4baf368"><span class="id" title="notation">&gt;&gt;</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelian_type_dvdn_sorted"><span class="id" title="lemma">abelian_type_dvdn_sorted</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.ssreflect.path.html#sorted"><span class="id" title="definition">sorted</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#82abed2919e25bf64cb56067d0f5feee"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#82abed2919e25bf64cb56067d0f5feee"><span class="id" title="notation">rel</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#82abed2919e25bf64cb56067d0f5feee"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#82abed2919e25bf64cb56067d0f5feee"><span class="id" title="notation">]</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#abelian_type"><span class="id" title="definition">abelian_type</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelian_type_gt1"><span class="id" title="lemma">abelian_type_gt1</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#880a9790dece461a678db8aa0c091f63"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#880a9790dece461a678db8aa0c091f63"><span class="id" title="notation">pred</span></a> <span class="id" title="var">m</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#880a9790dece461a678db8aa0c091f63"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#19ab5cfd7e4f60fa14f22b576013bd96"><span class="id" title="notation">&gt;</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#880a9790dece461a678db8aa0c091f63"><span class="id" title="notation">]</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#abelian_type"><span class="id" title="definition">abelian_type</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelian_type_sorted"><span class="id" title="lemma">abelian_type_sorted</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.ssreflect.path.html#sorted"><span class="id" title="definition">sorted</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#geq"><span class="id" title="definition">geq</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#abelian_type"><span class="id" title="definition">abelian_type</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a>).<br/>

<br/>
<span class="id" title="keyword">Theorem</span> <a name="abelian_structure"><span class="id" title="lemma">abelian_structure</span></a> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#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">b</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.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.fingroup.gproduct.html#dprod"><span class="id" title="abbreviation">dprod</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">/</span></a>1<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">x</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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.solvable.abelian.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.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">&amp;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#order"><span class="id" title="definition">order</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#b"><span class="id" title="variable">b</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.solvable.abelian.html#abelian_type"><span class="id" title="definition">abelian_type</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">}</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="count_logn_dprod_cycle"><span class="id" title="lemma">count_logn_dprod_cycle</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">b</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;&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.fingroup.gproduct.html#dprod"><span class="id" title="abbreviation">dprod</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">/</span></a>1<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">x</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.seq.html#count"><span class="id" title="definition">count</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#880a9790dece461a678db8aa0c091f63"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#880a9790dece461a678db8aa0c091f63"><span class="id" title="notation">pred</span></a> <span class="id" title="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#880a9790dece461a678db8aa0c091f63"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#19ab5cfd7e4f60fa14f22b576013bd96"><span class="id" title="notation">&gt;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#880a9790dece461a678db8aa0c091f63"><span class="id" title="notation">]</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#b"><span class="id" title="variable">b</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.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#f65ecb5148d1ef5a9c551827b20e9bfa"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#f65ecb5148d1ef5a9c551827b20e9bfa"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#f65ecb5148d1ef5a9c551827b20e9bfa"><span class="id" title="notation">|</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="perm_eq_abelian_type"><span class="id" title="lemma">perm_eq_abelian_type</span></a> <span class="id" title="var">p</span> <span class="id" title="var">b</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><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">big</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#dprod"><span class="id" title="abbreviation">dprod</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">/</span></a>1<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">x</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">&lt;-</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#30705c25db0a97e8b1b08168f9199b27"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> 1 <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.solvable.abelian.html#b"><span class="id" title="variable">b</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.ssreflect.seq.html#perm_eq"><span class="id" title="definition">perm_eq</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#map"><span class="id" title="definition">map</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#order"><span class="id" title="definition">order</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#b"><span class="id" title="variable">b</span></a>) (<a class="idref" href="mathcomp.solvable.abelian.html#abelian_type"><span class="id" title="definition">abelian_type</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="size_abelian_type"><span class="id" title="lemma">size_abelian_type</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#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.solvable.abelian.html#abelian_type"><span class="id" title="definition">abelian_type</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="mul_card_Ohm_Mho_abelian"><span class="id" title="lemma">mul_card_Ohm_Mho_abelian</span></a> <span class="id" title="var">n</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">)</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.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="grank_abelian"><span class="id" title="lemma">grank_abelian</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">m</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#a851c25084037836b7c2af869fa1a7c5"><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.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="rank_cycle"><span class="id" title="lemma">rank_cycle</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.abelian.html#AbelianStructure.gT"><span class="id" title="variable">gT</span></a>) : <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">&lt;[</span></a><a class="idref" href="mathcomp.solvable.abelian.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]&gt;</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><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.solvable.abelian.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> 1<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="abelian_rank1_cyclic"><span class="id" title="lemma">abelian_rank1_cyclic</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.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="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.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> 1<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">Definition</span> <a name="homocyclic"><span class="id" title="definition">homocyclic</span></a> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#constant"><span class="id" title="definition">constant</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#abelian_type"><span class="id" title="definition">abelian_type</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#A"><span class="id" title="variable">A</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="homocyclic_Ohm_Mho"><span class="id" title="lemma">homocyclic_Ohm_Mho</span></a> <span class="id" title="var">n</span> <span class="id" title="var">p</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#homocyclic"><span class="id" title="definition">homocyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^(</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9482aae3d3b06e249765c1225dbb8cbb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm_Mho_homocyclic"><span class="id" title="lemma">Ohm_Mho_homocyclic</span></a> (<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.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> 0 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#432e31800fc09abd260feb634dbbd1af"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#432e31800fc09abd260feb634dbbd1af"><span class="id" title="notation">&lt;</span></a> <a class="idref" href="mathcomp.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^(</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>) <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9482aae3d3b06e249765c1225dbb8cbb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><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.solvable.abelian.html#homocyclic"><span class="id" title="definition">homocyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelem_homocyclic"><span class="id" title="lemma">abelem_homocyclic</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#homocyclic"><span class="id" title="definition">homocyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="homocyclic1"><span class="id" title="lemma">homocyclic1</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#homocyclic"><span class="id" title="definition">homocyclic</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#26d0437a0433a7dd4f49130a7fb26acc"><span class="id" title="notation">[1</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#AbelianStructure.gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#26d0437a0433a7dd4f49130a7fb26acc"><span class="id" title="notation">]</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="Ohm1_homocyclicP"><span class="id" title="lemma">Ohm1_homocyclicP</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#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.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">Ohm_1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c300ec465942bb74c9d0df0e983eeb01"><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.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">Mho</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#1d63841e595f2805afd872744cbb1cce"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.prime.html#logn"><span class="id" title="definition">logn</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>)<a class="idref" href="mathcomp.ssreflect.ssrnat.html#1d63841e595f2805afd872744cbb1cce"><span class="id" title="notation">).-1</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#c11ffdc20a90dd3221cf1b1401ec4b7f"><span class="id" title="notation">)</span></a>) (<a class="idref" href="mathcomp.solvable.abelian.html#homocyclic"><span class="id" title="definition">homocyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelian_type_homocyclic"><span class="id" title="lemma">abelian_type_homocyclic</span></a> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#homocyclic"><span class="id" title="definition">homocyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#abelian_type"><span class="id" title="definition">abelian_type</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.ssreflect.seq.html#nseq"><span class="id" title="definition">nseq</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelian_type_abelem"><span class="id" title="lemma">abelian_type_abelem</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#abelian_type"><span class="id" title="definition">abelian_type</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.ssreflect.seq.html#nseq"><span class="id" title="definition">nseq</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="max_card_abelian"><span class="id" title="lemma">max_card_abelian</span></a> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</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#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><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.ssreflect.ssrnat.html#f0472472bc7977d4afb419d87444a23b"><span class="id" title="notation">iff</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#homocyclic"><span class="id" title="definition">homocyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="card_homocyclic"><span class="id" title="lemma">card_homocyclic</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.solvable.abelian.html#homocyclic"><span class="id" title="definition">homocyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a>)%<span class="id" title="var">N</span>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="abelian_type_dprod_homocyclic"><span class="id" title="lemma">abelian_type_dprod_homocyclic</span></a> <span class="id" title="var">p</span> <span class="id" title="var">K</span> <span class="id" title="var">H</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">x</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#homocyclic"><span class="id" title="definition">homocyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#abelian_type"><span class="id" title="definition">abelian_type</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#nseq"><span class="id" title="definition">nseq</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>)<br/>
&nbsp;&nbsp;<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.solvable.abelian.html#abelian_type"><span class="id" title="definition">abelian_type</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#nseq"><span class="id" title="definition">nseq</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a> (<a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="dprod_homocyclic"><span class="id" title="lemma">dprod_homocyclic</span></a> <span class="id" title="var">p</span> <span class="id" title="var">K</span> <span class="id" title="var">H</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">x</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#homocyclic"><span class="id" title="definition">homocyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#homocyclic"><span class="id" title="definition">homocyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#homocyclic"><span class="id" title="definition">homocyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="exponent_dprod_homocyclic"><span class="id" title="lemma">exponent_dprod_homocyclic</span></a> <span class="id" title="var">p</span> <span class="id" title="var">K</span> <span class="id" title="var">H</span> <span class="id" title="var">G</span> :<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.gproduct.html#3733c0e43956ad2062ab5f1e57ceb9a8"><span class="id" title="notation">x</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.pgroup.html#5b9c9ef075a2fca9df30ee4ac4a1af18"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#homocyclic"><span class="id" title="definition">homocyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#36625695d37b6869c156bfcdf13834f7"><span class="id" title="notation">:!=:</span></a> 1 <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.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#exponent"><span class="id" title="definition">exponent</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.abelian.html#AbelianStructure"><span class="id" title="section">AbelianStructure</span></a>.<br/>

<br/>

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

<br/>
<span class="id" title="keyword">Variables</span> <a name="IsogAbelian.aT"><span class="id" title="variable">aT</span></a> <a name="IsogAbelian.rT"><span class="id" title="variable">rT</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.finGroupType"><span class="id" title="abbreviation">finGroupType</span></a>.<br/>
<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> (<span class="id" title="var">gT</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.finGroupType"><span class="id" title="abbreviation">finGroupType</span></a>) (<span class="id" title="var">D</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelian.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">H</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelian.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="isog_abelian_type"><span class="id" title="lemma">isog_abelian_type</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.fingroup.morphism.html#isog"><span class="id" title="definition">isog</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#abelian_type"><span class="id" title="definition">abelian_type</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#abelian_type"><span class="id" title="definition">abelian_type</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="eq_abelian_type_isog"><span class="id" title="lemma">eq_abelian_type_isog</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#isog"><span class="id" title="definition">isog</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#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.solvable.abelian.html#abelian_type"><span class="id" title="definition">abelian_type</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#abelian_type"><span class="id" title="definition">abelian_type</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="isog_abelem_card"><span class="id" title="lemma">isog_abelem_card</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> <span class="id" title="var">H</span> :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#isog"><span class="id" title="definition">isog</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.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.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><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>.<br/>

<br/>
<span class="id" title="keyword">Variables</span> (<a name="IsogAbelian.D"><span class="id" title="variable">D</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelian.aT"><span class="id" title="variable">aT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>) (<a name="IsogAbelian.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">morphism</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#D"><span class="id" title="variable">D</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelian.rT"><span class="id" title="variable">rT</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">}</span></a>).<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="morphim_rank_abelian"><span class="id" title="lemma">morphim_rank_abelian</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelian.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><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.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="morphim_p_rank_abelian"><span class="id" title="lemma">morphim_p_rank_abelian</span></a> <span class="id" title="var">p</span> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelian.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="isog_homocyclic"><span class="id" title="lemma">isog_homocyclic</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.abelian.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#cec6c3028572f2d4d267ecf02dc64058"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#cec6c3028572f2d4d267ecf02dc64058"><span class="id" title="notation">isog</span></a> <a class="idref" href="mathcomp.solvable.abelian.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#homocyclic"><span class="id" title="definition">homocyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.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.solvable.abelian.html#homocyclic"><span class="id" title="definition">homocyclic</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#H"><span class="id" title="variable">H</span></a>.<br/>

<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.abelian.html#IsogAbelian"><span class="id" title="section">IsogAbelian</span></a>.<br/>

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

<br/>
<span class="id" title="keyword">Variables</span> (<a name="QuotientRank.gT"><span class="id" title="variable">gT</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.finGroupType"><span class="id" title="abbreviation">finGroupType</span></a>) (<a name="QuotientRank.p"><span class="id" title="variable">p</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="QuotientRank.G"><span class="id" title="variable">G</span></a> <a name="QuotientRank.H"><span class="id" title="variable">H</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#gT"><span class="id" title="variable">gT</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>).<br/>
<span class="id" title="keyword">Hypothesis</span> <a name="QuotientRank.cGG"><span class="id" title="variable">cGG</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#QuotientRank.G"><span class="id" title="variable">G</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="quotient_rank_abelian"><span class="id" title="lemma">quotient_rank_abelian</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#QuotientRank.G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#c7768147d2d560601601fbf95706ddcc"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#QuotientRank.H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><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.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">r</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#QuotientRank.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#fb1dac9f7a8af37ee65e687129e35f6d"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="quotient_p_rank_abelian"><span class="id" title="lemma">quotient_p_rank_abelian</span></a> : <a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#QuotientRank.G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#c7768147d2d560601601fbf95706ddcc"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#QuotientRank.H"><span class="id" title="variable">H</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><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.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">r_p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.abelian.html#QuotientRank.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.solvable.abelian.html#2e018390d4609ecf460bceadff549bb3"><span class="id" title="notation">)</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.abelian.html#QuotientRank"><span class="id" title="section">QuotientRank</span></a>.<br/>

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

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

<br/>
<span class="id" title="keyword">Lemma</span> <a name="fin_lmod_char_abelem"><span class="id" title="lemma">fin_lmod_char_abelem</span></a> <span class="id" title="var">p</span> (<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">V</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Exports.finLmodType"><span class="id" title="abbreviation">finLmodType</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#R"><span class="id" title="variable">R</span></a>):<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#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#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.ssralg.html#b8d1051ec5bf038cb2a33edc541359f8"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b8d1051ec5bf038cb2a33edc541359f8"><span class="id" title="notation">char</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b8d1051ec5bf038cb2a33edc541359f8"><span class="id" title="notation">]</span></a>%<span class="id" title="var">R</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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#26c09fa7b21f5311d68f07b2527cd1eb"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#26c09fa7b21f5311d68f07b2527cd1eb"><span class="id" title="notation">set</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#26c09fa7b21f5311d68f07b2527cd1eb"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#26c09fa7b21f5311d68f07b2527cd1eb"><span class="id" title="notation">]</span></a>.<br/>

<br/>
<span class="id" title="keyword">Lemma</span> <a name="fin_Fp_lmod_abelem"><span class="id" title="lemma">fin_Fp_lmod_abelem</span></a> <span class="id" title="var">p</span> (<span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Exports.finLmodType"><span class="id" title="abbreviation">finLmodType</span></a> <a class="idref" href="mathcomp.algebra.zmodp.html#ac70144de8117a1d767eef28420399d1"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.zmodp.html#ac70144de8117a1d767eef28420399d1"><span class="id" title="notation">F_p</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#p"><span class="id" title="variable">p</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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#26c09fa7b21f5311d68f07b2527cd1eb"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#26c09fa7b21f5311d68f07b2527cd1eb"><span class="id" title="notation">set</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#26c09fa7b21f5311d68f07b2527cd1eb"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#26c09fa7b21f5311d68f07b2527cd1eb"><span class="id" title="notation">]</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">Lemma</span> <a name="fin_ring_char_abelem"><span class="id" title="lemma">fin_ring_char_abelem</span></a> <span class="id" title="var">p</span> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Exports.finRingType"><span class="id" title="abbreviation">finRingType</span></a>) :<br/>
&nbsp;&nbsp;<a class="idref" href="mathcomp.solvable.abelian.html#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#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.ssralg.html#b8d1051ec5bf038cb2a33edc541359f8"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b8d1051ec5bf038cb2a33edc541359f8"><span class="id" title="notation">char</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b8d1051ec5bf038cb2a33edc541359f8"><span class="id" title="notation">]</span></a>%<span class="id" title="var">R</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.solvable.abelian.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.solvable.abelian.html#bcb4124a3d9b102768b81d5d3006e029"><span class="id" title="notation">abelem</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#26c09fa7b21f5311d68f07b2527cd1eb"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#26c09fa7b21f5311d68f07b2527cd1eb"><span class="id" title="notation">set</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#26c09fa7b21f5311d68f07b2527cd1eb"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.solvable.abelian.html#R"><span class="id" title="variable">R</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#26c09fa7b21f5311d68f07b2527cd1eb"><span class="id" title="notation">]</span></a>.<br/>
 
<br/>
<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.abelian.html#FimModAbelem"><span class="id" title="section">FimModAbelem</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>