diff options
Diffstat (limited to 'docs/htmldoc/mathcomp.solvable.cyclic.html')
| -rw-r--r-- | docs/htmldoc/mathcomp.solvable.cyclic.html | 652 |
1 files changed, 652 insertions, 0 deletions
diff --git a/docs/htmldoc/mathcomp.solvable.cyclic.html b/docs/htmldoc/mathcomp.solvable.cyclic.html new file mode 100644 index 0000000..858273d --- /dev/null +++ b/docs/htmldoc/mathcomp.solvable.cyclic.html @@ -0,0 +1,652 @@ +<!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.cyclic</title> +</head> + +<body> + +<div id="page"> + +<div id="header"> +</div> + +<div id="main"> + +<h1 class="libtitle">Library mathcomp.solvable.cyclic</h1> + +<div class="code"> +<span class="comment">(* (c) Copyright 2006-2016 Microsoft Corporation and Inria. <br/> + Distributed under the terms of CeCILL-B. *)</span><br/> +<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"> + Properties of cyclic groups. + Definitions: + Defined in fingroup.v: + < [x]> == the cycle (cyclic group) generated by x. + # [x] == the order of x, i.e., the cardinal of < [x]>. + Defined in prime.v: + totient n == Euler's totient function + Definitions in this file: + cyclic G <=> G is a cyclic group. + metacyclic G <=> G is a metacyclic group (i.e., a cyclic extension of a + cyclic group). + generator G x <=> x is a generator of the (cyclic) group G. + Zpm x == the isomorphism mapping the additive group of integers + mod # [x] to the cyclic group < [x]>. + cyclem x n == the endomorphism y |-> y ^+ n of < [x]>. + Zp_unitm x == the isomorphism mapping the multiplicative group of the + units of the ring of integers mod # [x] to the group of + automorphisms of < [x]> (i.e., Aut < [x]>). + Zp_unitm x maps u to cyclem x u. + eltm dvd_y_x == the smallest morphism (with domain < [x]>) mapping x to + y, given a proof dvd_y_x : # [y] %| # [x]. + expg_invn G k == if coprime #|G| k, the inverse of exponent k in G. + Basic results for these notions, plus the classical result that any finite + group isomorphic to a subgroup of a field is cyclic, hence that Aut G is + cyclic when G is of prime order. +</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> <span class="id" title="var">GRing.Theory</span>.<br/> + +<br/> +</div> + +<div class="doc"> + Cyclic groups. +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Section</span> <a name="Cyclic"><span class="id" title="section">Cyclic</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> <a name="Cyclic.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">a</span> <span class="id" title="var">x</span> <span class="id" title="var">y</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic.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.cyclic.html#Cyclic.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">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.cyclic.html#Cyclic.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">Definition</span> <a name="cyclic"><span class="id" title="definition">cyclic</span></a> <span class="id" title="var">A</span> := <a class="idref" href="mathcomp.ssreflect.fintype.html#e1fcc6c8b4370f06a39f9b1b3c9764b2"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#e1fcc6c8b4370f06a39f9b1b3c9764b2"><span class="id" title="notation">∃</span></a> <span class="id" title="var">x</span><a class="idref" href="mathcomp.ssreflect.fintype.html#46e5a4123d46e6b126f7788a77176785"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#e1fcc6c8b4370f06a39f9b1b3c9764b2"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="cyclicP"><span class="id" title="lemma">cyclicP</span></a> <span class="id" title="var">A</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="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">x</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.cyclic.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.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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.cyclic.html#A"><span class="id" title="variable">A</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="cycle_cyclic"><span class="id" title="lemma">cycle_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.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="cyclic1"><span class="id" title="lemma">cyclic1</span></a> : <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</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.cyclic.html#Cyclic.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/> +</div> + +<div class="doc"> + Isomorphism with the additive group +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Section</span> <a name="Cyclic.Zpm"><span class="id" title="section">Zpm</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> <a name="Cyclic.Zpm.a"><span class="id" title="variable">a</span></a> : <a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic.gT"><span class="id" title="variable">gT</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Zpm"><span class="id" title="definition">Zpm</span></a> (<span class="id" title="var">i</span> : <a class="idref" href="mathcomp.algebra.zmodp.html#9daeb9ead3dc7cfd1f9338b8de9c8c09"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.zmodp.html#9daeb9ead3dc7cfd1f9338b8de9c8c09"><span class="id" title="notation">Z_</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic.Zpm.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a>) := <a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic.Zpm.a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#i"><span class="id" title="variable">i</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="ZpmM"><span class="id" title="lemma">ZpmM</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.zmodp.html#Zp"><span class="id" title="definition">Zp</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic.Zpm.a"><span class="id" title="variable">a</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.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">&,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#Zpm"><span class="id" title="definition">Zpm</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">:</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#169fb610eeaa28cebf8ec36928167473"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Zpm_morphism</span> := <a class="idref" href="mathcomp.fingroup.morphism.html#Morphism"><span class="id" title="constructor">Morphism</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#ZpmM"><span class="id" title="lemma">ZpmM</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="im_Zpm"><span class="id" title="lemma">im_Zpm</span></a> : <a class="idref" href="mathcomp.solvable.cyclic.html#Zpm"><span class="id" title="definition">Zpm</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.algebra.zmodp.html#Zp"><span class="id" title="definition">Zp</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic.Zpm.a"><span class="id" title="variable">a</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.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic.Zpm.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="injm_Zpm"><span class="id" title="lemma">injm_Zpm</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.cyclic.html#Zpm"><span class="id" title="definition">Zpm</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eq_expg_mod_order"><span class="id" title="lemma">eq_expg_mod_order</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.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic.Zpm.a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic.Zpm.a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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> <a class="idref" href="http://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.cyclic.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#29294f431c8c9e3d170b3ccfa621d03f"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#29294f431c8c9e3d170b3ccfa621d03f"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.ssreflect.div.html#29294f431c8c9e3d170b3ccfa621d03f"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic.Zpm.a"><span class="id" title="variable">a</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#29294f431c8c9e3d170b3ccfa621d03f"><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="Zp_isom"><span class="id" title="lemma">Zp_isom</span></a> : <a class="idref" href="mathcomp.fingroup.morphism.html#isom"><span class="id" title="definition">isom</span></a> (<a class="idref" href="mathcomp.algebra.zmodp.html#Zp"><span class="id" title="definition">Zp</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic.Zpm.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a>) <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic.Zpm.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#Zpm"><span class="id" title="definition">Zpm</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Zp_isog"><span class="id" title="lemma">Zp_isog</span></a> : <a class="idref" href="mathcomp.fingroup.morphism.html#isog"><span class="id" title="definition">isog</span></a> (<a class="idref" href="mathcomp.algebra.zmodp.html#Zp"><span class="id" title="definition">Zp</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic.Zpm.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a>) <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic.Zpm.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic.Zpm"><span class="id" title="section">Zpm</span></a>.<br/> + +<br/> +</div> + +<div class="doc"> + Central and direct product of cycles +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="cyclic_abelian"><span class="id" title="lemma">cyclic_abelian</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#A"><span class="id" title="variable">A</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="cycleMsub"><span class="id" title="lemma">cycleMsub</span></a> <span class="id" title="var">a</span> <span class="id" title="var">b</span> :<br/> + <a class="idref" href="mathcomp.fingroup.fingroup.html#commute"><span class="id" title="definition">commute</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.ssreflect.div.html#coprime"><span class="id" title="definition">coprime</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><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.cyclic.html#b"><span class="id" title="variable">b</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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#169fb610eeaa28cebf8ec36928167473"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="cycleM"><span class="id" title="lemma">cycleM</span></a> <span class="id" title="var">a</span> <span class="id" title="var">b</span> :<br/> + <a class="idref" href="mathcomp.fingroup.fingroup.html#commute"><span class="id" title="definition">commute</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.ssreflect.div.html#coprime"><span class="id" title="definition">coprime</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><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.cyclic.html#b"><span class="id" title="variable">b</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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#169fb610eeaa28cebf8ec36928167473"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#169fb610eeaa28cebf8ec36928167473"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="cyclicM"><span class="id" title="lemma">cyclicM</span></a> <span class="id" title="var">A</span> <span class="id" title="var">B</span> :<br/> + <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#B"><span class="id" title="variable">B</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#67c26168baa7671aab03da2a0fb7dafa"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#67c26168baa7671aab03da2a0fb7dafa"><span class="id" title="notation">C</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#67c26168baa7671aab03da2a0fb7dafa"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#67c26168baa7671aab03da2a0fb7dafa"><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.div.html#coprime"><span class="id" title="definition">coprime</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.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.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> (<a class="idref" href="mathcomp.solvable.cyclic.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#169fb610eeaa28cebf8ec36928167473"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#B"><span class="id" title="variable">B</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="cyclicY"><span class="id" title="lemma">cyclicY</span></a> <span class="id" title="var">K</span> <span class="id" title="var">H</span> :<br/> + <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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#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.cyclic.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.cyclic.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.fingroup.fingroup.html#67c26168baa7671aab03da2a0fb7dafa"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#67c26168baa7671aab03da2a0fb7dafa"><span class="id" title="notation">C</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#67c26168baa7671aab03da2a0fb7dafa"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#67c26168baa7671aab03da2a0fb7dafa"><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.div.html#coprime"><span class="id" title="definition">coprime</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#K"><span class="id" title="variable">K</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#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.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><br/> + <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> (<a class="idref" href="mathcomp.solvable.cyclic.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#80208730563aa86aa7861f6fe1b846da"><span class="id" title="notation"><*></span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#H"><span class="id" title="variable">H</span></a>).<br/> + +<br/> +</div> + +<div class="doc"> + Order properties +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="order_dvdn"><span class="id" title="lemma">order_dvdn</span></a> <span class="id" title="var">a</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</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.cyclic.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> <a class="idref" href="http://coq.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.cyclic.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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="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="order_inf"><span class="id" title="lemma">order_inf</span></a> <span class="id" title="var">a</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</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#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="order_dvdG"><span class="id" title="lemma">order_dvdG</span></a> <span class="id" title="var">G</span> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#a"><span class="id" title="variable">a</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.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.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="expg_cardG"><span class="id" title="lemma">expg_cardG</span></a> <span class="id" title="var">G</span> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><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.cyclic.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> 1.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="expg_znat"><span class="id" title="lemma">expg_znat</span></a> <span class="id" title="var">G</span> <span class="id" title="var">x</span> <span class="id" title="var">k</span> : <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.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#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.cyclic.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.zmodp.html#9daeb9ead3dc7cfd1f9338b8de9c8c09"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.zmodp.html#9daeb9ead3dc7cfd1f9338b8de9c8c09"><span class="id" title="notation">Z_</span></a><a class="idref" href="mathcomp.algebra.zmodp.html#9daeb9ead3dc7cfd1f9338b8de9c8c09"><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.cyclic.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.algebra.zmodp.html#9daeb9ead3dc7cfd1f9338b8de9c8c09"><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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#k"><span class="id" title="variable">k</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="expg_zneg"><span class="id" title="lemma">expg_zneg</span></a> <span class="id" title="var">G</span> <span class="id" title="var">x</span> (<span class="id" title="var">k</span> : <a class="idref" href="mathcomp.algebra.zmodp.html#9daeb9ead3dc7cfd1f9338b8de9c8c09"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.zmodp.html#9daeb9ead3dc7cfd1f9338b8de9c8c09"><span class="id" title="notation">Z_</span></a><a class="idref" href="mathcomp.algebra.zmodp.html#9daeb9ead3dc7cfd1f9338b8de9c8c09"><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.cyclic.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.algebra.zmodp.html#9daeb9ead3dc7cfd1f9338b8de9c8c09"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.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#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.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#k"><span class="id" title="variable">k</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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#34994770d8c3a5c30ba6daa7bd2f04ca"><span class="id" title="notation">^-</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#k"><span class="id" title="variable">k</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="nt_gen_prime"><span class="id" title="lemma">nt_gen_prime</span></a> <span class="id" title="var">G</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.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="mathcomp.solvable.cyclic.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.cyclic.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#adb8044960c962a921cca1bd48aae97d"><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.cyclic.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#67291ec55239f54fa5aa0b0bb974446c"><span class="id" title="notation">:=:</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="nt_prime_order"><span class="id" title="lemma">nt_prime_order</span></a> <span class="id" title="var">p</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.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.cyclic.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="http://coq.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#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.cyclic.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.cyclic.html#p"><span class="id" title="variable">p</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="orderXdvd"><span class="id" title="lemma">orderXdvd</span></a> <span class="id" title="var">a</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#n"><span class="id" title="variable">n</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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</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="orderXgcd"><span class="id" title="lemma">orderXgcd</span></a> <span class="id" title="var">a</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#n"><span class="id" title="variable">n</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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</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#df17451da28eb630dbb51b12706ba39e"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#gcdn"><span class="id" title="definition">gcdn</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="orderXdiv"><span class="id" title="lemma">orderXdiv</span></a> <span class="id" title="var">a</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.solvable.cyclic.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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</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#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.cyclic.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#n"><span class="id" title="variable">n</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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</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#df17451da28eb630dbb51b12706ba39e"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="orderXexp"><span class="id" title="lemma">orderXexp</span></a> <span class="id" title="var">p</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.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.cyclic.html#n"><span class="id" title="variable">n</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#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.cyclic.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.cyclic.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.cyclic.html#m"><span class="id" title="variable">m</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#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.cyclic.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.solvable.cyclic.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9482aae3d3b06e249765c1225dbb8cbb"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><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="orderXpfactor"><span class="id" title="lemma">orderXpfactor</span></a> <span class="id" title="var">p</span> <span class="id" title="var">k</span> <span class="id" title="var">n</span> <span class="id" title="var">x</span> :<br/> + <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.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.cyclic.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#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.cyclic.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.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.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.cyclic.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#697e4695610f677ae98a52af81f779d2"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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="orderXprime"><span class="id" title="lemma">orderXprime</span></a> <span class="id" title="var">p</span> <span class="id" title="var">n</span> <span class="id" title="var">x</span> :<br/> + <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.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="http://coq.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.cyclic.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.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#697e4695610f677ae98a52af81f779d2"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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="orderXpnat"><span class="id" title="lemma">orderXpnat</span></a> <span class="id" title="var">m</span> <span class="id" title="var">n</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#m"><span class="id" title="variable">m</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.cyclic.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.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.cyclic.html#n"><span class="id" title="variable">n</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#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.cyclic.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="http://coq.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.cyclic.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.cyclic.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#697e4695610f677ae98a52af81f779d2"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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="orderM"><span class="id" title="lemma">orderM</span></a> <span class="id" title="var">a</span> <span class="id" title="var">b</span> :<br/> + <a class="idref" href="mathcomp.fingroup.fingroup.html#commute"><span class="id" title="definition">commute</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.ssreflect.div.html#coprime"><span class="id" title="definition">coprime</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><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.cyclic.html#b"><span class="id" title="variable">b</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#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.cyclic.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#169fb610eeaa28cebf8ec36928167473"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#b"><span class="id" title="variable">b</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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</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#697e4695610f677ae98a52af81f779d2"><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.cyclic.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">N</span>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="expg_invn"><span class="id" title="definition">expg_invn</span></a> <span class="id" title="var">A</span> <span class="id" title="var">k</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.div.html#egcdn"><span class="id" title="definition">egcdn</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#k"><span class="id" title="variable">k</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.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="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">).1</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="expgK"><span class="id" title="lemma">expgK</span></a> <span class="id" title="var">G</span> <span class="id" title="var">k</span> :<br/> + <a class="idref" href="mathcomp.ssreflect.div.html#coprime"><span class="id" title="definition">coprime</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.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.solvable.cyclic.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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> (<a class="idref" href="mathcomp.fingroup.fingroup.html#expgn"><span class="id" title="definition">expgn</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#8f28bbd804547edd8de802d63ef85617"><span class="id" title="notation">^~</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#k"><span class="id" title="variable">k</span></a>) (<a class="idref" href="mathcomp.fingroup.fingroup.html#expgn"><span class="id" title="definition">expgn</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#8f28bbd804547edd8de802d63ef85617"><span class="id" title="notation">^~</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#8f28bbd804547edd8de802d63ef85617"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#expg_invn"><span class="id" title="definition">expg_invn</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#k"><span class="id" title="variable">k</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#8f28bbd804547edd8de802d63ef85617"><span class="id" title="notation">)</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="cyclic_dprod"><span class="id" title="lemma">cyclic_dprod</span></a> <span class="id" title="var">K</span> <span class="id" title="var">H</span> <span class="id" title="var">G</span> :<br/> + <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.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.cyclic.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.cyclic.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#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.cyclic.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.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.div.html#coprime"><span class="id" title="definition">coprime</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#K"><span class="id" title="variable">K</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#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.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> .<br/> + +<br/> +</div> + +<div class="doc"> + Generator +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="generator"><span class="id" title="definition">generator</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.cyclic.html#Cyclic.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">a</span> := <a class="idref" href="mathcomp.solvable.cyclic.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="generator_cycle"><span class="id" title="lemma">generator_cycle</span></a> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#generator"><span class="id" title="definition">generator</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="cycle_generator"><span class="id" title="lemma">cycle_generator</span></a> <span class="id" title="var">a</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#generator"><span class="id" title="definition">generator</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a> <a class="idref" href="mathcomp.solvable.cyclic.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#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.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="generator_order"><span class="id" title="lemma">generator_order</span></a> <span class="id" title="var">a</span> <span class="id" title="var">b</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#generator"><span class="id" title="definition">generator</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#b"><span class="id" title="variable">b</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">End</span> <a class="idref" href="mathcomp.solvable.cyclic.html#Cyclic"><span class="id" title="section">Cyclic</span></a>.<br/> + +<br/> + +<br/> +</div> + +<div class="doc"> + Euler's theorem +</div> +<div class="code"> +<span class="id" title="keyword">Theorem</span> <a name="Euler_exp_totient"><span class="id" title="lemma">Euler_exp_totient</span></a> <span class="id" title="var">a</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.ssreflect.div.html#coprime"><span class="id" title="definition">coprime</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#a"><span class="id" title="variable">a</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#totient"><span class="id" title="definition">totient</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#20229f50700a74daa1cbc50e0281abb6"><span class="id" title="notation">=</span></a> 1 <a class="idref" href="mathcomp.ssreflect.div.html#20229f50700a74daa1cbc50e0281abb6"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.ssreflect.div.html#20229f50700a74daa1cbc50e0281abb6"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.div.html#20229f50700a74daa1cbc50e0281abb6"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="Eltm"><span class="id" title="section">Eltm</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variables</span> (<a name="Eltm.aT"><span class="id" title="variable">aT</span></a> <a name="Eltm.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="Eltm.x"><span class="id" title="variable">x</span></a> : <a class="idref" href="mathcomp.solvable.cyclic.html#aT"><span class="id" title="variable">aT</span></a>) (<a name="Eltm.y"><span class="id" title="variable">y</span></a> : <a class="idref" href="mathcomp.solvable.cyclic.html#rT"><span class="id" title="variable">rT</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="eltm"><span class="id" title="definition">eltm</span></a> <span class="id" title="keyword">of</span> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.y"><span class="id" title="variable">y</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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.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> := <span class="id" title="keyword">fun</span> <span class="id" title="var">x_i</span> ⇒ <a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</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.cyclic.html#injm_Zpm"><span class="id" title="lemma">injm_Zpm</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.x"><span class="id" title="variable">x</span></a>) <a class="idref" href="mathcomp.solvable.cyclic.html#x_i"><span class="id" title="variable">x_i</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Hypothesis</span> <a name="Eltm.dvd_y_x"><span class="id" title="variable">dvd_y_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.cyclic.html#Eltm.y"><span class="id" title="variable">y</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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.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="eltmE"><span class="id" title="lemma">eltmE</span></a> <span class="id" title="var">i</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#eltm"><span class="id" title="definition">eltm</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.dvd_y_x"><span class="id" title="variable">dvd_y_x</span></a> (<a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.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.cyclic.html#i"><span class="id" title="variable">i</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#i"><span class="id" title="variable">i</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eltm_id"><span class="id" title="lemma">eltm_id</span></a> : <a class="idref" href="mathcomp.solvable.cyclic.html#eltm"><span class="id" title="definition">eltm</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.dvd_y_x"><span class="id" title="variable">dvd_y_x</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.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.cyclic.html#Eltm.y"><span class="id" title="variable">y</span></a>. <br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eltmM"><span class="id" title="lemma">eltmM</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">&,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#eltm"><span class="id" title="definition">eltm</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.dvd_y_x"><span class="id" title="variable">dvd_y_x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">:</span></a> <span class="id" title="var">x_i</span> <span class="id" title="var">x_j</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#x_i"><span class="id" title="variable">x_i</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#169fb610eeaa28cebf8ec36928167473"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#x_j"><span class="id" title="variable">x_j</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eltm_morphism</span> := <a class="idref" href="mathcomp.fingroup.morphism.html#Morphism"><span class="id" title="constructor">Morphism</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#eltmM"><span class="id" title="lemma">eltmM</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="im_eltm"><span class="id" title="lemma">im_eltm</span></a> : <a class="idref" href="mathcomp.solvable.cyclic.html#eltm"><span class="id" title="definition">eltm</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.dvd_y_x"><span class="id" title="variable">dvd_y_x</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.y"><span class="id" title="variable">y</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="ker_eltm"><span class="id" title="lemma">ker_eltm</span></a> : <a class="idref" href="mathcomp.fingroup.morphism.html#034cc0eb573e9a86d9574eaed7b27a13"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#034cc0eb573e9a86d9574eaed7b27a13"><span class="id" title="notation">ker</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#034cc0eb573e9a86d9574eaed7b27a13"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#eltm"><span class="id" title="definition">eltm</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.dvd_y_x"><span class="id" title="variable">dvd_y_x</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#034cc0eb573e9a86d9574eaed7b27a13"><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"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.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#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.y"><span class="id" title="variable">y</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="injm_eltm"><span class="id" title="lemma">injm_eltm</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.fingroup.morphism.html#14bfb149f00fa839cfb11397f4fe629f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#eltm"><span class="id" title="definition">eltm</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.dvd_y_x"><span class="id" title="variable">dvd_y_x</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#14bfb149f00fa839cfb11397f4fe629f"><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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#Eltm.y"><span class="id" title="variable">y</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>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.cyclic.html#Eltm"><span class="id" title="section">Eltm</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="CycleSubGroup"><span class="id" title="section">CycleSubGroup</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> <a name="CycleSubGroup.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/> + +<br/> +</div> + +<div class="doc"> + Gorenstein, 1.3.1 (i) +</div> +<div class="code"> +<span class="id" title="keyword">Lemma</span> <a name="cycle_sub_group"><span class="id" title="lemma">cycle_sub_group</span></a> (<span class="id" title="var">a</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#CycleSubGroup.gT"><span class="id" title="variable">gT</span></a>) <span class="id" title="var">m</span> :<br/> + <a class="idref" href="mathcomp.solvable.cyclic.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><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.cyclic.html#a"><span class="id" title="variable">a</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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> + <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">H</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.cyclic.html#CycleSubGroup.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.cyclic.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.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.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.solvable.cyclic.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#92573f9b19c03e948cd1a21ac092cb5a"><span class="id" title="notation">]</span></a><br/> + <a class="idref" href="http://coq.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> <a class="idref" href="mathcomp.fingroup.fingroup.html#308ed625a2773fc79821c9cb59310928"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</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#df17451da28eb630dbb51b12706ba39e"><span class="id" title="notation">%/</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#m"><span class="id" title="variable">m</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#308ed625a2773fc79821c9cb59310928"><span class="id" title="notation">]></span></a>%<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="cycle_subgroup_char"><span class="id" title="lemma">cycle_subgroup_char</span></a> <span class="id" title="var">a</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.cyclic.html#CycleSubGroup.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.solvable.cyclic.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.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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.cyclic.html#H"><span class="id" title="variable">H</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.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.cyclic.html#CycleSubGroup"><span class="id" title="section">CycleSubGroup</span></a>.<br/> + +<br/> +</div> + +<div class="doc"> + Reflected boolean property and morphic image, injection, bijection +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Section</span> <a name="MorphicImage"><span class="id" title="section">MorphicImage</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variables</span> <a name="MorphicImage.aT"><span class="id" title="variable">aT</span></a> <a name="MorphicImage.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">Variables</span> (<a name="MorphicImage.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.cyclic.html#MorphicImage.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="MorphicImage.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.cyclic.html#D"><span class="id" title="variable">D</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">>-></span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#MorphicImage.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>) (<a name="MorphicImage.x"><span class="id" title="variable">x</span></a> : <a class="idref" href="mathcomp.solvable.cyclic.html#MorphicImage.aT"><span class="id" title="variable">aT</span></a>).<br/> +<span class="id" title="keyword">Hypothesis</span> <a name="MorphicImage.Dx"><span class="id" title="variable">Dx</span></a> : <a class="idref" href="mathcomp.solvable.cyclic.html#MorphicImage.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.cyclic.html#MorphicImage.D"><span class="id" title="variable">D</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="morph_order"><span class="id" title="lemma">morph_order</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#MorphicImage.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#MorphicImage.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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#MorphicImage.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="morph_generator"><span class="id" title="lemma">morph_generator</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#generator"><span class="id" title="definition">generator</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#MorphicImage.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#generator"><span class="id" title="definition">generator</span></a> (<a class="idref" href="mathcomp.solvable.cyclic.html#MorphicImage.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.cyclic.html#A"><span class="id" title="variable">A</span></a>) (<a class="idref" href="mathcomp.solvable.cyclic.html#MorphicImage.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#MorphicImage.x"><span class="id" title="variable">x</span></a>).<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.cyclic.html#MorphicImage"><span class="id" title="section">MorphicImage</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="CyclicProps"><span class="id" title="section">CyclicProps</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variables</span> <a name="CyclicProps.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">aT</span> <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>) (<span class="id" title="var">G</span> <span class="id" title="var">H</span> <span class="id" title="var">K</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.cyclic.html#CyclicProps.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="cyclicS"><span class="id" title="lemma">cyclicS</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.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.cyclic.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.cyclic.html#H"><span class="id" title="variable">H</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="cyclicJ"><span class="id" title="lemma">cyclicJ</span></a> <span class="id" title="var">G</span> <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.cyclic.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.cyclic.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.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#G"><span class="id" title="variable">G</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eq_subG_cyclic"><span class="id" title="lemma">eq_subG_cyclic</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> <span class="id" title="var">K</span> :<br/> + <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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#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.cyclic.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#K"><span class="id" title="variable">K</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.cyclic.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.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#24f47bb7b1a372904563d2bdb8a213a4"><span class="id" title="notation">:==:</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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="http://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.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#K"><span class="id" title="variable">K</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>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="cardSg_cyclic"><span class="id" title="lemma">cardSg_cyclic</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> <span class="id" title="var">K</span> :<br/> + <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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#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.cyclic.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#K"><span class="id" title="variable">K</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.cyclic.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.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.cyclic.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.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.cyclic.html#K"><span class="id" title="variable">K</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="http://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.cyclic.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.cyclic.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>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="sub_cyclic_char"><span class="id" title="lemma">sub_cyclic_char</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#H"><span class="id" title="variable">H</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.cyclic.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="http://coq.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.cyclic.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.cyclic.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="morphim_cyclic"><span class="id" title="lemma">morphim_cyclic</span></a> <span class="id" title="var">rT</span> <span class="id" title="var">G</span> <span class="id" title="var">H</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.cyclic.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">>-></span></a> <a class="idref" href="mathcomp.solvable.cyclic.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/> + <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> (<a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#H"><span class="id" title="variable">H</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="quotient_cycle"><span class="id" title="lemma">quotient_cycle</span></a> <span class="id" title="var">x</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.cyclic.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.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.cyclic.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.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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.cyclic.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.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.fingroup.quotient.html#coset"><span class="id" title="definition">coset</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="quotient_cyclic"><span class="id" title="lemma">quotient_cyclic</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.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.cyclic.html#H"><span class="id" title="variable">H</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="quotient_generator"><span class="id" title="lemma">quotient_generator</span></a> <span class="id" title="var">x</span> <span class="id" title="var">G</span> <span class="id" title="var">H</span> :<br/> + <a class="idref" href="mathcomp.solvable.cyclic.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.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.cyclic.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.cyclic.html#generator"><span class="id" title="definition">generator</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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#generator"><span class="id" title="definition">generator</span></a> (<a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#H"><span class="id" title="variable">H</span></a>) (<a class="idref" href="mathcomp.fingroup.quotient.html#coset"><span class="id" title="definition">coset</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#x"><span class="id" title="variable">x</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="prime_cyclic"><span class="id" title="lemma">prime_cyclic</span></a> <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.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.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="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#G"><span class="id" title="variable">G</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdn_prime_cyclic"><span class="id" title="lemma">dvdn_prime_cyclic</span></a> <span class="id" title="var">G</span> <span class="id" title="var">p</span> : <a class="idref" href="mathcomp.ssreflect.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.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.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#G"><span class="id" title="variable">G</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="cyclic_small"><span class="id" title="lemma">cyclic_small</span></a> <span class="id" title="var">G</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.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> 3 <a class="idref" href="http://coq.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.cyclic.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.cyclic.html#CyclicProps"><span class="id" title="section">CyclicProps</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="IsoCyclic"><span class="id" title="section">IsoCyclic</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variables</span> <a name="IsoCyclic.gT"><span class="id" title="variable">gT</span></a> <a name="IsoCyclic.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">Types</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.cyclic.html#IsoCyclic.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="var">M</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.cyclic.html#IsoCyclic.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="injm_cyclic"><span class="id" title="lemma">injm_cyclic</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</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.cyclic.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">>-></span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#IsoCyclic.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/> + <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.cyclic.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.cyclic.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.cyclic.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.cyclic.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.cyclic.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.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#H"><span class="id" title="variable">H</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="isog_cyclic"><span class="id" title="lemma">isog_cyclic</span></a> <span class="id" title="var">G</span> <span class="id" title="var">M</span> : <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="http://coq.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.cyclic.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.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#M"><span class="id" title="variable">M</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="isog_cyclic_card"><span class="id" title="lemma">isog_cyclic_card</span></a> <span class="id" title="var">G</span> <span class="id" title="var">M</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="http://coq.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.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#M"><span class="id" title="variable">M</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.cyclic.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">Lemma</span> <a name="injm_generator"><span class="id" title="lemma">injm_generator</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</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.cyclic.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">>-></span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#IsoCyclic.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>) <span class="id" title="var">x</span> :<br/> + <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.cyclic.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.cyclic.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.cyclic.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#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.cyclic.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/> + <a class="idref" href="mathcomp.solvable.cyclic.html#generator"><span class="id" title="definition">generator</span></a> (<a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#H"><span class="id" title="variable">H</span></a>) (<a class="idref" href="mathcomp.solvable.cyclic.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#generator"><span class="id" title="definition">generator</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.cyclic.html#IsoCyclic"><span class="id" title="section">IsoCyclic</span></a>.<br/> + +<br/> +</div> + +<div class="doc"> + Metacyclic groups. +</div> +<div class="code"> +<span class="id" title="keyword">Section</span> <a name="Metacyclic"><span class="id" title="section">Metacyclic</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> <a name="Metacyclic.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">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.cyclic.html#Metacyclic.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">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.cyclic.html#Metacyclic.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">Definition</span> <a name="metacyclic"><span class="id" title="definition">metacyclic</span></a> <span class="id" title="var">A</span> :=<br/> + <a class="idref" href="mathcomp.ssreflect.fintype.html#a843dcbb9dc2e69b147054d3e1465e78"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#a843dcbb9dc2e69b147054d3e1465e78"><span class="id" title="notation">∃</span></a> <span class="id" title="var">H</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#a843dcbb9dc2e69b147054d3e1465e78"><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.cyclic.html#Metacyclic.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.fintype.html#46e5a4123d46e6b126f7788a77176785"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">[&&</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.cyclic.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#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#c27c638e534bbb5b7de2d4b4aa0a3e82"><span class="id" title="notation"><|</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> (<a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.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#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#a843dcbb9dc2e69b147054d3e1465e78"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="metacyclicP"><span class="id" title="lemma">metacyclicP</span></a> <span class="id" title="var">A</span> : <br/> + <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">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.cyclic.html#Metacyclic.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.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><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.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#H"><span class="id" title="variable">H</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#c27c638e534bbb5b7de2d4b4aa0a3e82"><span class="id" title="notation"><|</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> (<a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.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#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">]</span></a>) <br/> + (<a class="idref" href="mathcomp.solvable.cyclic.html#metacyclic"><span class="id" title="definition">metacyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#A"><span class="id" title="variable">A</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="metacyclic1"><span class="id" title="lemma">metacyclic1</span></a> : <a class="idref" href="mathcomp.solvable.cyclic.html#metacyclic"><span class="id" title="definition">metacyclic</span></a> 1.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="cyclic_metacyclic"><span class="id" title="lemma">cyclic_metacyclic</span></a> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#metacyclic"><span class="id" title="definition">metacyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#A"><span class="id" title="variable">A</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="metacyclicS"><span class="id" title="lemma">metacyclicS</span></a> <span class="id" title="var">G</span> <span class="id" title="var">H</span> : <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.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#metacyclic"><span class="id" title="definition">metacyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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#metacyclic"><span class="id" title="definition">metacyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#Metacyclic"><span class="id" title="section">Metacyclic</span></a>.<br/> + +<br/> + +<br/> +</div> + +<div class="doc"> + Automorphisms of cyclic groups. +</div> +<div class="code"> +<span class="id" title="keyword">Section</span> <a name="CyclicAutomorphism"><span class="id" title="section">CyclicAutomorphism</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> <a name="CyclicAutomorphism.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/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="CyclicAutomorphism.CycleAutomorphism"><span class="id" title="section">CycleAutomorphism</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> <a name="CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a> : <a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.gT"><span class="id" title="variable">gT</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="CyclicAutomorphism.CycleAutomorphism.CycleMorphism"><span class="id" title="section">CycleMorphism</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> <a name="CyclicAutomorphism.CycleAutomorphism.CycleMorphism.n"><span class="id" title="variable">n</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="cyclem"><span class="id" title="definition">cyclem</span></a> <span class="id" title="keyword">of</span> <a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.gT"><span class="id" title="variable">gT</span></a> := <span class="id" title="keyword">fun</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.gT"><span class="id" title="variable">gT</span></a> ⇒ <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#CyclicAutomorphism.CycleAutomorphism.CycleMorphism.n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="cyclemM"><span class="id" title="lemma">cyclemM</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#cyclem"><span class="id" title="definition">cyclem</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">:</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#169fb610eeaa28cebf8ec36928167473"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">cyclem_morphism</span> := <a class="idref" href="mathcomp.fingroup.morphism.html#Morphism"><span class="id" title="constructor">Morphism</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#cyclemM"><span class="id" title="lemma">cyclemM</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.CycleMorphism"><span class="id" title="section">CycleMorphism</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="CyclicAutomorphism.CycleAutomorphism.ZpUnitMorphism"><span class="id" title="section">ZpUnitMorphism</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> <a name="CyclicAutomorphism.CycleAutomorphism.ZpUnitMorphism.u"><span class="id" title="variable">u</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#f7c6b2be51cd10aae4ae8951352903f1"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.finalg.html#f7c6b2be51cd10aae4ae8951352903f1"><span class="id" title="notation">unit</span></a> <a class="idref" href="mathcomp.algebra.zmodp.html#9daeb9ead3dc7cfd1f9338b8de9c8c09"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.zmodp.html#9daeb9ead3dc7cfd1f9338b8de9c8c09"><span class="id" title="notation">Z_</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.finalg.html#f7c6b2be51cd10aae4ae8951352903f1"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="injm_cyclem"><span class="id" title="lemma">injm_cyclem</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.fingroup.morphism.html#14bfb149f00fa839cfb11397f4fe629f"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#cyclem"><span class="id" title="definition">cyclem</span></a> (<a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.ZpUnitMorphism.u"><span class="id" title="variable">u</span></a>) <a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#14bfb149f00fa839cfb11397f4fe629f"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="im_cyclem"><span class="id" title="lemma">im_cyclem</span></a> : <a class="idref" href="mathcomp.solvable.cyclic.html#cyclem"><span class="id" title="definition">cyclem</span></a> (<a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.ZpUnitMorphism.u"><span class="id" title="variable">u</span></a>) <a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Zp_unitm"><span class="id" title="definition">Zp_unitm</span></a> := <a class="idref" href="mathcomp.fingroup.automorphism.html#aut"><span class="id" title="definition">aut</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#injm_cyclem"><span class="id" title="lemma">injm_cyclem</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#im_cyclem"><span class="id" title="lemma">im_cyclem</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.ZpUnitMorphism"><span class="id" title="section">ZpUnitMorphism</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Zp_unitmM"><span class="id" title="lemma">Zp_unitmM</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.zmodp.html#units_Zp"><span class="id" title="definition">units_Zp</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</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.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">&,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#Zp_unitm"><span class="id" title="definition">Zp_unitm</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">:</span></a> <span class="id" title="var">u</span> <span class="id" title="var">v</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#169fb610eeaa28cebf8ec36928167473"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#v"><span class="id" title="variable">v</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Zp_unit_morphism</span> := <a class="idref" href="mathcomp.fingroup.morphism.html#Morphism"><span class="id" title="constructor">Morphism</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#Zp_unitmM"><span class="id" title="lemma">Zp_unitmM</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="injm_Zp_unitm"><span class="id" title="lemma">injm_Zp_unitm</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.cyclic.html#Zp_unitm"><span class="id" title="definition">Zp_unitm</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="generator_coprime"><span class="id" title="lemma">generator_coprime</span></a> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#generator"><span class="id" title="definition">generator</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a> (<a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#m"><span class="id" title="variable">m</span></a>) <a class="idref" href="http://coq.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.div.html#coprime"><span class="id" title="definition">coprime</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#m"><span class="id" title="variable">m</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="im_Zp_unitm"><span class="id" title="lemma">im_Zp_unitm</span></a> : <a class="idref" href="mathcomp.solvable.cyclic.html#Zp_unitm"><span class="id" title="definition">Zp_unitm</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.algebra.zmodp.html#units_Zp"><span class="id" title="definition">units_Zp</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</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.fingroup.automorphism.html#Aut"><span class="id" title="definition">Aut</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Zp_unit_isom"><span class="id" title="lemma">Zp_unit_isom</span></a> : <a class="idref" href="mathcomp.fingroup.morphism.html#isom"><span class="id" title="definition">isom</span></a> (<a class="idref" href="mathcomp.algebra.zmodp.html#units_Zp"><span class="id" title="definition">units_Zp</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a>) (<a class="idref" href="mathcomp.fingroup.automorphism.html#Aut"><span class="id" title="definition">Aut</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>) <a class="idref" href="mathcomp.solvable.cyclic.html#Zp_unitm"><span class="id" title="definition">Zp_unitm</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Zp_unit_isog"><span class="id" title="lemma">Zp_unit_isog</span></a> : <a class="idref" href="mathcomp.fingroup.morphism.html#isog"><span class="id" title="definition">isog</span></a> (<a class="idref" href="mathcomp.algebra.zmodp.html#units_Zp"><span class="id" title="definition">units_Zp</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">]</span></a>) (<a class="idref" href="mathcomp.fingroup.automorphism.html#Aut"><span class="id" title="definition">Aut</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="card_Aut_cycle"><span class="id" title="lemma">card_Aut_cycle</span></a> : <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.fingroup.automorphism.html#Aut"><span class="id" title="definition">Aut</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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.prime.html#totient"><span class="id" title="definition">totient</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</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="totient_gen"><span class="id" title="lemma">totient_gen</span></a> : <a class="idref" href="mathcomp.ssreflect.prime.html#totient"><span class="id" title="definition">totient</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</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.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><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">x</span> <a class="idref" href="mathcomp.ssreflect.finset.html#20dd00d77a881552893c96be95088d1a"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#generator"><span class="id" title="definition">generator</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#20dd00d77a881552893c96be95088d1a"><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="Aut_cycle_abelian"><span class="id" title="lemma">Aut_cycle_abelian</span></a> : <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> (<a class="idref" href="mathcomp.fingroup.automorphism.html#Aut"><span class="id" title="definition">Aut</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism.a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>).<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.CycleAutomorphism"><span class="id" title="section">CycleAutomorphism</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> <a name="CyclicAutomorphism.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.cyclic.html#CyclicAutomorphism.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="Aut_cyclic_abelian"><span class="id" title="lemma">Aut_cyclic_abelian</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.cyclic.html#CyclicAutomorphism.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.fingroup.automorphism.html#Aut"><span class="id" title="definition">Aut</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.G"><span class="id" title="variable">G</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="card_Aut_cyclic"><span class="id" title="lemma">card_Aut_cyclic</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.cyclic.html#CyclicAutomorphism.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.fingroup.automorphism.html#Aut"><span class="id" title="definition">Aut</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.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.ssreflect.prime.html#totient"><span class="id" title="definition">totient</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism.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="sum_ncycle_totient"><span class="id" title="lemma">sum_ncycle_totient</span></a> :<br/> + <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">d</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#61f81dc9ba2725ea9fb474df7def3848"><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.cyclic.html#CyclicAutomorphism.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#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#61f81dc9ba2725ea9fb474df7def3848"><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.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.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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.cyclic.html#CyclicAutomorphism.G"><span class="id" title="variable">G</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#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.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.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#d"><span class="id" title="variable">d</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#182f0780f81053a8ec00cd0f2bb25536"><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.prime.html#totient"><span class="id" title="definition">totient</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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#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.cyclic.html#CyclicAutomorphism.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">End</span> <a class="idref" href="mathcomp.solvable.cyclic.html#CyclicAutomorphism"><span class="id" title="section">CyclicAutomorphism</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="sum_totient_dvd"><span class="id" title="lemma">sum_totient_dvd</span></a> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.ssreflect.bigop.html#bc5057385ca1965dacf24d9d1fe93266"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#bc5057385ca1965dacf24d9d1fe93266"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#bc5057385ca1965dacf24d9d1fe93266"><span class="id" title="notation">(</span></a><span class="id" title="var">d</span> <a class="idref" href="mathcomp.ssreflect.bigop.html#bc5057385ca1965dacf24d9d1fe93266"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.ssreflect.bigop.html#bc5057385ca1965dacf24d9d1fe93266"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#d"><span class="id" title="variable">d</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.bigop.html#bc5057385ca1965dacf24d9d1fe93266"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.prime.html#totient"><span class="id" title="definition">totient</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="FieldMulCyclic"><span class="id" title="section">FieldMulCyclic</span></a>.<br/> + +<br/> +</div> + +<div class="doc"> + A classic application to finite multiplicative subgroups of fields. +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Import</span> <span class="id" title="var">GRing.Theory</span>.<br/> + +<br/> +<span class="id" title="keyword">Variables</span> (<a name="FieldMulCyclic.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="FieldMulCyclic.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.cyclic.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="order_inj_cyclic"><span class="id" title="lemma">order_inj_cyclic</span></a> :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#FieldMulCyclic.G"><span class="id" title="variable">G</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">&,</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">x</span> <span class="id" title="var">y</span>, <a class="idref" href="mathcomp.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.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.fingroup.fingroup.html#89402f0d9375903caa99ad84144160d5"><span class="id" title="notation">#[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#y"><span class="id" title="variable">y</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#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><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"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.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.cyclic.html#FieldMulCyclic.G"><span class="id" title="variable">G</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="div_ring_mul_group_cyclic"><span class="id" title="lemma">div_ring_mul_group_cyclic</span></a> (<span class="id" title="var">R</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Exports.unitRingType"><span class="id" title="abbreviation">unitRingType</span></a>) (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#FieldMulCyclic.gT"><span class="id" title="variable">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> <a class="idref" href="mathcomp.solvable.cyclic.html#R"><span class="id" title="variable">R</span></a>) :<br/> + <a class="idref" href="mathcomp.solvable.cyclic.html#f"><span class="id" title="variable">f</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> 1%<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="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#FieldMulCyclic.G"><span class="id" title="variable">G</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">&,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">:</span></a> <span class="id" title="var">u</span> <span class="id" title="var">v</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#169fb610eeaa28cebf8ec36928167473"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">>-></span></a> (<a class="idref" href="mathcomp.solvable.cyclic.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#v"><span class="id" title="variable">v</span></a>)%<span class="id" title="var">R</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a> <a 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/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#FieldMulCyclic.G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#adb8044960c962a921cca1bd48aae97d"><span class="id" title="notation">^#</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">x</span>, <a class="idref" href="mathcomp.solvable.cyclic.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><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#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#GRing.unit"><span class="id" title="definition">GRing.unit</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>%<span class="id" title="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><br/> + <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#FieldMulCyclic.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.cyclic.html#FieldMulCyclic.G"><span class="id" title="variable">G</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="field_mul_group_cyclic"><span class="id" title="lemma">field_mul_group_cyclic</span></a> (<span class="id" title="var">F</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#FieldMulCyclic.gT"><span class="id" title="variable">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> <a class="idref" href="mathcomp.solvable.cyclic.html#F"><span class="id" title="variable">F</span></a>) :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#FieldMulCyclic.G"><span class="id" title="variable">G</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">&,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">:</span></a> <span class="id" title="var">u</span> <span class="id" title="var">v</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#169fb610eeaa28cebf8ec36928167473"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">>-></span></a> (<a class="idref" href="mathcomp.solvable.cyclic.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#v"><span class="id" title="variable">v</span></a>)%<span class="id" title="var">R</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a> <a 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/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#FieldMulCyclic.G"><span class="id" title="variable">G</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">x</span>, <a class="idref" href="mathcomp.solvable.cyclic.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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> 1%<span class="id" title="var">R</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#df1ced36fc33ce188051218bca314374"><span class="id" title="notation">↔</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#FieldMulCyclic.G"><span class="id" title="variable">G</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.cyclic.html#FieldMulCyclic"><span class="id" title="section">FieldMulCyclic</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="field_unit_group_cyclic"><span class="id" title="lemma">field_unit_group_cyclic</span></a> (<span class="id" title="var">F</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.Exports.finFieldType"><span class="id" title="abbreviation">finFieldType</span></a>) (<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.algebra.finalg.html#f7c6b2be51cd10aae4ae8951352903f1"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.finalg.html#f7c6b2be51cd10aae4ae8951352903f1"><span class="id" title="notation">unit</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.finalg.html#f7c6b2be51cd10aae4ae8951352903f1"><span class="id" title="notation">}</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>) :<br/> + <a class="idref" href="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#G"><span class="id" title="variable">G</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="PrimitiveRoots"><span class="id" title="section">PrimitiveRoots</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Open</span> <span class="id" title="keyword">Scope</span> <span class="id" title="var">ring_scope</span>.<br/> +<span class="id" title="keyword">Import</span> <span class="id" title="var">GRing.Theory</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="has_prim_root"><span class="id" title="lemma">has_prim_root</span></a> (<span class="id" title="var">F</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<span class="id" title="var">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">rs</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#F"><span class="id" title="variable">F</span></a>) :<br/> + <a class="idref" href="mathcomp.solvable.cyclic.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#19ab5cfd7e4f60fa14f22b576013bd96"><span class="id" title="notation">></span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.poly.html#da242fdb489aa84109b1eed313339a83"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.algebra.poly.html#da242fdb489aa84109b1eed313339a83"><span class="id" title="notation">unity_root</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#rs"><span class="id" title="variable">rs</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#uniq"><span class="id" title="definition">uniq</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#rs"><span class="id" title="variable">rs</span></a> <a class="idref" href="http://coq.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.cyclic.html#rs"><span class="id" title="variable">rs</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#08fe8636f4b45ae6787c490d19de1366"><span class="id" title="notation">≥</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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><br/> + <a class="idref" href="mathcomp.ssreflect.seq.html#has"><span class="id" title="definition">has</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.poly.html#92efb5ea268b6e2f9a125afe76aecbba"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.algebra.poly.html#92efb5ea268b6e2f9a125afe76aecbba"><span class="id" title="notation">primitive_root</span></a> <a class="idref" href="mathcomp.solvable.cyclic.html#rs"><span class="id" title="variable">rs</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.solvable.cyclic.html#PrimitiveRoots"><span class="id" title="section">PrimitiveRoots</span></a>.<br/> + +<br/> +</div> + +<div class="doc"> + Cycles of prime order +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Section</span> <a name="AutPrime"><span class="id" title="section">AutPrime</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> <a name="AutPrime.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/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Aut_prime_cycle_cyclic"><span class="id" title="lemma">Aut_prime_cycle_cyclic</span></a> (<span class="id" title="var">a</span> : <a class="idref" href="mathcomp.solvable.cyclic.html#AutPrime.gT"><span class="id" title="variable">gT</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.cyclic.html#a"><span class="id" title="variable">a</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#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.fingroup.automorphism.html#Aut"><span class="id" title="definition">Aut</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.solvable.cyclic.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#30152704c0ab4066186d0284456667e8"><span class="id" title="notation">]></span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Aut_prime_cyclic"><span class="id" title="lemma">Aut_prime_cyclic</span></a> (<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.cyclic.html#AutPrime.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.prime.html#prime"><span class="id" title="definition">prime</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.solvable.cyclic.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="mathcomp.solvable.cyclic.html#cyclic"><span class="id" title="definition">cyclic</span></a> (<a class="idref" href="mathcomp.fingroup.automorphism.html#Aut"><span class="id" title="definition">Aut</span></a> <a class="idref" href="mathcomp.solvable.cyclic.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.cyclic.html#AutPrime"><span class="id" title="section">AutPrime</span></a>.<br/> +</div> +</div> + +<div id="footer"> +<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a> +</div> + +</div> + +</body> +</html>
\ No newline at end of file |
