diff options
| author | Enrico Tassi | 2018-04-20 10:54:22 +0200 |
|---|---|---|
| committer | Enrico Tassi | 2018-04-20 10:54:22 +0200 |
| commit | ed05182cece6bb3706e09b2ce14af4a41a2e8141 (patch) | |
| tree | e850d7314b6372d0476cf2ffaf7d3830721db7b1 /docs/htmldoc/mathcomp.field.galois.html | |
| parent | 3d196f44681fb3b23ff8a79fbd44e12308680531 (diff) | |
generate the documentation for 1.7
Diffstat (limited to 'docs/htmldoc/mathcomp.field.galois.html')
| -rw-r--r-- | docs/htmldoc/mathcomp.field.galois.html | 984 |
1 files changed, 984 insertions, 0 deletions
diff --git a/docs/htmldoc/mathcomp.field.galois.html b/docs/htmldoc/mathcomp.field.galois.html new file mode 100644 index 0000000..5b28ffb --- /dev/null +++ b/docs/htmldoc/mathcomp.field.galois.html @@ -0,0 +1,984 @@ +<!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.field.galois</title> +</head> + +<body> + +<div id="page"> + +<div id="header"> +</div> + +<div id="main"> + +<h1 class="libtitle">Library mathcomp.field.galois</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"> + This file develops some basic Galois field theory, defining: + splittingFieldFor K p E <-> E is the smallest field over K that splits p + into linear factors. + kHom K E f <=> f : 'End(L) is a ring morphism on E and fixes K. + kAut K E f <=> f : 'End(L) is a kHom K E and f @: E == E. + kHomExtend E f x y == a kHom K <tt>E; x</tt> that extends f and maps x to y, + when f \is a kHom K E and root (minPoly E x) y. + +<div class="paragraph"> </div> + + splittingFieldFor K p E <-> E is splitting field for p over K: p splits in + E and its roots generate E from K. + splittingFieldType F == the interface type of splitting field extensions + of F, that is, extensions generated by all the + algebraic roots of some polynomial, or, + equivalently, normal field extensions of F. + SplittingField.axiom F L == the axiom stating that L is a splitting field. + SplittingFieldType F L FsplitL == packs a proof FsplitL of the splitting + field axiom for L into a splitingFieldType F, + provided L has a fieldExtType F structure. + [splittingFieldType F of L] == a clone of the canonical splittingFieldType + structure for L. +[splittingFieldType F of L for M] == an L-clone of the canonical + splittingFieldType structure on M. + +<div class="paragraph"> </div> + + gal_of E == the group_type of automorphisms of E over the + base field F. + 'Gal(E / K) == the group of automorphisms of E that fix K. + fixedField s == the field fixed by the set of automorphisms s. + fixedField set0 = E when set0 : {set: gal_of E} + normalField K E <=> E is invariant for every 'Gal(L / K) for every L. + galois K E <=> E is a normal and separable field extension of K. + galTrace K E a == \sum(f in 'Gal(E / K)) (f a). + galNorm K E a == \prod(f in 'Gal(E / K)) (f a). + +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Set Implicit Arguments</span>.<br/> + +<br/> +<span class="id" title="keyword">Reserved Notation</span> "''Gal' ( A / B )"<br/> + (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8, <span class="id" title="var">A</span> <span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 35, <span class="id" title="var">format</span> "''Gal' ( A / B )").<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/> +<span class="id" title="keyword">Local Open</span> <span class="id" title="keyword">Scope</span> <span class="id" title="var">ring_scope</span>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="SplittingFieldFor"><span class="id" title="section">SplittingFieldFor</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variables</span> (<a name="SplittingFieldFor.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="SplittingFieldFor.L"><span class="id" title="variable">L</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.Exports.fieldExtType"><span class="id" title="abbreviation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.galois.html#F"><span class="id" title="variable">F</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="splittingFieldFor"><span class="id" title="definition">splittingFieldFor</span></a> (<span class="id" title="var">U</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingFieldFor.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingFieldFor.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingFieldFor.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><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#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">rs</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#9c1ccd33b816bf809c7479082caaf63e"><span class="id" title="notation">%=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><span class="id" title="var">z</span> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.galois.html#rs"><span class="id" title="variable">rs</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.galois.html#z"><span class="id" title="variable">z</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.field.falgebra.html#e4ccb61d3c0d4e7e716fb926f4a43f39"><span class="id" title="notation"><<</span></a><a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.falgebra.html#e4ccb61d3c0d4e7e716fb926f4a43f39"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.field.galois.html#rs"><span class="id" title="variable">rs</span></a><a class="idref" href="mathcomp.field.falgebra.html#e4ccb61d3c0d4e7e716fb926f4a43f39"><span class="id" title="notation">>></span></a>%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="splittingFieldForS"><span class="id" title="lemma">splittingFieldForS</span></a> (<span class="id" title="var">K</span> <span class="id" title="var">M</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingFieldFor.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>) <span class="id" title="var">p</span> :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#M"><span class="id" title="variable">M</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.field.galois.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="mathcomp.field.galois.html#splittingFieldFor"><span class="id" title="definition">splittingFieldFor</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#splittingFieldFor"><span class="id" title="definition">splittingFieldFor</span></a> <a class="idref" href="mathcomp.field.galois.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#SplittingFieldFor"><span class="id" title="section">SplittingFieldFor</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="kHom"><span class="id" title="section">kHom</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variables</span> (<a name="kHom.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="kHom.L"><span class="id" title="variable">L</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.Exports.fieldExtType"><span class="id" title="abbreviation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.galois.html#F"><span class="id" title="variable">F</span></a>).<br/> +<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">U</span> <span class="id" title="var">V</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">K</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">f</span> <span class="id" title="var">g</span> : <a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">End</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">)</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="kHom"><span class="id" title="definition">kHom</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">f</span> := <a class="idref" href="mathcomp.field.falgebra.html#ahom_in"><span class="id" title="definition">ahom_in</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.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.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&&</span></a> (<a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fixedSpace"><span class="id" title="definition">fixedSpace</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>)%<span class="id" title="var">VS</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHomP"><span class="id" title="lemma">kHomP</span></a> {<span class="id" title="var">K</span> <span class="id" title="var">V</span> <span class="id" title="var">f</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.ssr.ssrbool.html#4d70beb460e783df2b7b2ad387c00194"><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.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#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.field.galois.html#f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.galois.html#y"><span class="id" title="variable">y</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.galois.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><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#4d70beb460e783df2b7b2ad387c00194"><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.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">x</span>, <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4d70beb460e783df2b7b2ad387c00194"><span class="id" title="notation">]</span></a><br/> + (<a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kAHomP"><span class="id" title="lemma">kAHomP</span></a> {<span class="id" title="var">U</span> <span class="id" title="var">V</span>} {<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><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#reflect"><span class="id" title="abbreviation">reflect</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">x</span>, <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a> (<a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHom1"><span class="id" title="lemma">kHom1</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9c5859a8d2fadc014a07818a2f27d0e9"><span class="id" title="notation">\1</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="k1HomE"><span class="id" title="lemma">k1HomE</span></a> <span class="id" title="var">V</span> <span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> 1 <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.falgebra.html#ahom_in"><span class="id" title="definition">ahom_in</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHom_lrmorphism"><span class="id" title="lemma">kHom_lrmorphism</span></a> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">End</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">)</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.LRMorphism.Exports.lrmorphism"><span class="id" title="abbreviation">lrmorphism</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>) (<a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> 1 <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="k1AHom"><span class="id" title="lemma">k1AHom</span></a> <span class="id" title="var">V</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> 1 <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHom_poly_id"><span class="id" title="lemma">kHom_poly_id</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> <span class="id" title="var">p</span> :<br/> + <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.galois.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.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.galois.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> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHomSl"><span class="id" title="lemma">kHomSl</span></a> <span class="id" title="var">U1</span> <span class="id" title="var">U2</span> <span class="id" title="var">V</span> <span class="id" title="var">f</span> : (<a class="idref" href="mathcomp.field.galois.html#U1"><span class="id" title="variable">U1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#U2"><span class="id" title="variable">U2</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#U2"><span class="id" title="variable">U2</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#U1"><span class="id" title="variable">U1</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHomSr"><span class="id" title="lemma">kHomSr</span></a> <span class="id" title="var">K</span> <span class="id" title="var">V1</span> <span class="id" title="var">V2</span> <span class="id" title="var">f</span> : (<a class="idref" href="mathcomp.field.galois.html#V1"><span class="id" title="variable">V1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#V2"><span class="id" title="variable">V2</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#V2"><span class="id" title="variable">V2</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#V1"><span class="id" title="variable">V1</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHomS"><span class="id" title="lemma">kHomS</span></a> <span class="id" title="var">K1</span> <span class="id" title="var">K2</span> <span class="id" title="var">V1</span> <span class="id" title="var">V2</span> <span class="id" title="var">f</span> :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K1"><span class="id" title="variable">K1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#K2"><span class="id" title="variable">K2</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.field.galois.html#V1"><span class="id" title="variable">V1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#V2"><span class="id" title="variable">V2</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K2"><span class="id" title="variable">K2</span></a> <a class="idref" href="mathcomp.field.galois.html#V2"><span class="id" title="variable">V2</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K1"><span class="id" title="variable">K1</span></a> <a class="idref" href="mathcomp.field.galois.html#V1"><span class="id" title="variable">V1</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHom_eq"><span class="id" title="lemma">kHom_eq</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> <span class="id" title="var">g</span> :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="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.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHom_inv"><span class="id" title="lemma">kHom_inv</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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="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.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#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#c3c88e2b30b681cd767a54649faf5973"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c3c88e2b30b681cd767a54649faf5973"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.field.galois.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#c3c88e2b30b681cd767a54649faf5973"><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.ssr.ssrfun.html#c3c88e2b30b681cd767a54649faf5973"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">^-1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c3c88e2b30b681cd767a54649faf5973"><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="kHom_dim"><span class="id" title="lemma">kHom_dim</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#ee35a6780ccd60155a3be89dcb5fdb30"><span class="id" title="notation">dim</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHom_is_rmorphism"><span class="id" title="lemma">kHom_is_rmorphism</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> :<br/> + <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.RMorphism.Exports.rmorphism"><span class="id" title="abbreviation">rmorphism</span></a> (<a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#1b4394c5c1740ef3dc9e4224084970bb"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.algebra.vector.html#vsval"><span class="id" title="definition">vsval</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a>).<br/> +<span class="id" title="keyword">Definition</span> <a name="kHom_rmorphism"><span class="id" title="definition">kHom_rmorphism</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> <span class="id" title="var">homKEf</span> :=<br/> + <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.RMorphism.Exports.RMorphism"><span class="id" title="abbreviation">RMorphism</span></a> (@<a class="idref" href="mathcomp.field.galois.html#kHom_is_rmorphism"><span class="id" title="lemma">kHom_is_rmorphism</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.galois.html#homKEf"><span class="id" title="variable">homKEf</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHom_horner"><span class="id" title="lemma">kHom_horner</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> <span class="id" title="var">p</span> <span class="id" title="var">x</span> :<br/> + <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">.[</span></a><a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">).[</span></a><a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHom_root"><span class="id" title="lemma">kHom_root</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> <span class="id" title="var">p</span> <span class="id" title="var">x</span> :<br/> + <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.galois.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><br/> + <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a>) (<a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHom_root_id"><span class="id" title="lemma">kHom_root_id</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> <span class="id" title="var">p</span> <span class="id" title="var">x</span> :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.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.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.galois.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><br/> + <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> (<a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="kHom.kHomExtend"><span class="id" title="section">kHomExtend</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variables</span> (<a name="kHom.kHomExtend.K"><span class="id" title="variable">K</span></a> <a name="kHom.kHomExtend.E"><span class="id" title="variable">E</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>) (<a name="kHom.kHomExtend.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">End</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">)</span></a>) (<a name="kHom.kHomExtend.x"><span class="id" title="variable">x</span></a> <a name="kHom.kHomExtend.y"><span class="id" title="variable">y</span></a> : <a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="kHomExtend_subproof"><span class="id" title="lemma">kHomExtend_subproof</span></a> :<br/> + <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.linear"><span class="id" title="abbreviation">linear</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">z</span> ⇒ <a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#Fadjoin_poly"><span class="id" title="definition">Fadjoin_poly</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.html#z"><span class="id" title="variable">z</span></a>)<a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">).[</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.y"><span class="id" title="variable">y</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a>).<br/> +<span class="id" title="keyword">Definition</span> <a name="kHomExtend"><span class="id" title="definition">kHomExtend</span></a> := <a class="idref" href="mathcomp.algebra.vector.html#linfun"><span class="id" title="definition">linfun</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Linear.Exports.Linear"><span class="id" title="abbreviation">Linear</span></a> <a class="idref" href="mathcomp.field.galois.html#kHomExtend_subproof"><span class="id" title="lemma">kHomExtend_subproof</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHomExtendE"><span class="id" title="lemma">kHomExtendE</span></a> <span class="id" title="var">z</span> : <a class="idref" href="mathcomp.field.galois.html#kHomExtend"><span class="id" title="definition">kHomExtend</span></a> <a class="idref" href="mathcomp.field.galois.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#Fadjoin_poly"><span class="id" title="definition">Fadjoin_poly</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.html#z"><span class="id" title="variable">z</span></a>)<a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">).[</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.y"><span class="id" title="variable">y</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Hypotheses</span> (<a name="kHom.kHomExtend.sKE"><span class="id" title="variable">sKE</span></a> : (<a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span>) (<a name="kHom.kHomExtend.homKf"><span class="id" title="variable">homKf</span></a> : <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.f"><span class="id" title="variable">f</span></a>).<br/> +<span class="id" title="keyword">Hypothesis</span> <a name="kHom.kHomExtend.fPx_y_0"><span class="id" title="variable">fPx_y_0</span></a> : <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.galois.html#Px"><span class="id" title="abbreviation">Px</span></a>) <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.y"><span class="id" title="variable">y</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHomExtend_id"><span class="id" title="lemma">kHomExtend_id</span></a> <span class="id" title="var">z</span> : <a class="idref" href="mathcomp.field.galois.html#z"><span class="id" title="variable">z</span></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.field.galois.html#kHom.kHomExtend.E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#kHomExtend"><span class="id" title="definition">kHomExtend</span></a> <a class="idref" href="mathcomp.field.galois.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.galois.html#z"><span class="id" title="variable">z</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHomExtend_val"><span class="id" title="lemma">kHomExtend_val</span></a> : <a class="idref" href="mathcomp.field.galois.html#kHomExtend"><span class="id" title="definition">kHomExtend</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.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.field.galois.html#kHom.kHomExtend.y"><span class="id" title="variable">y</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHomExtend_poly"><span class="id" title="lemma">kHomExtend_poly</span></a> <span class="id" title="var">p</span> :<br/> + <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#kHomExtend"><span class="id" title="definition">kHomExtend</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">.[</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">).[</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.y"><span class="id" title="variable">y</span></a><a class="idref" href="mathcomp.algebra.poly.html#9956cd3926e9966aa6979e465e39d037"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHomExtendP"><span class="id" title="lemma">kHomExtendP</span></a> : <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation"><<</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend.x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">>></span></a> <a class="idref" href="mathcomp.field.galois.html#kHomExtend"><span class="id" title="definition">kHomExtend</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#kHom.kHomExtend"><span class="id" title="section">kHomExtend</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="kAut"><span class="id" title="definition">kAut</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">f</span> := <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.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.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&&</span></a> (<a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kAutE"><span class="id" title="lemma">kAutE</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.galois.html#kAut"><span class="id" title="definition">kAut</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&&</span></a> (<a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kAutS"><span class="id" title="lemma">kAutS</span></a> <span class="id" title="var">U1</span> <span class="id" title="var">U2</span> <span class="id" title="var">V</span> <span class="id" title="var">f</span> : (<a class="idref" href="mathcomp.field.galois.html#U1"><span class="id" title="variable">U1</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#U2"><span class="id" title="variable">U2</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#kAut"><span class="id" title="definition">kAut</span></a> <a class="idref" href="mathcomp.field.galois.html#U2"><span class="id" title="variable">U2</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#kAut"><span class="id" title="definition">kAut</span></a> <a class="idref" href="mathcomp.field.galois.html#U1"><span class="id" title="variable">U1</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHom_kAut_sub"><span class="id" title="lemma">kHom_kAut_sub</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.galois.html#kAut"><span class="id" title="definition">kAut</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>. <br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kAut_eq"><span class="id" title="lemma">kAut_eq</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> (<span class="id" title="var">f</span> <span class="id" title="var">g</span> : <a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">End</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#f2977b5d91be916157fc34deec16772c"><span class="id" title="notation">)</span></a>) :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="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.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#kAut"><span class="id" title="definition">kAut</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.galois.html#kAut"><span class="id" title="definition">kAut</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kAutfE"><span class="id" title="lemma">kAutfE</span></a> <span class="id" title="var">K</span> <span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.galois.html#kAut"><span class="id" title="definition">kAut</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kAut1E"><span class="id" title="lemma">kAut1E</span></a> <span class="id" title="var">E</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.field.galois.html#kAut"><span class="id" title="definition">kAut</span></a> 1 <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> (<a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kAutf_lker0"><span class="id" title="lemma">kAutf_lker0</span></a> <span class="id" title="var">K</span> <span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.vector.html#lker"><span class="id" title="definition">lker</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0%<span class="id" title="var">VS</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="inv_kHomf"><span class="id" title="lemma">inv_kHomf</span></a> <span class="id" title="var">K</span> <span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#517f88b2f002b4e1dbd5bb3edaded374"><span class="id" title="notation">^-1</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="inv_is_ahom"><span class="id" title="lemma">inv_is_ahom</span></a> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.field.falgebra.html#ahom_in"><span class="id" title="definition">ahom_in</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.algebra.vector.html#517f88b2f002b4e1dbd5bb3edaded374"><span class="id" title="notation">^-1</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">inv_ahom</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a> := <a class="idref" href="mathcomp.field.falgebra.html#AHom"><span class="id" title="constructor">AHom</span></a> (<a class="idref" href="mathcomp.field.galois.html#inv_is_ahom"><span class="id" title="lemma">inv_is_ahom</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>).<br/> +<span class="id" title="keyword">Notation</span> <a name="d93c41db215f2e5ebe99df78bee43699"><span class="id" title="notation">"</span></a>f ^-1" := (<a class="idref" href="mathcomp.field.galois.html#inv_ahom"><span class="id" title="definition">inv_ahom</span></a> <span class="id" title="var">f</span>) : <span class="id" title="var">lrfun_scope</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="comp_kHom_img"><span class="id" title="lemma">comp_kHom_img</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> <span class="id" title="var">g</span> :<br/> + <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> (<a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>) <a class="idref" href="mathcomp.field.galois.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.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> (<a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="comp_kHom"><span class="id" title="lemma">comp_kHom</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> <span class="id" title="var">g</span> : <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.field.galois.html#kHom.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> (<a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#9ad88b19a9e5558beda973c77ca474da"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHom_extends"><span class="id" title="lemma">kHom_extends</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> <span class="id" title="var">p</span> <span class="id" title="var">U</span> :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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><br/> + <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#splittingFieldFor"><span class="id" title="definition">splittingFieldFor</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">{</span></a><span class="id" title="var">g</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.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.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="section">kHom</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Notation</span> <a name="79a3a966faeace99f10f10068f80e768"><span class="id" title="notation">"</span></a>f ^-1" := (<a class="idref" href="mathcomp.field.galois.html#inv_ahom"><span class="id" title="definition">inv_ahom</span></a> <span class="id" title="var">f</span>) : <span class="id" title="var">lrfun_scope</span>.<br/> + +<br/> + +<br/> +<span class="id" title="keyword">Module</span> <a name="SplittingField"><span class="id" title="module">SplittingField</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Import</span> <span class="id" title="var">GRing</span>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="SplittingField.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> <a name="SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.axiom"><span class="id" title="definition">axiom</span></a> (<span class="id" title="var">L</span> : <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.Exports.fieldExtType"><span class="id" title="abbreviation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a>) :=<br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">p</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.galois.html#L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> 1%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.field.galois.html#splittingFieldFor"><span class="id" title="definition">splittingFieldFor</span></a> 1 <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.field.galois.html#L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Record</span> <a name="SplittingField.class_of"><span class="id" title="record">class_of</span></a> (<span class="id" title="var">L</span> : <span class="id" title="keyword">Type</span>) : <span class="id" title="keyword">Type</span> :=<br/> + <a name="SplittingField.Class"><span class="id" title="constructor">Class</span></a> {<a name="SplittingField.base"><span class="id" title="projection">base</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.class_of"><span class="id" title="record">FieldExt.class_of</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.galois.html#L"><span class="id" title="variable">L</span></a>; <span class="id" title="var">_</span> : <a class="idref" href="mathcomp.field.galois.html#SplittingField.axiom"><span class="id" title="definition">axiom</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#FieldExt.Pack"><span class="id" title="constructor">FieldExt.Pack</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.field.galois.html#base"><span class="id" title="method">base</span></a> <a class="idref" href="mathcomp.field.galois.html#L"><span class="id" title="variable">L</span></a>)}.<br/> + +<br/> +<span class="id" title="keyword">Structure</span> <a name="SplittingField.type"><span class="id" title="record">type</span></a> (<span class="id" title="var">phF</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a>) := <a name="SplittingField.Pack"><span class="id" title="constructor">Pack</span></a> {<a name="SplittingField.sort"><span class="id" title="projection">sort</span></a>; <span class="id" title="var">_</span> : <a class="idref" href="mathcomp.field.galois.html#SplittingField.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.field.galois.html#sort"><span class="id" title="method">sort</span></a>; <span class="id" title="var">_</span> : <span class="id" title="keyword">Type</span>}.<br/> +<span class="id" title="keyword">Variable</span> (<a name="SplittingField.ClassDef.phF"><span class="id" title="variable">phF</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a>) (<a name="SplittingField.ClassDef.T"><span class="id" title="variable">T</span></a> : <span class="id" title="keyword">Type</span>) (<a name="SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> : <a class="idref" href="mathcomp.field.galois.html#SplittingField.type"><span class="id" title="record">type</span></a> <a class="idref" href="mathcomp.field.galois.html#phF"><span class="id" title="variable">phF</span></a>).<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.class"><span class="id" title="definition">class</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.field.galois.html#SplittingField.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">_</span> <span class="id" title="var">c</span> <span class="id" title="var">_</span> <span class="id" title="keyword">as</span> <span class="id" title="var">cT'</span> := <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.field.galois.html#cT'"><span class="id" title="variable">cT'</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">c</span>.<br/> +<span class="id" title="keyword">Let</span> <a name="SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.field.galois.html#SplittingField.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">T</span>.<br/> +<span class="id" title="keyword">Notation</span> <a name="SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> := (<a class="idref" href="mathcomp.field.galois.html#SplittingField.class"><span class="id" title="definition">class</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.clone"><span class="id" title="definition">clone</span></a> <span class="id" title="var">c</span> <span class="id" title="keyword">of</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#phant_id"><span class="id" title="definition">phant_id</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.class"><span class="id" title="definition">class</span></a> <a class="idref" href="mathcomp.field.galois.html#c"><span class="id" title="variable">c</span></a> := @<a class="idref" href="mathcomp.field.galois.html#SplittingField.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.phF"><span class="id" title="variable">phF</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.field.galois.html#c"><span class="id" title="variable">c</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.T"><span class="id" title="variable">T</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">b0</span> (<span class="id" title="var">ax0</span> : <a class="idref" href="mathcomp.field.galois.html#SplittingField.axiom"><span class="id" title="definition">axiom</span></a> (@<a class="idref" href="mathcomp.field.fieldext.html#FieldExt.Pack"><span class="id" title="constructor">FieldExt.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a>) <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.field.galois.html#b0"><span class="id" title="variable">b0</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.T"><span class="id" title="variable">T</span></a>)) :=<br/> + <span class="id" title="keyword">fun</span> <span class="id" title="var">bT</span> <span class="id" title="var">b</span> & <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#phant_id"><span class="id" title="definition">phant_id</span></a> (@<a class="idref" href="mathcomp.field.fieldext.html#FieldExt.class"><span class="id" title="definition">FieldExt.class</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.phF"><span class="id" title="variable">phF</span></a> <a class="idref" href="mathcomp.field.galois.html#bT"><span class="id" title="variable">bT</span></a>) <a class="idref" href="mathcomp.field.galois.html#b"><span class="id" title="variable">b</span></a> ⇒<br/> + <span class="id" title="keyword">fun</span> <span class="id" title="var">ax</span> & <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#phant_id"><span class="id" title="definition">phant_id</span></a> <a class="idref" href="mathcomp.field.galois.html#ax0"><span class="id" title="variable">ax0</span></a> <a class="idref" href="mathcomp.field.galois.html#ax"><span class="id" title="variable">ax</span></a> ⇒ <a class="idref" href="mathcomp.field.galois.html#SplittingField.Pack"><span class="id" title="constructor">Pack</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a>) (@<a class="idref" href="mathcomp.field.galois.html#SplittingField.Class"><span class="id" title="constructor">Class</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.field.galois.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.field.galois.html#ax"><span class="id" title="variable">ax</span></a>) <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.T"><span class="id" title="variable">T</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.eqType"><span class="id" title="definition">eqType</span></a> := @<a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Pack"><span class="id" title="constructor">Equality.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.choiceType"><span class="id" title="definition">choiceType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Pack"><span class="id" title="constructor">Choice.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.zmodType"><span class="id" title="definition">zmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.ringType"><span class="id" title="definition">ringType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.unitRingType"><span class="id" title="definition">unitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.comRingType"><span class="id" title="definition">comRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.Pack"><span class="id" title="constructor">ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.idomainType"><span class="id" title="definition">idomainType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Pack"><span class="id" title="constructor">IntegralDomain.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.fieldType"><span class="id" title="definition">fieldType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Pack"><span class="id" title="constructor">Field.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.lmodType"><span class="id" title="definition">lmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Pack"><span class="id" title="constructor">Lmodule.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.phF"><span class="id" title="variable">phF</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.lalgType"><span class="id" title="definition">lalgType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lalgebra.Pack"><span class="id" title="constructor">Lalgebra.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.phF"><span class="id" title="variable">phF</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.algType"><span class="id" title="definition">algType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Algebra.Pack"><span class="id" title="constructor">Algebra.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.phF"><span class="id" title="variable">phF</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitAlgebra.Pack"><span class="id" title="constructor">UnitAlgebra.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.phF"><span class="id" title="variable">phF</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.vectType"><span class="id" title="definition">vectType</span></a> := @<a class="idref" href="mathcomp.algebra.vector.html#Vector.Pack"><span class="id" title="constructor">Vector.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.phF"><span class="id" title="variable">phF</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.FalgType"><span class="id" title="definition">FalgType</span></a> := @<a class="idref" href="mathcomp.field.falgebra.html#Falgebra.Pack"><span class="id" title="constructor">Falgebra.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.phF"><span class="id" title="variable">phF</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="SplittingField.fieldExtType"><span class="id" title="definition">fieldExtType</span></a> := @<a class="idref" href="mathcomp.field.fieldext.html#FieldExt.Pack"><span class="id" title="constructor">FieldExt.Pack</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.phF"><span class="id" title="variable">phF</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Module</span> <a name="SplittingField.Exports"><span class="id" title="module">Exports</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.sort"><span class="id" title="projection">sort</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.sort"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.sort"><span class="id" title="projection">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.sort"><span class="id" title="projection">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.sort"><span class="id" title="projection">Sortclass</span></a>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.base"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.base"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.base"><span class="id" title="projection">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.base"><span class="id" title="projection">FieldExt.class_of</span></a>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.eqType"><span class="id" title="definition">eqType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.eqType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.eqType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.eqType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.eqType"><span class="id" title="definition">Equality.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.choiceType"><span class="id" title="definition">choiceType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.choiceType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.choiceType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.choiceType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.choiceType"><span class="id" title="definition">Choice.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.zmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.zmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.zmodType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.zmodType"><span class="id" title="definition">Zmodule.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ringType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ringType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ringType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.ringType"><span class="id" title="definition">Ring.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ringType</span>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.unitRingType"><span class="id" title="definition">unitRingType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.unitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.unitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.unitRingType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.unitRingType"><span class="id" title="definition">UnitRing.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitRingType</span>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.comRingType"><span class="id" title="definition">comRingType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.comRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.comRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.comRingType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.comRingType"><span class="id" title="definition">ComRing.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comRingType</span>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.comUnitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.comUnitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.comUnitRingType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.comUnitRingType"><span class="id" title="definition">ComUnitRing.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comUnitRingType</span>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.idomainType"><span class="id" title="definition">idomainType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.idomainType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.idomainType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.idomainType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.idomainType"><span class="id" title="definition">IntegralDomain.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">idomainType</span>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.fieldType"><span class="id" title="definition">fieldType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.fieldType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.fieldType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.fieldType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.fieldType"><span class="id" title="definition">Field.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldType</span>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.lmodType"><span class="id" title="definition">lmodType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.lmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.lmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.lmodType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.lmodType"><span class="id" title="definition">Lmodule.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lmodType</span>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.lalgType"><span class="id" title="definition">lalgType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.lalgType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.lalgType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.lalgType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.lalgType"><span class="id" title="definition">Lalgebra.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lalgType</span>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.algType"><span class="id" title="definition">algType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.algType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.algType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.algType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.algType"><span class="id" title="definition">Algebra.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">algType</span>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.unitAlgType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.unitAlgType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.unitAlgType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.unitAlgType"><span class="id" title="definition">UnitAlgebra.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitAlgType</span>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.vectType"><span class="id" title="definition">vectType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.vectType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.vectType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.vectType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.vectType"><span class="id" title="definition">Vector.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">vectType</span>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.FalgType"><span class="id" title="definition">FalgType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.FalgType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.FalgType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.FalgType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.FalgType"><span class="id" title="definition">Falgebra.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">FalgType</span>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.fieldExtType"><span class="id" title="definition">fieldExtType</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.fieldExtType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.fieldExtType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.fieldExtType"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingField.fieldExtType"><span class="id" title="definition">FieldExt.type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldExtType</span>.<br/> + +<br/> +<span class="id" title="keyword">Notation</span> <a name="SplittingField.Exports.splittingFieldType"><span class="id" title="abbreviation">splittingFieldType</span></a> <span class="id" title="var">F</span> := (<a class="idref" href="mathcomp.field.galois.html#SplittingField.type"><span class="id" title="record">type</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">F</span>)).<br/> +<span class="id" title="keyword">Notation</span> <a name="SplittingField.Exports.SplittingFieldType"><span class="id" title="abbreviation">SplittingFieldType</span></a> <span class="id" title="var">F</span> <span class="id" title="var">L</span> <span class="id" title="var">ax</span> := (@<a class="idref" href="mathcomp.field.galois.html#SplittingField.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">_</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">F</span>) <span class="id" title="var">L</span> <span class="id" title="var">_</span> <span class="id" title="var">ax</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a> <span class="id" title="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a>).<br/> +<span class="id" title="keyword">Notation</span> <a name="201f8b6ebe31f6a88a3d073a45335fc2"><span class="id" title="notation">"</span></a>[ 'splittingFieldType' F 'of' L 'for' K ]" :=<br/> + (@<a class="idref" href="mathcomp.field.galois.html#SplittingField.clone"><span class="id" title="definition">clone</span></a> <span class="id" title="var">_</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">F</span>) <span class="id" title="var">L</span> <span class="id" title="var">K</span> <span class="id" title="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#idfun"><span class="id" title="abbreviation">idfun</span></a>)<br/> + (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'splittingFieldType' F 'of' L 'for' K ]")<br/> + : <span class="id" title="var">form_scope</span>.<br/> +<span class="id" title="keyword">Notation</span> <a name="99357846948d73ae425c8713e468bc5c"><span class="id" title="notation">"</span></a>[ 'splittingFieldType' F 'of' L ]" :=<br/> + (@<a class="idref" href="mathcomp.field.galois.html#SplittingField.clone"><span class="id" title="definition">clone</span></a> <span class="id" title="var">_</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">F</span>) <span class="id" title="var">L</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a>)<br/> + (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'splittingFieldType' F 'of' L ]") : <span class="id" title="var">form_scope</span>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField.Exports"><span class="id" title="module">Exports</span></a>.<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#SplittingField"><span class="id" title="module">SplittingField</span></a>.<br/> +<span class="id" title="keyword">Export</span> <span class="id" title="var">SplittingField.Exports</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normal_field_splitting"><span class="id" title="lemma">normal_field_splitting</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">L</span> : <a class="idref" href="mathcomp.field.fieldext.html#FieldExt.Exports.fieldExtType"><span class="id" title="abbreviation">fieldExtType</span></a> <a class="idref" href="mathcomp.field.galois.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.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> (<span class="id" title="var">K</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.galois.html#L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>) <span class="id" title="var">x</span>,<br/> + <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">r</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.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><span class="id" title="var">y</span> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.galois.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.galois.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="mathcomp.field.galois.html#axiom"><span class="id" title="definition">SplittingField.axiom</span></a> <a class="idref" href="mathcomp.field.galois.html#L"><span class="id" title="variable">L</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="regular_splittingAxiom"><span class="id" title="lemma">regular_splittingAxiom</span></a> <span class="id" title="var">F</span> : <a class="idref" href="mathcomp.field.galois.html#axiom"><span class="id" title="definition">SplittingField.axiom</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#regular_fieldExtType"><span class="id" title="definition">regular_fieldExtType</span></a> <a class="idref" href="mathcomp.field.galois.html#F"><span class="id" title="variable">F</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">regular_splittingFieldType</span> (<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>) :=<br/> + <a class="idref" href="mathcomp.field.galois.html#SplittingFieldType"><span class="id" title="abbreviation">SplittingFieldType</span></a> <a class="idref" href="mathcomp.field.galois.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.galois.html#F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c2b6ed6fbc6f0b41c6ad09005b7580b6"><span class="id" title="notation">^</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#c2b6ed6fbc6f0b41c6ad09005b7580b6"><span class="id" title="notation">o</span></a> (<a class="idref" href="mathcomp.field.galois.html#regular_splittingAxiom"><span class="id" title="lemma">regular_splittingAxiom</span></a> <a class="idref" href="mathcomp.field.galois.html#F"><span class="id" title="variable">F</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="SplittingFieldTheory"><span class="id" title="section">SplittingFieldTheory</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variables</span> (<a name="SplittingFieldTheory.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="SplittingFieldTheory.L"><span class="id" title="variable">L</span></a> : <a class="idref" href="mathcomp.field.galois.html#splittingFieldType"><span class="id" title="abbreviation">splittingFieldType</span></a> <a class="idref" href="mathcomp.field.galois.html#F"><span class="id" title="variable">F</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">W</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingFieldTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>).<br/> +<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">K</span> <span class="id" title="var">M</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingFieldTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="splittingFieldP"><span class="id" title="lemma">splittingFieldP</span></a> : <a class="idref" href="mathcomp.field.galois.html#axiom"><span class="id" title="definition">SplittingField.axiom</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingFieldTheory.L"><span class="id" title="variable">L</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="splittingPoly"><span class="id" title="lemma">splittingPoly</span></a> : <br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">{</span></a><span class="id" title="var">p</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">poly</span></a> <a class="idref" href="mathcomp.field.galois.html#SplittingFieldTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> 1%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.field.galois.html#splittingFieldFor"><span class="id" title="definition">splittingFieldFor</span></a> 1 <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.field.galois.html#SplittingFieldTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="fieldOver_splitting"><span class="id" title="lemma">fieldOver_splitting</span></a> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.field.galois.html#axiom"><span class="id" title="definition">SplittingField.axiom</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#fieldOver_fieldExtType"><span class="id" title="definition">fieldOver_fieldExtType</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldOver_splittingFieldType</span> <span class="id" title="var">E</span> :=<br/> + <a class="idref" href="mathcomp.field.galois.html#SplittingFieldType"><span class="id" title="abbreviation">SplittingFieldType</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#subvs_of"><span class="id" title="inductive">subvs_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>) (<a class="idref" href="mathcomp.field.fieldext.html#fieldOver"><span class="id" title="definition">fieldOver</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>) (<a class="idref" href="mathcomp.field.galois.html#fieldOver_splitting"><span class="id" title="lemma">fieldOver_splitting</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="enum_AEnd"><span class="id" title="lemma">enum_AEnd</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">{</span></a><span class="id" title="var">kAutL</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#SplittingFieldTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">|</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">f</span>, <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#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.field.galois.html#kAutL"><span class="id" title="variable">kAutL</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="splitting_field_normal"><span class="id" title="lemma">splitting_field_normal</span></a> <span class="id" title="var">K</span> <span class="id" title="var">x</span> :<br/> + <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">r</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.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><span class="id" title="var">y</span> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.galois.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.galois.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHom_to_AEnd"><span class="id" title="lemma">kHom_to_AEnd</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">{</span></a><span class="id" title="var">g</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#SplittingFieldTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">|</span></a> <a class="idref" href="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.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> <a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#SplittingFieldTheory"><span class="id" title="section">SplittingFieldTheory</span></a>.<br/> + +<br/> +</div> + +<div class="doc"> + Hide the finGroup structure on 'AEnd(L) in a module so that we can control + when it is exported. Most people will want to use the finGroup structure + on 'Gal(E / K) and will not need this module. +</div> +<div class="code"> +<span class="id" title="keyword">Module</span> <span class="id" title="keyword">Import</span> <a name="AEnd_FinGroup"><span class="id" title="module">AEnd_FinGroup</span></a>.<br/> +<span class="id" title="keyword">Section</span> <a name="AEnd_FinGroup.AEnd_FinGroup"><span class="id" title="section">AEnd_FinGroup</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variables</span> (<a name="AEnd_FinGroup.AEnd_FinGroup.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="AEnd_FinGroup.AEnd_FinGroup.L"><span class="id" title="variable">L</span></a> : <a class="idref" href="mathcomp.field.galois.html#SplittingField.Exports.splittingFieldType"><span class="id" title="abbreviation">splittingFieldType</span></a> <a class="idref" href="mathcomp.field.galois.html#F"><span class="id" title="variable">F</span></a>).<br/> +<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">W</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_FinGroup.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>) (<span class="id" title="var">K</span> <span class="id" title="var">M</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_FinGroup.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="AEnd_FinGroup.inAEnd"><span class="id" title="definition">inAEnd</span></a> <span class="id" title="var">f</span> := <a class="idref" href="mathcomp.ssreflect.fintype.html#SeqSub"><span class="id" title="constructor">SeqSub</span></a> (<a class="idref" href="mathcomp.ssreflect.eqtype.html#svalP"><span class="id" title="lemma">svalP</span></a> (<a class="idref" href="mathcomp.field.galois.html#enum_AEnd"><span class="id" title="lemma">enum_AEnd</span></a> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_FinGroup.L"><span class="id" title="variable">L</span></a>) <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>).<br/> +<span class="id" title="keyword">Fact</span> <a name="AEnd_FinGroup.inAEndK"><span class="id" title="lemma">inAEndK</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.field.galois.html#AEnd_FinGroup.inAEnd"><span class="id" title="definition">inAEnd</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a>. <br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="AEnd_FinGroup.AEnd_countMixin"><span class="id" title="definition">AEnd_countMixin</span></a> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.choice.html#CanCountMixin"><span class="id" title="definition">CanCountMixin</span></a> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.inAEndK"><span class="id" title="lemma">inAEndK</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">AEnd_countType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Exports.CountType"><span class="id" title="abbreviation">CountType</span></a> <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_FinGroup.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_countMixin"><span class="id" title="definition">AEnd_countMixin</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">AEnd_subCountType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.choice.html#8a7192fa64a42310658fd5be07ae4fcc"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#8a7192fa64a42310658fd5be07ae4fcc"><span class="id" title="notation">subCountType</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#8a7192fa64a42310658fd5be07ae4fcc"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_FinGroup.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#8a7192fa64a42310658fd5be07ae4fcc"><span class="id" title="notation">]</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="AEnd_FinGroup.AEnd_finMixin"><span class="id" title="definition">AEnd_finMixin</span></a> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#CanFinMixin"><span class="id" title="definition">CanFinMixin</span></a> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.inAEndK"><span class="id" title="lemma">inAEndK</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">AEnd_finType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Exports.FinType"><span class="id" title="abbreviation">FinType</span></a> <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_FinGroup.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_finMixin"><span class="id" title="definition">AEnd_finMixin</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">AEnd_subFinType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#a701c7b60b4a16f07950761d8bf90924"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#a701c7b60b4a16f07950761d8bf90924"><span class="id" title="notation">subFinType</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#a701c7b60b4a16f07950761d8bf90924"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_FinGroup.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#a701c7b60b4a16f07950761d8bf90924"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +</div> + +<div class="doc"> + the group operation is the categorical composition operation +</div> +<div class="code"> +<span class="id" title="keyword">Definition</span> <a name="AEnd_FinGroup.comp_AEnd"><span class="id" title="definition">comp_AEnd</span></a> (<span class="id" title="var">f</span> <span class="id" title="var">g</span> : <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_FinGroup.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a>) : <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_FinGroup.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a> := (<a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.field.falgebra.html#638d4df1a3fae13d71a7544ed620f3a0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.field.falgebra.html#638d4df1a3fae13d71a7544ed620f3a0"><span class="id" title="notation">o</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>)%<span class="id" title="var">AF</span>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="AEnd_FinGroup.comp_AEndA"><span class="id" title="lemma">comp_AEndA</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#associative"><span class="id" title="definition">associative</span></a> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.comp_AEnd"><span class="id" title="definition">comp_AEnd</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="AEnd_FinGroup.comp_AEnd1l"><span class="id" title="lemma">comp_AEnd1l</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_id"><span class="id" title="definition">left_id</span></a> <a class="idref" href="mathcomp.field.falgebra.html#fb319f197edf8ec3c96628ce0620cdf2"><span class="id" title="notation">\1</span></a>%<span class="id" title="var">AF</span> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.comp_AEnd"><span class="id" title="definition">comp_AEnd</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="AEnd_FinGroup.comp_AEndK"><span class="id" title="lemma">comp_AEndK</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_inverse"><span class="id" title="definition">left_inverse</span></a> <a class="idref" href="mathcomp.field.falgebra.html#fb319f197edf8ec3c96628ce0620cdf2"><span class="id" title="notation">\1</span></a>%<span class="id" title="var">AF</span> (@<a class="idref" href="mathcomp.field.galois.html#inv_ahom"><span class="id" title="definition">inv_ahom</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_FinGroup.L"><span class="id" title="variable">L</span></a>) <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.comp_AEnd"><span class="id" title="definition">comp_AEnd</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="AEnd_FinGroup.AEnd_baseFinGroupMixin"><span class="id" title="definition">AEnd_baseFinGroupMixin</span></a> :=<br/> + <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Mixin"><span class="id" title="definition">FinGroup.Mixin</span></a> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.comp_AEndA"><span class="id" title="lemma">comp_AEndA</span></a> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.comp_AEnd1l"><span class="id" title="lemma">comp_AEnd1l</span></a> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.comp_AEndK"><span class="id" title="lemma">comp_AEndK</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">AEnd_baseFinGroupType</span> :=<br/> + <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.BaseFinGroupType"><span class="id" title="abbreviation">BaseFinGroupType</span></a> <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_FinGroup.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_baseFinGroupMixin"><span class="id" title="definition">AEnd_baseFinGroupMixin</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">AEnd_finGroupType</span> := <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.FinGroupType"><span class="id" title="abbreviation">FinGroupType</span></a> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.comp_AEndK"><span class="id" title="lemma">comp_AEndK</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="AEnd_FinGroup.kAEnd"><span class="id" title="definition">kAEnd</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> := <a class="idref" href="mathcomp.ssreflect.finset.html#d086f256e0c3de938a1d3ad3965b5d4b"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#d086f256e0c3de938a1d3ad3965b5d4b"><span class="id" title="notation">set</span></a> <span class="id" title="var">f</span> <a class="idref" href="mathcomp.ssreflect.finset.html#d086f256e0c3de938a1d3ad3965b5d4b"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_FinGroup.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#d086f256e0c3de938a1d3ad3965b5d4b"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.galois.html#kAut"><span class="id" title="definition">kAut</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#d086f256e0c3de938a1d3ad3965b5d4b"><span class="id" title="notation">]</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="AEnd_FinGroup.kAEndf"><span class="id" title="definition">kAEndf</span></a> <span class="id" title="var">U</span> := <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.kAEnd"><span class="id" title="definition">kAEnd</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_FinGroup.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="AEnd_FinGroup.kAEnd_group_set"><span class="id" title="lemma">kAEnd_group_set</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#group_set"><span class="id" title="definition">group_set</span></a> (<a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.kAEnd"><span class="id" title="definition">kAEnd</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">kAEnd_group</span> <span class="id" title="var">K</span> <span class="id" title="var">E</span> := <a class="idref" href="mathcomp.fingroup.fingroup.html#group"><span class="id" title="definition">group</span></a> (<a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.kAEnd_group_set"><span class="id" title="lemma">kAEnd_group_set</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">kAEndf_group</span> <span class="id" title="var">K</span> := <a class="idref" href="mathcomp.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.kAEndf"><span class="id" title="definition">kAEndf</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="AEnd_FinGroup.kAEnd_norm"><span class="id" title="lemma">kAEnd_norm</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.kAEnd"><span class="id" title="definition">kAEnd</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.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.field.galois.html#AEnd_FinGroup.kAEndf"><span class="id" title="definition">kAEndf</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#3cae19671031307d430e5b14ccbd1058"><span class="id" title="notation">)</span></a>%<span class="id" title="var">g</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="AEnd_FinGroup.mem_kAut_coset"><span class="id" title="lemma">mem_kAut_coset</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> (<span class="id" title="var">g</span> : <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_FinGroup.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a>) :<br/> + <a class="idref" href="mathcomp.field.galois.html#kAut"><span class="id" title="definition">kAut</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.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#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.quotient.html#coset"><span class="id" title="definition">coset</span></a> (<a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.kAEndf"><span class="id" title="definition">kAEndf</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>) <a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="AEnd_FinGroup.aut_mem_eqP"><span class="id" title="lemma">aut_mem_eqP</span></a> <span class="id" title="var">E</span> (<span class="id" title="var">x</span> <span class="id" title="var">y</span> : <a class="idref" href="mathcomp.fingroup.quotient.html#coset_of"><span class="id" title="record">coset_of</span></a> (<a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.kAEndf"><span class="id" title="definition">kAEndf</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)) <span class="id" title="var">f</span> <span class="id" title="var">g</span> : <br/> + <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#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.field.galois.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.field.galois.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#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.field.galois.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a> (<a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.galois.html#y"><span class="id" title="variable">y</span></a>).<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup.AEnd_FinGroup"><span class="id" title="section">AEnd_FinGroup</span></a>.<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#AEnd_FinGroup"><span class="id" title="module">AEnd_FinGroup</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="GaloisTheory"><span class="id" title="section">GaloisTheory</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variables</span> (<a name="GaloisTheory.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.fieldType"><span class="id" title="abbreviation">fieldType</span></a>) (<a name="GaloisTheory.L"><span class="id" title="variable">L</span></a> : <a class="idref" href="mathcomp.field.galois.html#splittingFieldType"><span class="id" title="abbreviation">splittingFieldType</span></a> <a class="idref" href="mathcomp.field.galois.html#F"><span class="id" title="variable">F</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">W</span> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>).<br/> +<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">K</span> <span class="id" title="var">M</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>).<br/> + +<br/> +</div> + +<div class="doc"> + We take Galois automorphisms for a subfield E to be automorphisms of the + full field {:L} that operate in E taken modulo those that fix E pointwise. + The type of Galois automorphisms of E is then the subtype of elements of + the quotient kAEnd 1 E / kAEndf E, which we encapsulate in a specific + wrapper to ensure stability of the gal_repr coercion insertion. +</div> +<div class="code"> +<span class="id" title="keyword">Section</span> <a name="GaloisTheory.gal_of_Definition"><span class="id" title="section">gal_of_Definition</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> <a name="GaloisTheory.gal_of_Definition.V"><span class="id" title="variable">V</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +</div> + +<div class="doc"> + The <tt>_</tt>, which becomes redundant when V is a {subfield L}, ensures that + the argument of [subg _ ] is syntactically a group. +</div> +<div class="code"> +<span class="id" title="keyword">Inductive</span> <a name="gal_of"><span class="id" title="inductive">gal_of</span></a> := <a name="Gal"><span class="id" title="constructor">Gal</span></a> <span class="id" title="keyword">of</span> <a class="idref" href="mathcomp.fingroup.fingroup.html#201e4acf667e39ca76e3abd16ac27375"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#201e4acf667e39ca76e3abd16ac27375"><span class="id" title="notation">subg</span></a> <a class="idref" href="mathcomp.field.galois.html#kAEnd_group"><span class="id" title="definition">kAEnd_group</span></a> 1 <a class="idref" href="mathcomp.field.falgebra.html#a5d136b64fbd8856d9b682844c957cd8"><span class="id" title="notation"><<</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.gal_of_Definition.V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.field.falgebra.html#a5d136b64fbd8856d9b682844c957cd8"><span class="id" title="notation">>></span></a> <a class="idref" href="mathcomp.fingroup.quotient.html#8801253978f4673894d0abd8a04faa8d"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#kAEndf"><span class="id" title="definition">kAEndf</span></a> (<a class="idref" href="mathcomp.field.falgebra.html#agenv"><span class="id" title="definition">agenv</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.gal_of_Definition.V"><span class="id" title="variable">V</span></a>)<a class="idref" href="mathcomp.fingroup.fingroup.html#201e4acf667e39ca76e3abd16ac27375"><span class="id" title="notation">]</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="gal"><span class="id" title="definition">gal</span></a> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a>) := <a class="idref" href="mathcomp.field.galois.html#Gal"><span class="id" title="constructor">Gal</span></a> (<a class="idref" href="mathcomp.fingroup.fingroup.html#subg"><span class="id" title="definition">subg</span></a> <span class="id" title="var">_</span> (<a class="idref" href="mathcomp.fingroup.quotient.html#coset"><span class="id" title="definition">coset</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>)).<br/> +<span class="id" title="keyword">Definition</span> <a name="gal_sgval"><span class="id" title="definition">gal_sgval</span></a> <span class="id" title="var">x</span> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.field.galois.html#Gal"><span class="id" title="constructor">Gal</span></a> <span class="id" title="var">u</span> := <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">u</span>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="gal_sgvalK"><span class="id" title="lemma">gal_sgvalK</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.field.galois.html#gal_sgval"><span class="id" title="definition">gal_sgval</span></a> <a class="idref" href="mathcomp.field.galois.html#Gal"><span class="id" title="constructor">Gal</span></a>. <br/> +<span class="id" title="keyword">Let</span> <a name="GaloisTheory.gal_of_Definition.gal_sgval_inj"><span class="id" title="variable">gal_sgval_inj</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#can_inj"><span class="id" title="lemma">can_inj</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_sgvalK"><span class="id" title="lemma">gal_sgvalK</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="gal_eqMixin"><span class="id" title="definition">gal_eqMixin</span></a> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#CanEqMixin"><span class="id" title="definition">CanEqMixin</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_sgvalK"><span class="id" title="lemma">gal_sgvalK</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">gal_eqType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Exports.EqType"><span class="id" title="abbreviation">EqType</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_eqMixin"><span class="id" title="definition">gal_eqMixin</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="gal_choiceMixin"><span class="id" title="definition">gal_choiceMixin</span></a> := <a class="idref" href="mathcomp.ssreflect.choice.html#CanChoiceMixin"><span class="id" title="definition">CanChoiceMixin</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_sgvalK"><span class="id" title="lemma">gal_sgvalK</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">gal_choiceType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Exports.ChoiceType"><span class="id" title="abbreviation">ChoiceType</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_choiceMixin"><span class="id" title="definition">gal_choiceMixin</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="gal_countMixin"><span class="id" title="definition">gal_countMixin</span></a> := <a class="idref" href="mathcomp.ssreflect.choice.html#CanCountMixin"><span class="id" title="definition">CanCountMixin</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_sgvalK"><span class="id" title="lemma">gal_sgvalK</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">gal_countType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Exports.CountType"><span class="id" title="abbreviation">CountType</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_countMixin"><span class="id" title="definition">gal_countMixin</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="gal_finMixin"><span class="id" title="definition">gal_finMixin</span></a> := <a class="idref" href="mathcomp.ssreflect.fintype.html#CanFinMixin"><span class="id" title="definition">CanFinMixin</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_sgvalK"><span class="id" title="lemma">gal_sgvalK</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">gal_finType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Exports.FinType"><span class="id" title="abbreviation">FinType</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_finMixin"><span class="id" title="definition">gal_finMixin</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="gal_one"><span class="id" title="definition">gal_one</span></a> := <a class="idref" href="mathcomp.field.galois.html#Gal"><span class="id" title="constructor">Gal</span></a> 1%<span class="id" title="var">g</span>.<br/> +<span class="id" title="keyword">Definition</span> <a name="gal_inv"><span class="id" title="definition">gal_inv</span></a> <span class="id" title="var">x</span> := <a class="idref" href="mathcomp.field.galois.html#Gal"><span class="id" title="constructor">Gal</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#a605acbeae7597f74f5a9b816ed8a717"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#gal_sgval"><span class="id" title="definition">gal_sgval</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#a605acbeae7597f74f5a9b816ed8a717"><span class="id" title="notation">)^-1</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="gal_mul"><span class="id" title="definition">gal_mul</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> := <a class="idref" href="mathcomp.field.galois.html#Gal"><span class="id" title="constructor">Gal</span></a> (<a class="idref" href="mathcomp.field.galois.html#gal_sgval"><span class="id" title="definition">gal_sgval</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#gal_sgval"><span class="id" title="definition">gal_sgval</span></a> <a class="idref" href="mathcomp.field.galois.html#y"><span class="id" title="variable">y</span></a>).<br/> +<span class="id" title="keyword">Fact</span> <a name="gal_oneP"><span class="id" title="lemma">gal_oneP</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_id"><span class="id" title="definition">left_id</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_one"><span class="id" title="definition">gal_one</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_mul"><span class="id" title="definition">gal_mul</span></a>.<br/> + <span class="id" title="keyword">Fact</span> <a name="gal_invP"><span class="id" title="lemma">gal_invP</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_inverse"><span class="id" title="definition">left_inverse</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_one"><span class="id" title="definition">gal_one</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_inv"><span class="id" title="definition">gal_inv</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_mul"><span class="id" title="definition">gal_mul</span></a>.<br/> + <span class="id" title="keyword">Fact</span> <a name="gal_mulP"><span class="id" title="lemma">gal_mulP</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#associative"><span class="id" title="definition">associative</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_mul"><span class="id" title="definition">gal_mul</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="gal_finGroupMixin"><span class="id" title="definition">gal_finGroupMixin</span></a> :=<br/> + <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Mixin"><span class="id" title="definition">FinGroup.Mixin</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_mulP"><span class="id" title="lemma">gal_mulP</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_oneP"><span class="id" title="lemma">gal_oneP</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_invP"><span class="id" title="lemma">gal_invP</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">gal_finBaseGroupType</span> :=<br/> + <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.BaseFinGroupType"><span class="id" title="abbreviation">BaseFinGroupType</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_finGroupMixin"><span class="id" title="definition">gal_finGroupMixin</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">gal_finGroupType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.FinGroupType"><span class="id" title="abbreviation">FinGroupType</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_invP"><span class="id" title="lemma">gal_invP</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Coercion</span> <span class="id" title="var">gal_repr</span> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a> := <a class="idref" href="mathcomp.fingroup.fingroup.html#repr"><span class="id" title="definition">repr</span></a> (<a class="idref" href="mathcomp.fingroup.fingroup.html#sgval"><span class="id" title="definition">sgval</span></a> (<a class="idref" href="mathcomp.field.galois.html#gal_sgval"><span class="id" title="definition">gal_sgval</span></a> <a class="idref" href="mathcomp.field.galois.html#u"><span class="id" title="variable">u</span></a>)).<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="gal_is_morphism"><span class="id" title="lemma">gal_is_morphism</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.field.galois.html#kAEnd"><span class="id" title="definition">kAEnd</span></a> 1 (<a class="idref" href="mathcomp.field.falgebra.html#agenv"><span class="id" title="definition">agenv</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.gal_of_Definition.V"><span class="id" title="variable">V</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#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.field.galois.html#gal"><span class="id" title="definition">gal</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.field.galois.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.field.galois.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>%<span class="id" title="var">g</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">gal_morphism</span> := <a class="idref" href="mathcomp.fingroup.morphism.html#Morphism"><span class="id" title="constructor">Morphism</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_is_morphism"><span class="id" title="lemma">gal_is_morphism</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gal_reprK"><span class="id" title="lemma">gal_reprK</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.field.galois.html#gal_repr"><span class="id" title="definition">gal_repr</span></a> <a class="idref" href="mathcomp.field.galois.html#gal"><span class="id" title="definition">gal</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gal_repr_inj"><span class="id" title="lemma">gal_repr_inj</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#injective"><span class="id" title="definition">injective</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_repr"><span class="id" title="definition">gal_repr</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gal_AEnd"><span class="id" title="lemma">gal_AEnd</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.galois.html#gal_repr"><span class="id" title="definition">gal_repr</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#kAEnd"><span class="id" title="definition">kAEnd</span></a> 1 (<a class="idref" href="mathcomp.field.falgebra.html#agenv"><span class="id" title="definition">agenv</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.gal_of_Definition.V"><span class="id" title="variable">V</span></a>).<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.gal_of_Definition"><span class="id" title="section">gal_of_Definition</span></a>.<br/> + +<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gal_eqP"><span class="id" title="lemma">gal_eqP</span></a> <span class="id" title="var">E</span> {<span class="id" title="var">x</span> <span class="id" title="var">y</span> : <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>} : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.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.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.field.galois.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a> (<a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.galois.html#y"><span class="id" title="variable">y</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galK"><span class="id" title="lemma">galK</span></a> <span class="id" title="var">E</span> (<span class="id" title="var">f</span> : <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a>) : (<a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="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.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.html#gal"><span class="id" title="definition">gal</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eq_galP"><span class="id" title="lemma">eq_galP</span></a> <span class="id" title="var">E</span> (<span class="id" title="var">f</span> <span class="id" title="var">g</span> : <a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">AEnd</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.falgebra.html#9d2c89a88ea86f63ea4cf60f1b8ceb74"><span class="id" title="notation">)</span></a>) :<br/> + (<a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a> (<a class="idref" href="mathcomp.field.galois.html#gal"><span class="id" title="definition">gal</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.galois.html#gal"><span class="id" title="definition">gal</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#g"><span class="id" title="variable">g</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="limg_gal"><span class="id" title="lemma">limg_gal</span></a> <span class="id" title="var">E</span> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>) : (<a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="memv_gal"><span class="id" title="lemma">memv_gal</span></a> <span class="id" title="var">E</span> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>) <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.field.galois.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.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#E"><span class="id" title="variable">E</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gal_id"><span class="id" title="lemma">gal_id</span></a> <span class="id" title="var">E</span> <span class="id" title="var">a</span> : (1 <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.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">g</span> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#a"><span class="id" title="variable">a</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galM"><span class="id" title="lemma">galM</span></a> <span class="id" title="var">E</span> (<span class="id" title="var">x</span> <span class="id" title="var">y</span> : <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>) <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.field.galois.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.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.field.galois.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.field.galois.html#y"><span class="id" title="variable">y</span></a>)%<span class="id" title="var">g</span> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#y"><span class="id" title="variable">y</span></a> (<a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galV"><span class="id" title="lemma">galV</span></a> <span class="id" title="var">E</span> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#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.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> (<a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#a605acbeae7597f74f5a9b816ed8a717"><span class="id" title="notation">^-1</span></a>)%<span class="id" title="var">g</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.vector.html#517f88b2f002b4e1dbd5bb3edaded374"><span class="id" title="notation">^-1</span></a>%<span class="id" title="var">VF</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +</div> + +<div class="doc"> + Standard mathematical notation for 'Gal(E / K) puts the larger field first. +</div> +<div class="code"> +<span class="id" title="keyword">Definition</span> <a name="galoisG"><span class="id" title="definition">galoisG</span></a> <span class="id" title="var">V</span> <span class="id" title="var">U</span> := <a class="idref" href="mathcomp.field.galois.html#gal"><span class="id" title="definition">gal</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</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#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation"><<</span></a><a class="idref" href="mathcomp.field.galois.html#kAEnd"><span class="id" title="definition">kAEnd</span></a> (<a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&:</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a>) <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">>></span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">galoisG_group</span> <span class="id" title="var">E</span> <span class="id" title="var">U</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#galoisG"><span class="id" title="definition">galoisG</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ccb763a84253e971fd106aeeb9cd3cb0"><span class="id" title="notation">)]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="GaloisTheory.Automorphism"><span class="id" title="section">Automorphism</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gal_cap"><span class="id" title="lemma">gal_cap</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> : <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&:</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gal_kAut"><span class="id" title="lemma">gal_kAut</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">x</span> : (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#kAut"><span class="id" title="definition">kAut</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gal_kHom"><span class="id" title="lemma">gal_kHom</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">x</span> : (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kAut_to_gal"><span class="id" title="lemma">kAut_to_gal</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> :<br/> + <a class="idref" href="mathcomp.field.galois.html#kAut"><span class="id" title="definition">kAut</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">{</span></a><span class="id" title="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">&</span></a> <a class="idref" href="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.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="fixed_gal"><span class="id" title="lemma">fixed_gal</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">x</span> <span class="id" title="var">a</span> :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.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.field.galois.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.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#a"><span class="id" title="variable">a</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="fixedPoly_gal"><span class="id" title="lemma">fixedPoly_gal</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">x</span> <span class="id" title="var">p</span> :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.galois.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.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.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> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="root_minPoly_gal"><span class="id" title="lemma">root_minPoly_gal</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">x</span> <span class="id" title="var">a</span> :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.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.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a>) (<a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a>).<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.Automorphism"><span class="id" title="section">Automorphism</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gal_adjoin_eq"><span class="id" title="lemma">gal_adjoin_eq</span></a> <span class="id" title="var">K</span> <span class="id" title="var">a</span> <span class="id" title="var">x</span> <span class="id" title="var">y</span> :<br/> + <a class="idref" href="mathcomp.field.galois.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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation"><<</span></a><a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">>></span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation"><<</span></a><a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">;</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.field.falgebra.html#8327f1e5c19a7e79cb67878854f30e5f"><span class="id" title="notation">>></span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.galois.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.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.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.galois.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>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galS"><span class="id" title="lemma">galS</span></a> <span class="id" title="var">K</span> <span class="id" title="var">M</span> <span class="id" title="var">E</span> : (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#M"><span class="id" title="variable">M</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#M"><span class="id" title="variable">M</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gal_conjg"><span class="id" title="lemma">gal_conjg</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#1deb3845cf16de446ae6619879e9d6db"><span class="id" title="notation">:^</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="fixedField"><span class="id" title="definition">fixedField</span></a> <span class="id" title="var">V</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.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>) :=<br/> + (<a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.algebra.vector.html#585f47de65e0d6c6ecedb971203eafab"><span class="id" title="notation">:&:</span></a> <a class="idref" href="mathcomp.algebra.vector.html#7c5030bc981658afca05e49c41e7b4ee"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#7c5030bc981658afca05e49c41e7b4ee"><span class="id" title="notation">bigcap_</span></a><a class="idref" href="mathcomp.algebra.vector.html#7c5030bc981658afca05e49c41e7b4ee"><span class="id" title="notation">(</span></a><span class="id" title="var">x</span> <a class="idref" href="mathcomp.algebra.vector.html#7c5030bc981658afca05e49c41e7b4ee"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.galois.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.algebra.vector.html#7c5030bc981658afca05e49c41e7b4ee"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.vector.html#fixedSpace"><span class="id" title="definition">fixedSpace</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a>)%<span class="id" title="var">VS</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="fixedFieldP"><span class="id" title="lemma">fixedFieldP</span></a> <span class="id" title="var">E</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.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</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> :<br/> + <a class="idref" href="mathcomp.field.galois.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.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<span class="id" title="keyword">∀</span> <span class="id" title="var">x</span>, <a class="idref" href="mathcomp.field.galois.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.field.galois.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.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#a"><span class="id" title="variable">a</span></a>) (<a class="idref" href="mathcomp.field.galois.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.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#A"><span class="id" title="variable">A</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="mem_fixedFieldP"><span class="id" title="lemma">mem_fixedFieldP</span></a> <span class="id" title="var">E</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.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</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> :<br/> + <a class="idref" href="mathcomp.field.galois.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.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.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.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">x</span>, <a class="idref" href="mathcomp.field.galois.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.field.galois.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.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="fixedField_is_aspace"><span class="id" title="lemma">fixedField_is_aspace</span></a> <span class="id" title="var">E</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.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>) : <a class="idref" href="mathcomp.field.falgebra.html#is_aspace"><span class="id" title="definition">is_aspace</span></a> (<a class="idref" href="mathcomp.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#A"><span class="id" title="variable">A</span></a>).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fixedField_aspace</span> <span class="id" title="var">E</span> <span class="id" title="var">A</span> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a> :=<br/> + <a class="idref" href="mathcomp.field.falgebra.html#ASpace"><span class="id" title="constructor">ASpace</span></a> (@<a class="idref" href="mathcomp.field.galois.html#fixedField_is_aspace"><span class="id" title="lemma">fixedField_is_aspace</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#A"><span class="id" title="variable">A</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="fixedField_bound"><span class="id" title="lemma">fixedField_bound</span></a> <span class="id" title="var">E</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.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>) : (<a class="idref" href="mathcomp.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="fixedFieldS"><span class="id" title="lemma">fixedFieldS</span></a> <span class="id" title="var">E</span> (<span class="id" title="var">A</span> <span class="id" title="var">B</span> : <a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">set</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>) :<br/> + <a class="idref" href="mathcomp.field.galois.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#A"><span class="id" title="variable">A</span></a>)%<span class="id" title="var">VS</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galois_connection_subv"><span class="id" title="lemma">galois_connection_subv</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> (<a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a>))%<span class="id" title="var">VS</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galois_connection_subset"><span class="id" title="lemma">galois_connection_subset</span></a> <span class="id" title="var">E</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.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>):<br/> + <a class="idref" href="mathcomp.field.galois.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galois_connection"><span class="id" title="lemma">galois_connection</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</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.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>):<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#A"><span class="id" title="variable">A</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#A"><span class="id" title="variable">A</span></a>)%<span class="id" title="var">VS</span>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="galTrace"><span class="id" title="definition">galTrace</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">a</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#0c791dbdc1655ae690f0a6c159a384c0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c791dbdc1655ae690f0a6c159a384c0"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c791dbdc1655ae690f0a6c159a384c0"><span class="id" title="notation">(</span></a><span class="id" title="var">x</span> <a class="idref" href="mathcomp.algebra.ssralg.html#0c791dbdc1655ae690f0a6c159a384c0"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c791dbdc1655ae690f0a6c159a384c0"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#0c791dbdc1655ae690f0a6c159a384c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c791dbdc1655ae690f0a6c159a384c0"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="galNorm"><span class="id" title="definition">galNorm</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> <span class="id" title="var">a</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#50f6ed3c9dd83e0dda7460830646e9b1"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#50f6ed3c9dd83e0dda7460830646e9b1"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#50f6ed3c9dd83e0dda7460830646e9b1"><span class="id" title="notation">(</span></a><span class="id" title="var">x</span> <a class="idref" href="mathcomp.algebra.ssralg.html#50f6ed3c9dd83e0dda7460830646e9b1"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#50f6ed3c9dd83e0dda7460830646e9b1"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#50f6ed3c9dd83e0dda7460830646e9b1"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#50f6ed3c9dd83e0dda7460830646e9b1"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="GaloisTheory.TraceAndNormMorphism"><span class="id" title="section">TraceAndNormMorphism</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variables</span> <a name="GaloisTheory.TraceAndNormMorphism.U"><span class="id" title="variable">U</span></a> <a name="GaloisTheory.TraceAndNormMorphism.V"><span class="id" title="variable">V</span></a> : <a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">vspace</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#ca0a177f6d6581a7f5199987cd7ee21c"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="galTrace_is_additive"><span class="id" title="lemma">galTrace_is_additive</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.additive"><span class="id" title="abbreviation">additive</span></a> (<a class="idref" href="mathcomp.field.galois.html#galTrace"><span class="id" title="definition">galTrace</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.V"><span class="id" title="variable">V</span></a>).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">galTrace_additive</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Additive.Exports.Additive"><span class="id" title="abbreviation">Additive</span></a> <a class="idref" href="mathcomp.field.galois.html#galTrace_is_additive"><span class="id" title="lemma">galTrace_is_additive</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galNorm1"><span class="id" title="lemma">galNorm1</span></a> : <a class="idref" href="mathcomp.field.galois.html#galNorm"><span class="id" title="definition">galNorm</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.V"><span class="id" title="variable">V</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.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galNormM"><span class="id" title="lemma">galNormM</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.field.galois.html#galNorm"><span class="id" title="definition">galNorm</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">:</span></a> <span class="id" title="var">a</span> <span class="id" title="var">b</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.field.galois.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.galois.html#b"><span class="id" title="variable">b</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>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galNormV"><span class="id" title="lemma">galNormV</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c3c88e2b30b681cd767a54649faf5973"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c3c88e2b30b681cd767a54649faf5973"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.field.galois.html#galNorm"><span class="id" title="definition">galNorm</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.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#c3c88e2b30b681cd767a54649faf5973"><span class="id" title="notation">:</span></a> <span class="id" title="var">a</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c3c88e2b30b681cd767a54649faf5973"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">^-1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c3c88e2b30b681cd767a54649faf5973"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galNormX"><span class="id" title="lemma">galNormX</span></a> <span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c3c88e2b30b681cd767a54649faf5973"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c3c88e2b30b681cd767a54649faf5973"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.field.galois.html#galNorm"><span class="id" title="definition">galNorm</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.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#c3c88e2b30b681cd767a54649faf5973"><span class="id" title="notation">:</span></a> <span class="id" title="var">a</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c3c88e2b30b681cd767a54649faf5973"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.field.galois.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c3c88e2b30b681cd767a54649faf5973"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galNorm_prod"><span class="id" title="lemma">galNorm_prod</span></a> (<span class="id" title="var">I</span> : <span class="id" title="keyword">Type</span>) (<span class="id" title="var">r</span> : <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> <a class="idref" href="mathcomp.field.galois.html#I"><span class="id" title="variable">I</span></a>) (<span class="id" title="var">P</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.field.galois.html#I"><span class="id" title="variable">I</span></a>) (<span class="id" title="var">B</span> : <a class="idref" href="mathcomp.field.galois.html#I"><span class="id" title="variable">I</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a>) :<br/> + <a class="idref" href="mathcomp.field.galois.html#galNorm"><span class="id" title="definition">galNorm</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.V"><span class="id" title="variable">V</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#358fca18835530a08faf9e0f246b584a"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#358fca18835530a08faf9e0f246b584a"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#358fca18835530a08faf9e0f246b584a"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#358fca18835530a08faf9e0f246b584a"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.galois.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#358fca18835530a08faf9e0f246b584a"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.galois.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.field.galois.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#358fca18835530a08faf9e0f246b584a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.galois.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.field.galois.html#i"><span class="id" title="variable">i</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.algebra.ssralg.html#358fca18835530a08faf9e0f246b584a"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#358fca18835530a08faf9e0f246b584a"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#358fca18835530a08faf9e0f246b584a"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#358fca18835530a08faf9e0f246b584a"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.galois.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#358fca18835530a08faf9e0f246b584a"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.galois.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.field.galois.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#358fca18835530a08faf9e0f246b584a"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.galois.html#galNorm"><span class="id" title="definition">galNorm</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.V"><span class="id" title="variable">V</span></a> (<a class="idref" href="mathcomp.field.galois.html#B"><span class="id" title="variable">B</span></a> <a class="idref" href="mathcomp.field.galois.html#i"><span class="id" title="variable">i</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galNorm0"><span class="id" title="lemma">galNorm0</span></a> : <a class="idref" href="mathcomp.field.galois.html#galNorm"><span class="id" title="definition">galNorm</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.V"><span class="id" title="variable">V</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galNorm_eq0"><span class="id" title="lemma">galNorm_eq0</span></a> <span class="id" title="var">a</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.field.galois.html#galNorm"><span class="id" title="definition">galNorm</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.galois.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> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.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> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormMorphism"><span class="id" title="section">TraceAndNormMorphism</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="GaloisTheory.TraceAndNormField"><span class="id" title="section">TraceAndNormField</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variables</span> <a name="GaloisTheory.TraceAndNormField.K"><span class="id" title="variable">K</span></a> <a name="GaloisTheory.TraceAndNormField.E"><span class="id" title="variable">E</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galTrace_fixedField"><span class="id" title="lemma">galTrace_fixedField</span></a> <span class="id" title="var">a</span> :<br/> + <a class="idref" href="mathcomp.field.galois.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.field.galois.html#GaloisTheory.TraceAndNormField.E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#galTrace"><span class="id" title="definition">galTrace</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galTrace_gal"><span class="id" title="lemma">galTrace_gal</span></a> <span class="id" title="var">a</span> <span class="id" title="var">x</span> :<br/> + <a class="idref" href="mathcomp.field.galois.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.field.galois.html#GaloisTheory.TraceAndNormField.E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#galTrace"><span class="id" title="definition">galTrace</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.E"><span class="id" title="variable">E</span></a> (<a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#galTrace"><span class="id" title="definition">galTrace</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galNorm_fixedField"><span class="id" title="lemma">galNorm_fixedField</span></a> <span class="id" title="var">a</span> :<br/> + <a class="idref" href="mathcomp.field.galois.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.field.galois.html#GaloisTheory.TraceAndNormField.E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#galNorm"><span class="id" title="definition">galNorm</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galNorm_gal"><span class="id" title="lemma">galNorm_gal</span></a> <span class="id" title="var">a</span> <span class="id" title="var">x</span> :<br/> + <a class="idref" href="mathcomp.field.galois.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.field.galois.html#GaloisTheory.TraceAndNormField.E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#galNorm"><span class="id" title="definition">galNorm</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.E"><span class="id" title="variable">E</span></a> (<a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#galNorm"><span class="id" title="definition">galNorm</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.TraceAndNormField"><span class="id" title="section">TraceAndNormField</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="normalField"><span class="id" title="definition">normalField</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> := <a class="idref" href="mathcomp.ssreflect.fintype.html#0a2353937835d965c09d6cd592199019"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#0a2353937835d965c09d6cd592199019"><span class="id" title="notation">∀</span></a> <span class="id" title="var">x</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#0a2353937835d965c09d6cd592199019"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.galois.html#kAEndf"><span class="id" title="definition">kAEndf</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#46e5a4123d46e6b126f7788a77176785"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.vector.html#b5958714d039bb581a8e5ca988944568"><span class="id" title="notation">@:</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#0a2353937835d965c09d6cd592199019"><span class="id" title="notation">]</span></a>%<span class="id" title="var">VS</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normalField_kAut"><span class="id" title="lemma">normalField_kAut</span></a> <span class="id" title="var">K</span> <span class="id" title="var">M</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#279d21686ddbb39e1c3b4eb5ad283d06"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.algebra.vector.html#279d21686ddbb39e1c3b4eb5ad283d06"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#normalField"><span class="id" title="definition">normalField</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#kAut"><span class="id" title="definition">kAut</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#kAut"><span class="id" title="definition">kAut</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normalFieldP"><span class="id" title="lemma">normalFieldP</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</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.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.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">a</span>, <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">r</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">,</span></a><br/> + <a class="idref" href="mathcomp.ssreflect.seq.html#all"><span class="id" title="definition">all</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#mem"><span class="id" title="definition">mem</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>) <a class="idref" href="mathcomp.field.galois.html#r"><span class="id" title="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><span class="id" title="var">b</span> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.galois.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.galois.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><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/> + (<a class="idref" href="mathcomp.field.galois.html#normalField"><span class="id" title="definition">normalField</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normalFieldf"><span class="id" title="lemma">normalFieldf</span></a> <span class="id" title="var">K</span> : <a class="idref" href="mathcomp.field.galois.html#normalField"><span class="id" title="definition">normalField</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">{:</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.vector.html#899a5fd19c4f3564d9757a9ac446b1dc"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normalFieldS"><span class="id" title="lemma">normalFieldS</span></a> <span class="id" title="var">K</span> <span class="id" title="var">M</span> <span class="id" title="var">E</span> : (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#M"><span class="id" title="variable">M</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#normalField"><span class="id" title="definition">normalField</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#normalField"><span class="id" title="definition">normalField</span></a> <a class="idref" href="mathcomp.field.galois.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="splitting_normalField"><span class="id" title="lemma">splitting_normalField</span></a> <span class="id" title="var">E</span> <span class="id" title="var">K</span> :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">p</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.galois.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#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.field.galois.html#splittingFieldFor"><span class="id" title="definition">splittingFieldFor</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)<br/> + (<a class="idref" href="mathcomp.field.galois.html#normalField"><span class="id" title="definition">normalField</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="kHom_to_gal"><span class="id" title="lemma">kHom_to_gal</span></a> <span class="id" title="var">K</span> <span class="id" title="var">M</span> <span class="id" title="var">E</span> <span class="id" title="var">f</span> :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#279d21686ddbb39e1c3b4eb5ad283d06"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.algebra.vector.html#279d21686ddbb39e1c3b4eb5ad283d06"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#normalField"><span class="id" title="definition">normalField</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#kHom"><span class="id" title="definition">kHom</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.field.galois.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><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">{</span></a><span class="id" title="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">&</span></a> <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.field.galois.html#M"><span class="id" title="variable">M</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.html#f"><span class="id" title="variable">f</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normalField_root_minPoly"><span class="id" title="lemma">normalField_root_minPoly</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">a</span> <span class="id" title="var">b</span> :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#normalField"><span class="id" title="definition">normalField</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> (<a class="idref" href="mathcomp.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a>) <a class="idref" href="mathcomp.field.galois.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">x</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#b"><span class="id" title="variable">b</span></a>.<br/> + +<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normalField_factors"><span class="id" title="lemma">normalField_factors</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">a</span>, <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">exists2</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#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#seq"><span class="id" title="abbreviation">seq</span></a> (<a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">,</span></a><br/> + <a class="idref" href="mathcomp.field.galois.html#r"><span class="id" title="variable">r</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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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#fe60c20831f772c0c3c288abf68cc42a"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><span class="id" title="var">x</span> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.galois.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><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/> + (<a class="idref" href="mathcomp.field.galois.html#normalField"><span class="id" title="definition">normalField</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="galois"><span class="id" title="definition">galois</span></a> <span class="id" title="var">U</span> <span class="id" title="var">V</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">[&&</span></a> (<a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a>)%<span class="id" title="var">VS</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.separable.html#separable"><span class="id" title="definition">separable</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.field.galois.html#normalField"><span class="id" title="definition">normalField</span></a> <a class="idref" href="mathcomp.field.galois.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="mathcomp.field.galois.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2e9317c5f71a1305fb695cdc49716482"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galoisS"><span class="id" title="lemma">galoisS</span></a> <span class="id" title="var">K</span> <span class="id" title="var">M</span> <span class="id" title="var">E</span> : (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#279d21686ddbb39e1c3b4eb5ad283d06"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.algebra.vector.html#279d21686ddbb39e1c3b4eb5ad283d06"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#galois"><span class="id" title="definition">galois</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#galois"><span class="id" title="definition">galois</span></a> <a class="idref" href="mathcomp.field.galois.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galois_dim"><span class="id" title="lemma">galois_dim</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> : <a class="idref" href="mathcomp.field.galois.html#galois"><span class="id" title="definition">galois</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">dim_K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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="galois_factors"><span class="id" title="lemma">galois_factors</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> :<br/> + (<a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#755d11a7d5629bce3486e7cbadc915e7"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">a</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> <span class="id" title="var">r</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> <span class="id" title="keyword">let</span> <span class="id" title="var">r_a</span> := <a class="idref" href="mathcomp.ssreflect.seq.html#4067c992e782519cfa852ee62a1537c6"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#4067c992e782519cfa852ee62a1537c6"><span class="id" title="notation">seq</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#4067c992e782519cfa852ee62a1537c6"><span class="id" title="notation">|</span></a> <span class="id" title="var">x</span> <a class="idref" href="mathcomp.ssreflect.seq.html#4067c992e782519cfa852ee62a1537c6"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#4067c992e782519cfa852ee62a1537c6"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.galois.html#r"><span class="id" title="variable">r</span></a><a class="idref" href="mathcomp.ssreflect.seq.html#4067c992e782519cfa852ee62a1537c6"><span class="id" title="notation">]</span></a> <span class="id" title="tactic">in</span><br/> + <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.field.galois.html#r"><span class="id" title="variable">r</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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.ssreflect.seq.html#uniq"><span class="id" title="definition">uniq</span></a> <a class="idref" href="mathcomp.field.galois.html#r_a"><span class="id" title="variable">r_a</span></a><br/> + <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.field.fieldext.html#minPoly"><span class="id" title="definition">minPoly</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><span class="id" title="var">b</span> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation"><-</span></a> <a class="idref" href="mathcomp.field.galois.html#r_a"><span class="id" title="variable">r_a</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.poly.html#ffd3fc7e3c529f4febe87040923e7332"><span class="id" title="notation">X</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.galois.html#b"><span class="id" title="variable">b</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.poly.html#5d46c3ff21505243f65fdae89313c246"><span class="id" title="notation">P</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#add995903469f3735748795c8f1b81bd"><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="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a><br/> + (<a class="idref" href="mathcomp.field.galois.html#galois"><span class="id" title="definition">galois</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="splitting_galoisField"><span class="id" title="lemma">splitting_galoisField</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</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">p</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#84eb6d2849dbf3581b1c0c05add5f2d8"><span class="id" title="notation">,</span></a> <a class="idref" href="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.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.poly.html#polyOver"><span class="id" title="definition">polyOver</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.separable.html#separable_poly"><span class="id" title="definition">separable_poly</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a><br/> + <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.field.galois.html#splittingFieldFor"><span class="id" title="definition">splittingFieldFor</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">]</span></a>) <br/> + (<a class="idref" href="mathcomp.field.galois.html#galois"><span class="id" title="definition">galois</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="galois_fixedField"><span class="id" title="lemma">galois_fixedField</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</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="mathcomp.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#K"><span class="id" title="variable">K</span></a>) (<a class="idref" href="mathcomp.field.galois.html#galois"><span class="id" title="definition">galois</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="mem_galTrace"><span class="id" title="lemma">mem_galTrace</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.field.galois.html#galois"><span class="id" title="definition">galois</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#galTrace"><span class="id" title="definition">galTrace</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#K"><span class="id" title="variable">K</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="mem_galNorm"><span class="id" title="lemma">mem_galNorm</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">a</span> : <a class="idref" href="mathcomp.field.galois.html#galois"><span class="id" title="definition">galois</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#galNorm"><span class="id" title="definition">galNorm</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#K"><span class="id" title="variable">K</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gal_independent_contra"><span class="id" title="lemma">gal_independent_contra</span></a> <span class="id" title="var">E</span> (<span class="id" title="var">P</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> (<a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)) (<span class="id" title="var">c_</span> : <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a>) <span class="id" title="var">x</span> :<br/> + <a class="idref" href="mathcomp.field.galois.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#c_"><span class="id" title="variable">c_</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a 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.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">a</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">(</span></a><span class="id" title="var">y</span> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.galois.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.field.galois.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.galois.html#c_"><span class="id" title="variable">c_</span></a> <a class="idref" href="mathcomp.field.galois.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.galois.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.galois.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gal_independent"><span class="id" title="lemma">gal_independent</span></a> <span class="id" title="var">E</span> (<span class="id" title="var">P</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> (<a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>)) (<span class="id" title="var">c_</span> : <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a>) :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">a</span>, <a class="idref" href="mathcomp.field.galois.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.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">(</span></a><span class="id" title="var">x</span> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.galois.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.galois.html#c_"><span class="id" title="variable">c_</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.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> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">x</span>, <a class="idref" href="mathcomp.field.galois.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#c_"><span class="id" title="variable">c_</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0<a 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/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Hilbert's_theorem_90"><span class="id" title="lemma">Hilbert's_theorem_90</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> <span class="id" title="var">x</span> <span class="id" title="var">a</span> :<br/> + <a class="idref" href="mathcomp.solvable.cyclic.html#generator"><span class="id" title="definition">generator</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.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.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.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#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">exists2</span></a> <span class="id" title="var">b</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.html#b"><span class="id" title="variable">b</span></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.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.field.galois.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#28b18e493f7cb0bd8447607bdc385ff8"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.field.galois.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.field.galois.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#4fa85b0aa898c2a7e18c3b076438c2e7"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.galois.html#b"><span class="id" title="variable">b</span></a>) (<a class="idref" href="mathcomp.field.galois.html#galNorm"><span class="id" title="definition">galNorm</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.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> 1).<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="GaloisTheory.Matrix"><span class="id" title="section">Matrix</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> (<a name="GaloisTheory.Matrix.E"><span class="id" title="variable">E</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>) (<a name="GaloisTheory.Matrix.A"><span class="id" title="variable">A</span></a> : <a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">set</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Let</span> <a name="GaloisTheory.Matrix.K"><span class="id" title="variable">K</span></a> := <a class="idref" href="mathcomp.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.Matrix.A"><span class="id" title="variable">A</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gal_matrix"><span class="id" title="lemma">gal_matrix</span></a> :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">{</span></a><span class="id" title="var">w</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.Matrix.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.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">.-</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#d8866adbd4a602b7b4cc275d73486ace"><span class="id" title="notation">tuple</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">|</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.field.galois.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.Matrix.E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#53295d8f18390300c5a24f66e0bcda98"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#ad6d23746eb1a3b62e52010d3945a1db"><span class="id" title="notation">notin</span></a> <a class="idref" href="mathcomp.field.galois.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><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#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">[/\</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#07a3499feb11e7b4191eb126d99e8210"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.matrix.html#07a3499feb11e7b4191eb126d99e8210"><span class="id" title="notation">matrix_</span></a><a class="idref" href="mathcomp.algebra.matrix.html#07a3499feb11e7b4191eb126d99e8210"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span><a class="idref" href="mathcomp.algebra.matrix.html#07a3499feb11e7b4191eb126d99e8210"><span class="id" title="notation">,</span></a> <span class="id" title="var">j</span> <a class="idref" href="mathcomp.algebra.matrix.html#07a3499feb11e7b4191eb126d99e8210"><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.field.galois.html#GaloisTheory.Matrix.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.algebra.matrix.html#07a3499feb11e7b4191eb126d99e8210"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#enum_val"><span class="id" title="definition">enum_val</span></a> <a class="idref" href="mathcomp.field.galois.html#i"><span class="id" title="variable">i</span></a> (<a class="idref" href="mathcomp.ssreflect.tuple.html#tnth"><span class="id" title="definition">tnth</span></a> <a class="idref" href="mathcomp.field.galois.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="mathcomp.field.galois.html#j"><span class="id" title="variable">j</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.matrix.html#unitmx"><span class="id" title="definition">unitmx</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.algebra.vector.html#directv"><span class="id" title="abbreviation">directv</span></a> (<a class="idref" href="mathcomp.algebra.vector.html#97d0054903e1c4921898847e53133998"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#97d0054903e1c4921898847e53133998"><span class="id" title="notation">sum_i</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.Matrix.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#tnth"><span class="id" title="definition">tnth</span></a> <a class="idref" href="mathcomp.field.galois.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="mathcomp.field.galois.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><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><br/> + <a class="idref" href="mathcomp.fingroup.fingroup.html#group_set"><span class="id" title="definition">group_set</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.Matrix.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.algebra.vector.html#97d0054903e1c4921898847e53133998"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.vector.html#97d0054903e1c4921898847e53133998"><span class="id" title="notation">sum_i</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.Matrix.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.falgebra.html#5b85b63f427d1a979ef02fefbf6c079c"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation"><[</span></a><a class="idref" href="mathcomp.ssreflect.tuple.html#tnth"><span class="id" title="definition">tnth</span></a> <a class="idref" href="mathcomp.field.galois.html#w"><span class="id" title="variable">w</span></a> <a class="idref" href="mathcomp.field.galois.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.vector.html#c7e74c229bedc2f20e80f4f2f96cee78"><span class="id" title="notation">]></span></a>)%<span class="id" title="var">VS</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.Matrix.E"><span class="id" title="variable">E</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.Matrix"><span class="id" title="section">Matrix</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dim_fixedField"><span class="id" title="lemma">dim_fixedField</span></a> <span class="id" title="var">E</span> (<span class="id" title="var">G</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</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#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.field.galois.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#f01714bb99e6c7abc6cfb2e43eff7f6e"><span class="id" title="notation">|</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">dim_</span></a><a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dim_fixed_galois"><span class="id" title="lemma">dim_fixed_galois</span></a> <span class="id" title="var">K</span> <span class="id" title="var">E</span> (<span class="id" title="var">G</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>) :<br/> + <a class="idref" href="mathcomp.field.galois.html#galois"><span class="id" title="definition">galois</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.galois.html#G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#826eae8d7598a787ea56f4249e6e210e"><span class="id" title="notation">subset</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">dim_K</span></a> <a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.field.falgebra.html#dae424ad7f044660820953901eac75ab"><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#f65ecb5148d1ef5a9c551827b20e9bfa"><span class="id" title="notation">#|</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#f65ecb5148d1ef5a9c551827b20e9bfa"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.galois.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#f65ecb5148d1ef5a9c551827b20e9bfa"><span class="id" title="notation">|</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gal_fixedField"><span class="id" title="lemma">gal_fixedField</span></a> <span class="id" title="var">E</span> (<span class="id" title="var">G</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">group</span></a> <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>): <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#G"><span class="id" title="variable">G</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#G"><span class="id" title="variable">G</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="gal_generated"><span class="id" title="lemma">gal_generated</span></a> <span class="id" title="var">E</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.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>) : <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation"><<</span></a><a class="idref" href="mathcomp.field.galois.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#d2263119ac2870c795428c0a326d9d52"><span class="id" title="notation">>></span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="fixedField_galois"><span class="id" title="lemma">fixedField_galois</span></a> <span class="id" title="var">E</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.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>): <a class="idref" href="mathcomp.field.galois.html#galois"><span class="id" title="definition">galois</span></a> (<a class="idref" href="mathcomp.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#A"><span class="id" title="variable">A</span></a>) <a class="idref" href="mathcomp.field.galois.html#E"><span class="id" title="variable">E</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="GaloisTheory.FundamentalTheoremOfGaloisTheory"><span class="id" title="section">FundamentalTheoremOfGaloisTheory</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variables</span> <a name="GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a name="GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>.<br/> +<span class="id" title="keyword">Hypothesis</span> <a name="GaloisTheory.FundamentalTheoremOfGaloisTheory.galKE"><span class="id" title="variable">galKE</span></a> : <a class="idref" href="mathcomp.field.galois.html#galois"><span class="id" title="definition">galois</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField"><span class="id" title="section">IntermediateField</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> <a name="GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a> : <a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">subfield</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.field.fieldext.html#da0a594fae595c8172b1a3e2dd69d19d"><span class="id" title="notation">}</span></a>.<br/> +<span class="id" title="keyword">Hypothesis</span> (<a name="GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.sKME"><span class="id" title="variable">sKME</span></a> : (<a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.algebra.vector.html#279d21686ddbb39e1c3b4eb5ad283d06"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.algebra.vector.html#279d21686ddbb39e1c3b4eb5ad283d06"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a>)%<span class="id" title="var">VS</span>) (<a name="GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.nKM"><span class="id" title="variable">nKM</span></a> : <a class="idref" href="mathcomp.field.galois.html#normalField"><span class="id" title="definition">normalField</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normalField_galois"><span class="id" title="lemma">normalField_galois</span></a> : <a class="idref" href="mathcomp.field.galois.html#galois"><span class="id" title="definition">galois</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="normalField_cast"><span class="id" title="definition">normalField_cast</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a>) : <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a> := <a class="idref" href="mathcomp.field.galois.html#gal"><span class="id" title="definition">gal</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normalField_cast_eq"><span class="id" title="lemma">normalField_cast_eq</span></a> <span class="id" title="var">x</span> :<br/> + <a class="idref" href="mathcomp.field.galois.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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#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.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.galois.html#normalField_cast"><span class="id" title="definition">normalField_cast</span></a> <a class="idref" href="mathcomp.field.galois.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.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.field.galois.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normalField_castM"><span class="id" title="lemma">normalField_castM</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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#normalField_cast"><span class="id" title="definition">normalField_cast</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.field.galois.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.field.galois.html#y"><span class="id" title="variable">y</span></a>)%<span class="id" title="var">g</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">normalField_cast_morphism</span> := <a class="idref" href="mathcomp.fingroup.morphism.html#Morphism"><span class="id" title="constructor">Morphism</span></a> <a class="idref" href="mathcomp.field.galois.html#normalField_castM"><span class="id" title="lemma">normalField_castM</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normalField_ker"><span class="id" title="lemma">normalField_ker</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.field.galois.html#normalField_cast"><span class="id" title="definition">normalField_cast</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normalField_normal"><span class="id" title="lemma">normalField_normal</span></a> : <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#c27c638e534bbb5b7de2d4b4aa0a3e82"><span class="id" title="notation"><|</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normalField_img"><span class="id" title="lemma">normalField_img</span></a> : <a class="idref" href="mathcomp.field.galois.html#normalField_cast"><span class="id" title="definition">normalField_cast</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normalField_isom"><span class="id" title="lemma">normalField_isom</span></a> :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">{</span></a><span class="id" title="var">f</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.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.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</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">>-></span></a> <a class="idref" href="mathcomp.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#c5b2825fcd994c4c5cc69df8802f5376"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">|</span></a><br/> + <a class="idref" href="mathcomp.fingroup.morphism.html#isom"><span class="id" title="definition">isom</span></a> (<a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a>) <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.galois.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.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">(</span></a><span class="id" title="keyword">∀</span> <span class="id" title="var">A</span>, <a class="idref" href="mathcomp.field.galois.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.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.galois.html#normalField_cast"><span class="id" title="definition">normalField_cast</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#48cff845c81518398138031392d44c93"><span class="id" title="notation">@*</span></a> <a class="idref" href="mathcomp.field.galois.html#A"><span class="id" title="variable">A</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">)</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#208bc995000a6307bdbc043c43919d97"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#208bc995000a6307bdbc043c43919d97"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#208bc995000a6307bdbc043c43919d97"><span class="id" title="notation">&</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#208bc995000a6307bdbc043c43919d97"><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.field.galois.html#f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.fingroup.quotient.html#coset"><span class="id" title="definition">coset</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.galois.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.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="mathcomp.field.galois.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#208bc995000a6307bdbc043c43919d97"><span class="id" title="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#602b9943a639fb973abed6e2c7854421"><span class="id" title="notation">}</span></a>%<span class="id" title="var">g</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normalField_isog"><span class="id" title="lemma">normalField_isog</span></a> : <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><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.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.fingroup.morphism.html#cec6c3028572f2d4d267ecf02dc64058"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.fingroup.morphism.html#cec6c3028572f2d4d267ecf02dc64058"><span class="id" title="notation">isog</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField.M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateField"><span class="id" title="section">IntermediateField</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateGroup"><span class="id" title="section">IntermediateGroup</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> <a name="GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateGroup.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.field.galois.html#gal_of"><span class="id" title="inductive">gal_of</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#ab072eb546972c7e5cdaf33b8a35ce6b"><span class="id" title="notation">}</span></a>.<br/> +<span class="id" title="keyword">Hypothesis</span> <a name="GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateGroup.nsGgalE"><span class="id" title="variable">nsGgalE</span></a> : <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateGroup.G"><span class="id" title="variable">G</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#c27c638e534bbb5b7de2d4b4aa0a3e82"><span class="id" title="notation"><|</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">Gal</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.E"><span class="id" title="variable">E</span></a> <a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a><a class="idref" href="mathcomp.field.galois.html#90b3c2a38aa2b5172e5cf7cf964e8989"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="normal_fixedField_galois"><span class="id" title="lemma">normal_fixedField_galois</span></a> : <a class="idref" href="mathcomp.field.galois.html#galois"><span class="id" title="definition">galois</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.K"><span class="id" title="variable">K</span></a> (<a class="idref" href="mathcomp.field.galois.html#fixedField"><span class="id" title="definition">fixedField</span></a> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateGroup.G"><span class="id" title="variable">G</span></a>).<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory.IntermediateGroup"><span class="id" title="section">IntermediateGroup</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory.FundamentalTheoremOfGaloisTheory"><span class="id" title="section">FundamentalTheoremOfGaloisTheory</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.galois.html#GaloisTheory"><span class="id" title="section">GaloisTheory</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Notation</span> <a name="7f39fd713ca3f00fbfda8b71eae7e2e1"><span class="id" title="notation">"</span></a>''Gal' ( V / U )" := (<a class="idref" href="mathcomp.field.galois.html#galoisG"><span class="id" title="definition">galoisG</span></a> <span class="id" title="var">V</span> <span class="id" title="var">U</span>) : <span class="id" title="var">group_scope</span>.<br/> +<span class="id" title="keyword">Notation</span> <a name="6d778c8ffcd31124fc7e0f74d7d470ab"><span class="id" title="notation">"</span></a>''Gal' ( V / U )" := (<a class="idref" href="mathcomp.field.galois.html#galoisG_group"><span class="id" title="definition">galoisG_group</span></a> <span class="id" title="var">V</span> <span class="id" title="var">U</span>) : <span class="id" title="var">Group_scope</span>.<br/> + +<br/> +</div> +</div> + +<div id="footer"> +<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a> +</div> + +</div> + +</body> +</html>
\ No newline at end of file |
