diff options
Diffstat (limited to 'docs/htmldoc/mathcomp.field.algC.html')
| -rw-r--r-- | docs/htmldoc/mathcomp.field.algC.html | 1055 |
1 files changed, 1055 insertions, 0 deletions
diff --git a/docs/htmldoc/mathcomp.field.algC.html b/docs/htmldoc/mathcomp.field.algC.html new file mode 100644 index 0000000..4449509 --- /dev/null +++ b/docs/htmldoc/mathcomp.field.algC.html @@ -0,0 +1,1055 @@ +<!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.algC</title> +</head> + +<body> + +<div id="page"> + +<div id="header"> +</div> + +<div id="main"> + +<h1 class="libtitle">Library mathcomp.field.algC</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 provides an axiomatic construction of the algebraic numbers. + The construction only assumes the existence of an algebraically closed + filed with an automorphism of order 2; this amounts to the purely + algebraic contents of the Fundamenta Theorem of Algebra. + algC == the closed, countable field of algebraic numbers. + algCeq, algCring, ..., algCnumField == structures for algC. + The ssrnum interfaces are implemented for algC as follows: + x <= y <=> (y - x) is a nonnegative real + x < y <=> (y - x) is a (strictly) positive real + `|z| == the complex norm of z, i.e., sqrtC (z * z^* ). + Creal == the subset of real numbers (:= Num.real for algC). + 'i == the imaginary number (:= sqrtC (-1)). + 'Re z == the real component of z. + 'Im z == the imaginary component of z. + z^* == the complex conjugate of z (:= conjC z). + sqrtC z == a nonnegative square root of z, i.e., 0 <= sqrt x if 0 <= x. + n.-root z == more generally, for n > 0, an nth root of z, chosen with a + minimal non-negative argument for n > 1 (i.e., with a + maximal real part subject to a nonnegative imaginary part). + Note that n.-root (-1) is a primitive 2nth root of unity, + an thus not equal to -1 for n odd > 1 (this will be shown in + file cyclotomic.v). + In addition, we provide: + Crat == the subset of rational numbers. + Cint == the subset of integers. + Cnat == the subset of natural integers. + getCrat z == some a : rat such that ratr a = z, provided z \in Crat. + floorC z == for z \in Creal, an m : int s.t. m%:~R <= z < (m + 1)%:~R. + truncC z == for z >= 0, an n : nat s.t. n%:R <= z < n.+1%:R, else 0%N. + minCpoly z == the minimal (monic) polynomial over Crat with root z. + algC_invaut nu == an inverse of nu : {rmorphism algC -> algC}. + (x %| y)%C <=> y is an integer (Cint) multiple of x; if x or y are + (x %| y)%Cx of type nat or int they are coerced to algC here. + The (x %| y)%Cx display form is a workaround for + design limitations of the Coq Notation facilities. + (x == y % [mod z])%C <=> x and y differ by an integer (Cint) multiple of z; + as above, arguments of type nat or int are cast to algC. + (x != y % [mod z])%C <=> x and y do not differ by an integer multiple of z. + Note that in file algnum we give an alternative definition of divisibility + based on algebraic integers, overloading the notation in the %A scope. +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Set Implicit Arguments</span>.<br/> + +<br/> +<span class="id" title="keyword">Import</span> <span class="id" title="var">GRing.Theory</span> <span class="id" title="var">Num.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/> +</div> + +<div class="doc"> + The Num mixin for an algebraically closed field with an automorphism of + order 2, making it into a field of complex numbers. +</div> +<div class="code"> +<span class="id" title="keyword">Lemma</span> <a name="ComplexNumMixin"><span class="id" title="lemma">ComplexNumMixin</span></a> (<span class="id" title="var">L</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ClosedField.Exports.closedFieldType"><span class="id" title="abbreviation">closedFieldType</span></a>) (<span class="id" title="var">conj</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.field.algC.html#L"><span class="id" title="variable">L</span></a> <a class="idref" href="http://coq.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.algC.html#L"><span class="id" title="variable">L</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">}</span></a>) :<br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#involutive"><span class="id" title="definition">involutive</span></a> <a class="idref" href="mathcomp.field.algC.html#conj"><span class="id" title="variable">conj</span></a> <a class="idref" href="http://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#611abc97cba304de784fa909dbdea1fa"><span class="id" title="notation">¬</span></a> <a class="idref" href="mathcomp.field.algC.html#conj"><span class="id" title="variable">conj</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.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#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">{</span></a><span class="id" title="var">numL</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">|</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.ssrnum.html#Num.NumDomain.Exports.NumDomainType"><span class="id" title="abbreviation">NumDomainType</span></a> <a class="idref" href="mathcomp.field.algC.html#L"><span class="id" title="variable">L</span></a> <a class="idref" href="mathcomp.field.algC.html#numL"><span class="id" title="variable">numL</span></a>, <a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> 2 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#conj"><span class="id" title="variable">conj</span></a> <a class="idref" href="mathcomp.field.algC.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.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Module</span> <a name="Algebraics"><span class="id" title="module">Algebraics</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Module</span> <span class="id" title="keyword">Type</span> <a name="Algebraics.Specification"><span class="id" title="module">Specification</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Parameter</span> <a name="Algebraics.Specification.type"><span class="id" title="axiom">type</span></a> : <span class="id" title="keyword">Type</span>.<br/> + +<br/> +<span class="id" title="keyword">Parameter</span> <a name="Algebraics.Specification.eqMixin"><span class="id" title="axiom">eqMixin</span></a> : <a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.class_of"><span class="id" title="abbreviation">Equality.class_of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Exports.EqType"><span class="id" title="abbreviation">EqType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.eqMixin"><span class="id" title="axiom">eqMixin</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Parameter</span> <a name="Algebraics.Specification.choiceMixin"><span class="id" title="axiom">choiceMixin</span></a> : <a class="idref" href="mathcomp.ssreflect.choice.html#Choice.mixin_of"><span class="id" title="record">Choice.mixin_of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span> := <a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Exports.ChoiceType"><span class="id" title="abbreviation">ChoiceType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.choiceMixin"><span class="id" title="axiom">choiceMixin</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Parameter</span> <a name="Algebraics.Specification.countMixin"><span class="id" title="axiom">countMixin</span></a> : <a class="idref" href="mathcomp.ssreflect.choice.html#Countable.mixin_of"><span class="id" title="record">Countable.mixin_of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countType</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.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.countMixin"><span class="id" title="axiom">countMixin</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Parameter</span> <a name="Algebraics.Specification.zmodMixin"><span class="id" title="axiom">zmodMixin</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.mixin_of"><span class="id" title="record">GRing.Zmodule.mixin_of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Exports.ZmodType"><span class="id" title="abbreviation">ZmodType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.zmodMixin"><span class="id" title="axiom">zmodMixin</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countZmodType</span> := <a class="idref" href="mathcomp.field.countalg.html#04d2f82770d2c7b3524ac143877824a7"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.countalg.html#04d2f82770d2c7b3524ac143877824a7"><span class="id" title="notation">countZmodType</span></a> <a class="idref" href="mathcomp.field.countalg.html#04d2f82770d2c7b3524ac143877824a7"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a><a class="idref" href="mathcomp.field.countalg.html#04d2f82770d2c7b3524ac143877824a7"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Parameter</span> <a name="Algebraics.Specification.ringMixin"><span class="id" title="axiom">ringMixin</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.mixin_of"><span class="id" title="record">GRing.Ring.mixin_of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ringType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.RingType"><span class="id" title="abbreviation">RingType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.ringMixin"><span class="id" title="axiom">ringMixin</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countRingType</span> := <a class="idref" href="mathcomp.field.countalg.html#b8f3d358caffeab4b18f72af97657654"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.countalg.html#b8f3d358caffeab4b18f72af97657654"><span class="id" title="notation">countRingType</span></a> <a class="idref" href="mathcomp.field.countalg.html#b8f3d358caffeab4b18f72af97657654"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a><a class="idref" href="mathcomp.field.countalg.html#b8f3d358caffeab4b18f72af97657654"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Parameter</span> <a name="Algebraics.Specification.unitRingMixin"><span class="id" title="axiom">unitRingMixin</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.mixin_of"><span class="id" title="record">GRing.UnitRing.mixin_of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.ringType"><span class="id" title="definition">ringType</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitRingType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Exports.UnitRingType"><span class="id" title="abbreviation">UnitRingType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.unitRingMixin"><span class="id" title="axiom">unitRingMixin</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Axiom</span> <a name="Algebraics.Specification.mulC"><span class="id" title="axiom">mulC</span></a> : @<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#commutative"><span class="id" title="definition">commutative</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d5d4e2467843f67554f1a8a22d125de9"><span class="id" title="notation">*%</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d5d4e2467843f67554f1a8a22d125de9"><span class="id" title="notation">R</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comRingType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Exports.ComRingType"><span class="id" title="abbreviation">ComRingType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.mulC"><span class="id" title="axiom">mulC</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comUnitRingType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">comUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Axiom</span> <a name="Algebraics.Specification.idomainAxiom"><span class="id" title="axiom">idomainAxiom</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.axiom"><span class="id" title="definition">GRing.IntegralDomain.axiom</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.ringType"><span class="id" title="definition">ringType</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">idomainType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Exports.IdomainType"><span class="id" title="abbreviation">IdomainType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.idomainAxiom"><span class="id" title="axiom">idomainAxiom</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Axiom</span> <a name="Algebraics.Specification.fieldMixin"><span class="id" title="axiom">fieldMixin</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.mixin_of"><span class="id" title="definition">GRing.Field.mixin_of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.unitRingType"><span class="id" title="definition">unitRingType</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.FieldType"><span class="id" title="abbreviation">FieldType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.fieldMixin"><span class="id" title="axiom">fieldMixin</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Parameter</span> <a name="Algebraics.Specification.decFieldMixin"><span class="id" title="axiom">decFieldMixin</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.DecidableField.mixin_of"><span class="id" title="record">GRing.DecidableField.mixin_of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.unitRingType"><span class="id" title="definition">unitRingType</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">decFieldType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.DecidableField.Exports.DecFieldType"><span class="id" title="abbreviation">DecFieldType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.decFieldMixin"><span class="id" title="axiom">decFieldMixin</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Axiom</span> <a name="Algebraics.Specification.closedFieldAxiom"><span class="id" title="axiom">closedFieldAxiom</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ClosedField.axiom"><span class="id" title="definition">GRing.ClosedField.axiom</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.ringType"><span class="id" title="definition">ringType</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">closedFieldType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ClosedField.Exports.ClosedFieldType"><span class="id" title="abbreviation">ClosedFieldType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.closedFieldAxiom"><span class="id" title="axiom">closedFieldAxiom</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Parameter</span> <a name="Algebraics.Specification.numMixin"><span class="id" title="axiom">numMixin</span></a> : <a class="idref" href="mathcomp.algebra.ssrnum.html#Num.mixin_of"><span class="id" title="record">Num.mixin_of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.ringType"><span class="id" title="definition">ringType</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">numDomainType</span> := <a class="idref" href="mathcomp.algebra.ssrnum.html#Num.NumDomain.Exports.NumDomainType"><span class="id" title="abbreviation">NumDomainType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.numMixin"><span class="id" title="axiom">numMixin</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">numFieldType</span> := <a class="idref" href="mathcomp.algebra.ssrnum.html#a7441f0a0e6a98d4d20f782d49891896"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#a7441f0a0e6a98d4d20f782d49891896"><span class="id" title="notation">numFieldType</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#a7441f0a0e6a98d4d20f782d49891896"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#a7441f0a0e6a98d4d20f782d49891896"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Parameter</span> <a name="Algebraics.Specification.conjMixin"><span class="id" title="axiom">conjMixin</span></a> : <a class="idref" href="mathcomp.algebra.ssrnum.html#Num.ClosedField.imaginary_mixin_of"><span class="id" title="record">Num.ClosedField.imaginary_mixin_of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.numDomainType"><span class="id" title="definition">numDomainType</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">numClosedFieldType</span> := <a class="idref" href="mathcomp.algebra.ssrnum.html#Num.ClosedField.Exports.NumClosedFieldType"><span class="id" title="abbreviation">NumClosedFieldType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.type"><span class="id" title="axiom">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.conjMixin"><span class="id" title="axiom">conjMixin</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Axiom</span> <a name="Algebraics.Specification.algebraic"><span class="id" title="axiom">algebraic</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#integralRange"><span class="id" title="definition">integralRange</span></a> (@<a class="idref" href="mathcomp.algebra.rat.html#ratr"><span class="id" title="definition">ratr</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification.unitRingType"><span class="id" title="definition">unitRingType</span></a>).<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification"><span class="id" title="module">Specification</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Module</span> <a name="Algebraics.Implementation"><span class="id" title="module">Implementation</span></a> : <a class="idref" href="mathcomp.field.algC.html#Algebraics.Specification"><span class="id" title="module">Specification</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.L"><span class="id" title="definition">L</span></a> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#tag"><span class="id" title="definition">tag</span></a> <a class="idref" href="mathcomp.field.algebraics_fundamentals.html#Fundamental_Theorem_of_Algebraics"><span class="id" title="lemma">Fundamental_Theorem_of_Algebraics</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.conjL"><span class="id" title="definition">conjL</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.L"><span class="id" title="definition">L</span></a> <a class="idref" href="http://coq.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.algC.html#Algebraics.Implementation.L"><span class="id" title="definition">L</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">}</span></a> :=<br/> + <a class="idref" href="mathcomp.ssreflect.eqtype.html#s2val"><span class="id" title="definition">s2val</span></a> (<a class="idref" href="mathcomp.ssreflect.eqtype.html#tagged"><span class="id" title="definition">tagged</span></a> <a class="idref" href="mathcomp.field.algebraics_fundamentals.html#Fundamental_Theorem_of_Algebraics"><span class="id" title="lemma">Fundamental_Theorem_of_Algebraics</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.conjL_K"><span class="id" title="lemma">conjL_K</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#involutive"><span class="id" title="definition">involutive</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.conjL"><span class="id" title="definition">conjL</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.conjL_nt"><span class="id" title="lemma">conjL_nt</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#611abc97cba304de784fa909dbdea1fa"><span class="id" title="notation">¬</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.conjL"><span class="id" title="definition">conjL</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.LnumMixin"><span class="id" title="definition">LnumMixin</span></a> := <a class="idref" href="mathcomp.field.algC.html#ComplexNumMixin"><span class="id" title="lemma">ComplexNumMixin</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.conjL_K"><span class="id" title="lemma">conjL_K</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.conjL_nt"><span class="id" title="lemma">conjL_nt</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.Lnum"><span class="id" title="definition">Lnum</span></a> := <a class="idref" href="mathcomp.algebra.ssrnum.html#Num.NumDomain.Exports.NumDomainType"><span class="id" title="abbreviation">NumDomainType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.L"><span class="id" title="definition">L</span></a> (<a class="idref" href="mathcomp.ssreflect.eqtype.html#sval"><span class="id" title="abbreviation">sval</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.LnumMixin"><span class="id" title="definition">LnumMixin</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.QtoL"><span class="id" title="definition">QtoL</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#778d861598c34ba1d4bea8b9adaae863"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#778d861598c34ba1d4bea8b9adaae863"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#778d861598c34ba1d4bea8b9adaae863"><span class="id" title="notation">of</span></a> @<a class="idref" href="mathcomp.algebra.rat.html#ratr"><span class="id" title="definition">ratr</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#a7441f0a0e6a98d4d20f782d49891896"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#a7441f0a0e6a98d4d20f782d49891896"><span class="id" title="notation">numFieldType</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#a7441f0a0e6a98d4d20f782d49891896"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.Lnum"><span class="id" title="definition">Lnum</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#a7441f0a0e6a98d4d20f782d49891896"><span class="id" title="notation">]</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#778d861598c34ba1d4bea8b9adaae863"><span class="id" title="notation">]</span></a>.<br/> +<span class="id" title="keyword">Notation</span> <a name="Algebraics.Implementation.pQtoL"><span class="id" title="abbreviation">pQtoL</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.algC.html#Algebraics.Implementation.QtoL"><span class="id" title="definition">QtoL</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.rootQtoL"><span class="id" title="definition">rootQtoL</span></a> <span class="id" title="var">p_j</span> :=<br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.algC.html#p_j"><span class="id" title="variable">p_j</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a><br/> + <a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#sval"><span class="id" title="abbreviation">sval</span></a> (<a class="idref" href="mathcomp.algebra.poly.html#closed_field_poly_normal"><span class="id" title="lemma">closed_field_poly_normal</span></a> (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.pQtoL"><span class="id" title="abbreviation">pQtoL</span></a> <a class="idref" href="mathcomp.field.algC.html#p_j"><span class="id" title="variable">p_j</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#c4877bbfe60d8f22b47ac99ace86216a"><span class="id" title="notation">.1</span></a>))<a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">)`</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#9625b440a0052f6dbfd015f5bb8b5125"><span class="id" title="notation">_p_j</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#f4827404159513e7fd691b60b7877737"><span class="id" title="notation">.2</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.eq_root"><span class="id" title="definition">eq_root</span></a> <span class="id" title="var">p_j</span> <span class="id" title="var">q_k</span> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.rootQtoL"><span class="id" title="definition">rootQtoL</span></a> <a class="idref" href="mathcomp.field.algC.html#p_j"><span class="id" title="variable">p_j</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.rootQtoL"><span class="id" title="definition">rootQtoL</span></a> <a class="idref" href="mathcomp.field.algC.html#q_k"><span class="id" title="variable">q_k</span></a>.<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.eq_root_is_equiv"><span class="id" title="lemma">eq_root_is_equiv</span></a> : <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#equiv_class_of"><span class="id" title="inductive">equiv_class_of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.eq_root"><span class="id" title="definition">eq_root</span></a>.<br/> + <span class="id" title="keyword">Canonical</span> <span class="id" title="var">eq_root_equiv</span> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#EquivRelPack"><span class="id" title="constructor">EquivRelPack</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.eq_root_is_equiv"><span class="id" title="lemma">eq_root_is_equiv</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> : <span class="id" title="keyword">Type</span> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#73f0d3e79bf803b4c740bbb9fa38aa76"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#73f0d3e79bf803b4c740bbb9fa38aa76"><span class="id" title="notation">eq_quot</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.eq_root"><span class="id" title="definition">eq_root</span></a><a class="idref" href="mathcomp.ssreflect.generic_quotient.html#73f0d3e79bf803b4c740bbb9fa38aa76"><span class="id" title="notation">}</span></a>%<span class="id" title="var">qT</span>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.eqMixin"><span class="id" title="definition">eqMixin</span></a> : <a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.class_of"><span class="id" title="abbreviation">Equality.class_of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#EquivQuot.eqMixin"><span class="id" title="lemma">EquivQuot.eqMixin</span></a> <span class="id" title="var">_</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Exports.EqType"><span class="id" title="abbreviation">EqType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.eqMixin"><span class="id" title="definition">eqMixin</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.choiceMixin"><span class="id" title="definition">choiceMixin</span></a> : <a class="idref" href="mathcomp.ssreflect.choice.html#Choice.mixin_of"><span class="id" title="record">Choice.mixin_of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> := <a class="idref" href="mathcomp.ssreflect.generic_quotient.html#EquivQuot.choiceMixin"><span class="id" title="definition">EquivQuot.choiceMixin</span></a> <span class="id" title="var">_</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span> := <a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Exports.ChoiceType"><span class="id" title="abbreviation">ChoiceType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.choiceMixin"><span class="id" title="definition">choiceMixin</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.countMixin"><span class="id" title="definition">countMixin</span></a> : <a class="idref" href="mathcomp.ssreflect.choice.html#Countable.mixin_of"><span class="id" title="record">Countable.mixin_of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> := <a class="idref" href="mathcomp.ssreflect.choice.html#CanCountMixin"><span class="id" title="definition">CanCountMixin</span></a> (@<a class="idref" href="mathcomp.ssreflect.generic_quotient.html#reprK"><span class="id" title="lemma">reprK</span></a> <span class="id" title="var">_</span> <span class="id" title="var">_</span>).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countType</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.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.countMixin"><span class="id" title="definition">countMixin</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.CtoL"><span class="id" title="definition">CtoL</span></a> (<span class="id" title="var">u</span> : <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a>) := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.rootQtoL"><span class="id" title="definition">rootQtoL</span></a> (<a class="idref" href="mathcomp.ssreflect.generic_quotient.html#repr"><span class="id" title="abbreviation">repr</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.CtoL_inj"><span class="id" title="lemma">CtoL_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.algC.html#Algebraics.Implementation.CtoL"><span class="id" title="definition">CtoL</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.CtoL_P"><span class="id" title="lemma">CtoL_P</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.QtoL"><span class="id" title="definition">QtoL</span></a> (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.CtoL"><span class="id" title="definition">CtoL</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.LtoC_subproof"><span class="id" title="lemma">LtoC_subproof</span></a> <span class="id" title="var">z</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.QtoL"><span class="id" title="definition">QtoL</span></a> <a class="idref" href="mathcomp.field.algC.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#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#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">{</span></a><span class="id" title="var">u</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.CtoL"><span class="id" title="definition">CtoL</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.algC.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.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.LtoC"><span class="id" title="definition">LtoC</span></a> <span class="id" title="var">z</span> <span class="id" title="var">Az</span> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#sval"><span class="id" title="abbreviation">sval</span></a> (@<a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.LtoC_subproof"><span class="id" title="lemma">LtoC_subproof</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.field.algC.html#Az"><span class="id" title="variable">Az</span></a>).<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.LtoC_K"><span class="id" title="lemma">LtoC_K</span></a> <span class="id" title="var">z</span> <span class="id" title="var">Az</span> : <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.CtoL"><span class="id" title="definition">CtoL</span></a> (@<a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.LtoC"><span class="id" title="definition">LtoC</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.field.algC.html#Az"><span class="id" title="variable">Az</span></a>) <a class="idref" href="http://coq.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.algC.html#z"><span class="id" title="variable">z</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.CtoL_K"><span class="id" title="lemma">CtoL_K</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.LtoC"><span class="id" title="definition">LtoC</span></a> (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.CtoL_P"><span class="id" title="lemma">CtoL_P</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.zero"><span class="id" title="definition">zero</span></a> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.LtoC"><span class="id" title="definition">LtoC</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#integral0"><span class="id" title="lemma">integral0</span></a> <span class="id" title="var">_</span>).<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.add"><span class="id" title="definition">add</span></a> <span class="id" title="var">u</span> <span class="id" title="var">v</span> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.LtoC"><span class="id" title="definition">LtoC</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#integral_add"><span class="id" title="lemma">integral_add</span></a> (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.CtoL_P"><span class="id" title="lemma">CtoL_P</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a>) (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.CtoL_P"><span class="id" title="lemma">CtoL_P</span></a> <a class="idref" href="mathcomp.field.algC.html#v"><span class="id" title="variable">v</span></a>)).<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.opp"><span class="id" title="definition">opp</span></a> <span class="id" title="var">u</span> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.LtoC"><span class="id" title="definition">LtoC</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#integral_opp"><span class="id" title="lemma">integral_opp</span></a> (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.CtoL_P"><span class="id" title="lemma">CtoL_P</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a>)).<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.addA"><span class="id" title="lemma">addA</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#associative"><span class="id" title="definition">associative</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.add"><span class="id" title="definition">add</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.addC"><span class="id" title="lemma">addC</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#commutative"><span class="id" title="definition">commutative</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.add"><span class="id" title="definition">add</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.add0"><span class="id" title="lemma">add0</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_id"><span class="id" title="definition">left_id</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.zero"><span class="id" title="definition">zero</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.add"><span class="id" title="definition">add</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.addN"><span class="id" title="lemma">addN</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_inverse"><span class="id" title="definition">left_inverse</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.zero"><span class="id" title="definition">zero</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.opp"><span class="id" title="definition">opp</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.add"><span class="id" title="definition">add</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.zmodMixin"><span class="id" title="definition">zmodMixin</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Exports.ZmodMixin"><span class="id" title="abbreviation">ZmodMixin</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.addA"><span class="id" title="lemma">addA</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.addC"><span class="id" title="lemma">addC</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.add0"><span class="id" title="lemma">add0</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.addN"><span class="id" title="lemma">addN</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Exports.ZmodType"><span class="id" title="abbreviation">ZmodType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.zmodMixin"><span class="id" title="definition">zmodMixin</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countZmodType</span> := <a class="idref" href="mathcomp.field.countalg.html#04d2f82770d2c7b3524ac143877824a7"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.countalg.html#04d2f82770d2c7b3524ac143877824a7"><span class="id" title="notation">countZmodType</span></a> <a class="idref" href="mathcomp.field.countalg.html#04d2f82770d2c7b3524ac143877824a7"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a><a class="idref" href="mathcomp.field.countalg.html#04d2f82770d2c7b3524ac143877824a7"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.CtoL_is_additive"><span class="id" title="lemma">CtoL_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.algC.html#Algebraics.Implementation.CtoL"><span class="id" title="definition">CtoL</span></a>.<br/> + <span class="id" title="keyword">Canonical</span> <span class="id" title="var">CtoL_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.algC.html#Algebraics.Implementation.CtoL_is_additive"><span class="id" title="lemma">CtoL_is_additive</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.one"><span class="id" title="definition">one</span></a> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.LtoC"><span class="id" title="definition">LtoC</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#integral1"><span class="id" title="lemma">integral1</span></a> <span class="id" title="var">_</span>).<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.mul"><span class="id" title="definition">mul</span></a> <span class="id" title="var">u</span> <span class="id" title="var">v</span> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.LtoC"><span class="id" title="definition">LtoC</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#integral_mul"><span class="id" title="lemma">integral_mul</span></a> (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.CtoL_P"><span class="id" title="lemma">CtoL_P</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a>) (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.CtoL_P"><span class="id" title="lemma">CtoL_P</span></a> <a class="idref" href="mathcomp.field.algC.html#v"><span class="id" title="variable">v</span></a>)).<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.inv"><span class="id" title="definition">inv</span></a> <span class="id" title="var">u</span> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.LtoC"><span class="id" title="definition">LtoC</span></a> (<a class="idref" href="mathcomp.algebra.mxpoly.html#integral_inv"><span class="id" title="lemma">integral_inv</span></a> (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.CtoL_P"><span class="id" title="lemma">CtoL_P</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a>)).<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.mulA"><span class="id" title="lemma">mulA</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.algC.html#Algebraics.Implementation.mul"><span class="id" title="definition">mul</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.mulC"><span class="id" title="lemma">mulC</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#commutative"><span class="id" title="definition">commutative</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.mul"><span class="id" title="definition">mul</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.mul1"><span class="id" title="lemma">mul1</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.algC.html#Algebraics.Implementation.one"><span class="id" title="definition">one</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.mul"><span class="id" title="definition">mul</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.mulD"><span class="id" title="lemma">mulD</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_distributive"><span class="id" title="definition">left_distributive</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.mul"><span class="id" title="definition">mul</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#327bb2f0da6fd7c01a004dedcfc2dee4"><span class="id" title="notation">+%</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#327bb2f0da6fd7c01a004dedcfc2dee4"><span class="id" title="notation">R</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.one_nz"><span class="id" title="lemma">one_nz</span></a> : <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.one"><span class="id" title="definition">one</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#9e45f909d1732d6d9e153b650829bccf"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="mathcomp.ssreflect.eqtype.html#9e45f909d1732d6d9e153b650829bccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.ringMixin"><span class="id" title="definition">ringMixin</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Exports.ComRingMixin"><span class="id" title="abbreviation">ComRingMixin</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.mulA"><span class="id" title="lemma">mulA</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.mulC"><span class="id" title="lemma">mulC</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.mul1"><span class="id" title="lemma">mul1</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.mulD"><span class="id" title="lemma">mulD</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.one_nz"><span class="id" title="lemma">one_nz</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ringType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.RingType"><span class="id" title="abbreviation">RingType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.ringMixin"><span class="id" title="definition">ringMixin</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comRingType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Exports.ComRingType"><span class="id" title="abbreviation">ComRingType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.mulC"><span class="id" title="lemma">mulC</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countRingType</span> := <a class="idref" href="mathcomp.field.countalg.html#b8f3d358caffeab4b18f72af97657654"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.field.countalg.html#b8f3d358caffeab4b18f72af97657654"><span class="id" title="notation">countRingType</span></a> <a class="idref" href="mathcomp.field.countalg.html#b8f3d358caffeab4b18f72af97657654"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a><a class="idref" href="mathcomp.field.countalg.html#b8f3d358caffeab4b18f72af97657654"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.CtoL_is_multiplicative"><span class="id" title="lemma">CtoL_is_multiplicative</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.RMorphism.Exports.multiplicative"><span class="id" title="abbreviation">multiplicative</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.CtoL"><span class="id" title="definition">CtoL</span></a>.<br/> + <span class="id" title="keyword">Canonical</span> <span class="id" title="var">CtoL_rmorphism</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.RMorphism.Exports.AddRMorphism"><span class="id" title="abbreviation">AddRMorphism</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.CtoL_is_multiplicative"><span class="id" title="lemma">CtoL_is_multiplicative</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.mulVf"><span class="id" title="lemma">mulVf</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.axiom"><span class="id" title="definition">GRing.Field.axiom</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.inv"><span class="id" title="definition">inv</span></a>.<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.inv0"><span class="id" title="lemma">inv0</span></a> : <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.inv"><span class="id" title="definition">inv</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">Definition</span> <a name="Algebraics.Implementation.unitRingMixin"><span class="id" title="definition">unitRingMixin</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.FieldUnitMixin"><span class="id" title="abbreviation">FieldUnitMixin</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.mulVf"><span class="id" title="lemma">mulVf</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.inv0"><span class="id" title="lemma">inv0</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitRingType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Exports.UnitRingType"><span class="id" title="abbreviation">UnitRingType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.unitRingMixin"><span class="id" title="definition">unitRingMixin</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comUnitRingType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">comUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#e3ee791c903b0283e51d52d0692558ec"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.fieldMixin"><span class="id" title="definition">fieldMixin</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.FieldMixin"><span class="id" title="abbreviation">FieldMixin</span></a> <span class="id" title="var">_</span> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.mulVf"><span class="id" title="lemma">mulVf</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.inv0"><span class="id" title="lemma">inv0</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.idomainAxiom"><span class="id" title="definition">idomainAxiom</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.FieldIdomainMixin"><span class="id" title="abbreviation">FieldIdomainMixin</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.fieldMixin"><span class="id" title="definition">fieldMixin</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">idomainType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Exports.IdomainType"><span class="id" title="abbreviation">IdomainType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.idomainAxiom"><span class="id" title="definition">idomainAxiom</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Exports.FieldType"><span class="id" title="abbreviation">FieldType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.fieldMixin"><span class="id" title="definition">fieldMixin</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.closedFieldAxiom"><span class="id" title="lemma">closedFieldAxiom</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ClosedField.axiom"><span class="id" title="definition">GRing.ClosedField.axiom</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.ringType"><span class="id" title="definition">ringType</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.decFieldMixin"><span class="id" title="definition">decFieldMixin</span></a> := <a class="idref" href="mathcomp.field.closed_field.html#closed_fields_QEMixin"><span class="id" title="definition">closed_field.closed_fields_QEMixin</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.closedFieldAxiom"><span class="id" title="lemma">closedFieldAxiom</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">decFieldType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.DecidableField.Exports.DecFieldType"><span class="id" title="abbreviation">DecFieldType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.decFieldMixin"><span class="id" title="definition">decFieldMixin</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">closedFieldType</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ClosedField.Exports.ClosedFieldType"><span class="id" title="abbreviation">ClosedFieldType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.closedFieldAxiom"><span class="id" title="lemma">closedFieldAxiom</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.conj_subproof"><span class="id" title="lemma">conj_subproof</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.mxpoly.html#integralOver"><span class="id" title="definition">integralOver</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.QtoL"><span class="id" title="definition">QtoL</span></a> (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.conjL"><span class="id" title="definition">conjL</span></a> (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.CtoL"><span class="id" title="definition">CtoL</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a>)).<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.conj_is_rmorphism"><span class="id" title="lemma">conj_is_rmorphism</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.RMorphism.Exports.rmorphism"><span class="id" title="abbreviation">rmorphism</span></a> (<span class="id" title="keyword">fun</span> <span class="id" title="var">u</span> ⇒ <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.LtoC"><span class="id" title="definition">LtoC</span></a> (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.conj_subproof"><span class="id" title="lemma">conj_subproof</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a>)).<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.conj"><span class="id" title="definition">conj</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> <a class="idref" href="http://coq.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.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><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.algC.html#Algebraics.Implementation.conj_is_rmorphism"><span class="id" title="lemma">conj_is_rmorphism</span></a>.<br/> +<span class="id" title="keyword">Lemma</span> <a name="Algebraics.Implementation.conjK"><span class="id" title="lemma">conjK</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#involutive"><span class="id" title="definition">involutive</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.conj"><span class="id" title="definition">conj</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Implementation.conj_nt"><span class="id" title="lemma">conj_nt</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#611abc97cba304de784fa909dbdea1fa"><span class="id" title="notation">¬</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.conj"><span class="id" title="definition">conj</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.numMixin"><span class="id" title="definition">numMixin</span></a> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#sval"><span class="id" title="abbreviation">sval</span></a> (<a class="idref" href="mathcomp.field.algC.html#ComplexNumMixin"><span class="id" title="lemma">ComplexNumMixin</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.conjK"><span class="id" title="lemma">conjK</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.conj_nt"><span class="id" title="lemma">conj_nt</span></a>).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">numDomainType</span> := <a class="idref" href="mathcomp.algebra.ssrnum.html#Num.NumDomain.Exports.NumDomainType"><span class="id" title="abbreviation">NumDomainType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.numMixin"><span class="id" title="definition">numMixin</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">numFieldType</span> := <a class="idref" href="mathcomp.algebra.ssrnum.html#a7441f0a0e6a98d4d20f782d49891896"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#a7441f0a0e6a98d4d20f782d49891896"><span class="id" title="notation">numFieldType</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#a7441f0a0e6a98d4d20f782d49891896"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#a7441f0a0e6a98d4d20f782d49891896"><span class="id" title="notation">]</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Algebraics.Implementation.normK"><span class="id" title="lemma">normK</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> 2 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.conj"><span class="id" title="definition">conj</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Algebraics.Implementation.algebraic"><span class="id" title="lemma">algebraic</span></a> : <a class="idref" href="mathcomp.algebra.mxpoly.html#integralRange"><span class="id" title="definition">integralRange</span></a> (@<a class="idref" href="mathcomp.algebra.rat.html#ratr"><span class="id" title="definition">ratr</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.unitRingType"><span class="id" title="definition">unitRingType</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Implementation.conjMixin"><span class="id" title="definition">conjMixin</span></a> :=<br/> + <a class="idref" href="mathcomp.algebra.ssrnum.html#ImaginaryMixin"><span class="id" title="abbreviation">ImaginaryMixin</span></a> (<a class="idref" href="mathcomp.ssreflect.eqtype.html#svalP"><span class="id" title="lemma">svalP</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.imaginary_exists"><span class="id" title="definition">imaginary_exists</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.closedFieldType"><span class="id" title="definition">closedFieldType</span></a>))<br/> + (<span class="id" title="keyword">fun</span> <span class="id" title="var">x</span> ⇒ <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#esym"><span class="id" title="definition">esym</span></a> (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.normK"><span class="id" title="lemma">normK</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>)).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">numClosedFieldType</span> := <a class="idref" href="mathcomp.algebra.ssrnum.html#Num.ClosedField.Exports.NumClosedFieldType"><span class="id" title="abbreviation">NumClosedFieldType</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.conjMixin"><span class="id" title="definition">conjMixin</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation"><span class="id" title="module">Implementation</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.divisor"><span class="id" title="definition">divisor</span></a> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.type"><span class="id" title="axiom">Implementation.type</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Module</span> <a name="Algebraics.Internals"><span class="id" title="module">Internals</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Import</span> <span class="id" title="var">Implementation</span>.<br/> + +<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Internals.algCi_subproof"><span class="id" title="lemma">algCi_subproof</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">i</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.algC.html#Algebraics.Internals.algC"><span class="id" title="abbreviation">algC</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.algC.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> 2 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> -1<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">CoInductive</span> <a name="Algebraics.Internals.getCrat_spec"><span class="id" title="inductive">getCrat_spec</span></a> : <span class="id" title="keyword">Type</span> := <a name="Algebraics.Internals.GetCrat_spec"><span class="id" title="constructor">GetCrat_spec</span></a> <span class="id" title="var">CtoQ</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#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.QtoC"><span class="id" title="abbreviation">QtoC</span></a> <a class="idref" href="mathcomp.field.algC.html#CtoQ"><span class="id" title="variable">CtoQ</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Internals.getCrat_subproof"><span class="id" title="lemma">getCrat_subproof</span></a> : <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.getCrat_spec"><span class="id" title="inductive">getCrat_spec</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Internals.floorC_subproof"><span class="id" title="lemma">floorC_subproof</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#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">{</span></a><span class="id" title="var">m</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.algC.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#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.Creal"><span class="id" title="abbreviation">Creal</span></a> <a class="idref" href="http://coq.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.algC.html#Algebraics.Internals.ZtoC"><span class="id" title="abbreviation">ZtoC</span></a> <a class="idref" href="mathcomp.field.algC.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#93a29a58d1f90b8a91702885cf86161e"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#93a29a58d1f90b8a91702885cf86161e"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.ZtoC"><span class="id" title="abbreviation">ZtoC</span></a> (<a class="idref" href="mathcomp.field.algC.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> 1)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Algebraics.Internals.minCpoly_subproof"><span class="id" title="lemma">minCpoly_subproof</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.algC"><span class="id" title="abbreviation">algC</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">p</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.algC.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#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.algebra.poly.html#monic"><span class="id" title="definition">monic</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">&</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">q</span>, <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.pQtoC"><span class="id" title="abbreviation">pQtoC</span></a> <a class="idref" href="mathcomp.field.algC.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.field.algC.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.algC.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#q"><span class="id" title="variable">q</span></a>)%<span class="id" title="var">R</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>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Internals.algC_divisor"><span class="id" title="definition">algC_divisor</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.algC"><span class="id" title="abbreviation">algC</span></a>) := <a class="idref" href="mathcomp.field.algC.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.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.divisor"><span class="id" title="definition">divisor</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Internals.int_divisor"><span class="id" title="definition">int_divisor</span></a> <span class="id" title="var">m</span> := <a class="idref" href="mathcomp.field.algC.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">%:~</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.divisor"><span class="id" title="definition">divisor</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Internals.nat_divisor"><span class="id" title="definition">nat_divisor</span></a> <span class="id" title="var">n</span> := <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.divisor"><span class="id" title="definition">divisor</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals"><span class="id" title="module">Internals</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Module</span> <span class="id" title="keyword">Import</span> <a name="Algebraics.Exports"><span class="id" title="module">Exports</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Import</span> <span class="id" title="var">Implementation</span> <span class="id" title="var">Internals</span>.<br/> + +<br/> +<span class="id" title="keyword">Notation</span> <a name="Algebraics.Exports.algC"><span class="id" title="abbreviation">algC</span></a> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.type"><span class="id" title="axiom">type</span></a>.<br/> +<span class="id" title="keyword">Delimit</span> <span class="id" title="keyword">Scope</span> <span class="id" title="var">C_scope</span> <span class="id" title="keyword">with</span> <span class="id" title="var">C</span>.<br/> +<span class="id" title="keyword">Delimit</span> <span class="id" title="keyword">Scope</span> <span class="id" title="var">C_core_scope</span> <span class="id" title="keyword">with</span> <span class="id" title="var">Cc</span>.<br/> +<span class="id" title="keyword">Delimit</span> <span class="id" title="keyword">Scope</span> <span class="id" title="var">C_expanded_scope</span> <span class="id" title="keyword">with</span> <span class="id" title="var">Cx</span>.<br/> +<span class="id" title="keyword">Open</span> <span class="id" title="keyword">Scope</span> <span class="id" title="var">C_core_scope</span>.<br/> + +<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countZmodType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ringType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countRingType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitRingType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comRingType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comUnitRingType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">idomainType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">numDomainType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">numFieldType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">decFieldType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">closedFieldType</span>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">numClosedFieldType</span>.<br/> + +<br/> +<span class="id" title="keyword">Notation</span> <a name="Algebraics.Exports.algCeq"><span class="id" title="abbreviation">algCeq</span></a> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.eqType"><span class="id" title="definition">eqType</span></a>.<br/> +<span class="id" title="keyword">Notation</span> <a name="Algebraics.Exports.algCzmod"><span class="id" title="abbreviation">algCzmod</span></a> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/> +<span class="id" title="keyword">Notation</span> <a name="Algebraics.Exports.algCring"><span class="id" title="abbreviation">algCring</span></a> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.ringType"><span class="id" title="definition">ringType</span></a>.<br/> +<span class="id" title="keyword">Notation</span> <a name="Algebraics.Exports.algCuring"><span class="id" title="abbreviation">algCuring</span></a> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.unitRingType"><span class="id" title="definition">unitRingType</span></a>.<br/> +<span class="id" title="keyword">Notation</span> <a name="Algebraics.Exports.algCnum"><span class="id" title="abbreviation">algCnum</span></a> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.numDomainType"><span class="id" title="definition">numDomainType</span></a>.<br/> +<span class="id" title="keyword">Notation</span> <a name="Algebraics.Exports.algCfield"><span class="id" title="abbreviation">algCfield</span></a> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.fieldType"><span class="id" title="definition">fieldType</span></a>.<br/> +<span class="id" title="keyword">Notation</span> <a name="Algebraics.Exports.algCnumField"><span class="id" title="abbreviation">algCnumField</span></a> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.numFieldType"><span class="id" title="definition">numFieldType</span></a>.<br/> +<span class="id" title="keyword">Notation</span> <a name="Algebraics.Exports.algCnumClosedField"><span class="id" title="abbreviation">algCnumClosedField</span></a> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.numClosedFieldType"><span class="id" title="definition">numClosedFieldType</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Notation</span> <a name="Algebraics.Exports.Creal"><span class="id" title="abbreviation">Creal</span></a> := (@<a class="idref" href="mathcomp.algebra.ssrnum.html#Num.Def.Rreal"><span class="id" title="definition">Num.Def.Rreal</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Implementation.numDomainType"><span class="id" title="definition">numDomainType</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Exports.getCrat"><span class="id" title="definition">getCrat</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.GetCrat_spec"><span class="id" title="constructor">GetCrat_spec</span></a> <span class="id" title="var">CtoQ</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.getCrat_subproof"><span class="id" title="lemma">getCrat_subproof</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">CtoQ</span>.<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Exports.Crat"><span class="id" title="definition">Crat</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred_class"><span class="id" title="abbreviation">pred_class</span></a> := <span class="id" title="keyword">fun</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.html#Algebraics.Exports.algC"><span class="id" title="abbreviation">algC</span></a> ⇒ <a class="idref" href="mathcomp.algebra.rat.html#ratr"><span class="id" title="definition">ratr</span></a> (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Exports.getCrat"><span class="id" title="definition">getCrat</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Exports.floorC"><span class="id" title="definition">floorC</span></a> <span class="id" title="var">x</span> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#sval"><span class="id" title="abbreviation">sval</span></a> (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.floorC_subproof"><span class="id" title="lemma">floorC_subproof</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>).<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Exports.Cint"><span class="id" title="definition">Cint</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred_class"><span class="id" title="abbreviation">pred_class</span></a> := <span class="id" title="keyword">fun</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.html#Algebraics.Exports.algC"><span class="id" title="abbreviation">algC</span></a> ⇒ <a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#Algebraics.Exports.floorC"><span class="id" title="definition">floorC</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">)%:~</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Exports.truncC"><span class="id" title="definition">truncC</span></a> <span class="id" title="var">x</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#4a55c8439dfd5912be472b2910ab4015"><span class="id" title="notation">≥</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.field.algC.html#Algebraics.Exports.floorC"><span class="id" title="definition">floorC</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a>%<span class="id" title="var">N</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> 0%<span class="id" title="var">N</span>.<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Exports.Cnat"><span class="id" title="definition">Cnat</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred_class"><span class="id" title="abbreviation">pred_class</span></a> := <span class="id" title="keyword">fun</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.html#Algebraics.Exports.algC"><span class="id" title="abbreviation">algC</span></a> ⇒ <a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#Algebraics.Exports.truncC"><span class="id" title="definition">truncC</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Exports.minCpoly"><span class="id" title="definition">minCpoly</span></a> <span class="id" title="var">x</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.algC.html#Algebraics.Exports.algC"><span class="id" title="abbreviation">algC</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a> :=<br/> + <span class="id" title="keyword">let</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#exist2"><span class="id" title="constructor">exist2</span></a> <span class="id" title="var">p</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.minCpoly_subproof"><span class="id" title="lemma">minCpoly_subproof</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.algebra.rat.html#ratr"><span class="id" title="definition">ratr</span></a> <span class="id" title="var">p</span>.<br/> + +<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.nat_divisor"><span class="id" title="definition">nat_divisor</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.nat_divisor"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.nat_divisor"><span class="id" title="definition">nat</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.nat_divisor"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.nat_divisor"><span class="id" title="definition">divisor</span></a>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.int_divisor"><span class="id" title="definition">int_divisor</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.int_divisor"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.int_divisor"><span class="id" title="definition">int</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.int_divisor"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.int_divisor"><span class="id" title="definition">divisor</span></a>.<br/> +<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.algC_divisor"><span class="id" title="definition">algC_divisor</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.algC_divisor"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.algC_divisor"><span class="id" title="definition">algC</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.algC_divisor"><span class="id" title="definition">>-></span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Internals.algC_divisor"><span class="id" title="definition">divisor</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Algebraics.Exports.nCdivE"><span class="id" title="lemma">nCdivE</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) : <a class="idref" href="mathcomp.field.algC.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#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.algC.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.divisor"><span class="id" title="definition">divisor</span></a>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="Algebraics.Exports.zCdivE"><span class="id" title="lemma">zCdivE</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</span></a>) : <a class="idref" href="mathcomp.field.algC.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#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.algC.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">%:~</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.divisor"><span class="id" title="definition">divisor</span></a>. <br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Exports.CdivE"><span class="id" title="definition">CdivE</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#Algebraics.Exports.nCdivE"><span class="id" title="lemma">nCdivE</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Exports.zCdivE"><span class="id" title="lemma">zCdivE</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Exports.dvdC"><span class="id" title="definition">dvdC</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.html#Algebraics.divisor"><span class="id" title="definition">divisor</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred_class"><span class="id" title="abbreviation">pred_class</span></a> :=<br/> + <span class="id" title="keyword">fun</span> <span class="id" title="var">y</span> : <a class="idref" href="mathcomp.field.algC.html#Algebraics.Exports.algC"><span class="id" title="abbreviation">algC</span></a> ⇒ <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">if</span></a> <a class="idref" href="mathcomp.field.algC.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> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">then</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#0348819abaa88c2cd747e8fa60dde7ae"><span class="id" title="notation">else</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#4fa85b0aa898c2a7e18c3b076438c2e7"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#Algebraics.Exports.Cint"><span class="id" title="definition">Cint</span></a>.<br/> +<span class="id" title="keyword">Notation</span> <a name="a934248f68ba79f0e05555e2d6d19837"><span class="id" title="notation">"</span></a>x %| y" := (<span class="id" title="var">y</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Exports.dvdC"><span class="id" title="definition">dvdC</span></a> <span class="id" title="var">x</span>) : <span class="id" title="var">C_expanded_scope</span>.<br/> +<span class="id" title="keyword">Notation</span> <a name="9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">"</span></a>x %| y" := (@<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#in_mem"><span class="id" title="definition">in_mem</span></a> <a class="idref" href="mathcomp.field.algC.html#Algebraics.divisor"><span class="id" title="definition">divisor</span></a> <span class="id" title="var">y</span> (<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.algC.html#Algebraics.Exports.dvdC"><span class="id" title="definition">dvdC</span></a> <span class="id" title="var">x</span>))) : <span class="id" title="var">C_scope</span>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="Algebraics.Exports.eqCmod"><span class="id" title="definition">eqCmod</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.algC.html#Algebraics.divisor"><span class="id" title="definition">divisor</span></a>) := (<a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d70623330b2787db6b196e37db7d8f45"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Notation</span> <a name="ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">"</span></a>x == y %[mod e ]" := (<a class="idref" href="mathcomp.field.algC.html#Algebraics.Exports.eqCmod"><span class="id" title="definition">eqCmod</span></a> <span class="id" title="var">e</span> <span class="id" title="var">x</span> <span class="id" title="var">y</span>) : <span class="id" title="var">C_scope</span>.<br/> +<span class="id" title="keyword">Notation</span> <a name="7f475a8fd3a16c1e4c806088f6e9e378"><span class="id" title="notation">"</span></a>x != y %[mod e ]" := (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~</span></a> (<span class="id" title="var">x</span> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <span class="id" title="var">y</span> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <span class="id" title="var">e</span><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</span>) : <span class="id" title="var">C_scope</span>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.algC.html#Algebraics.Exports"><span class="id" title="module">Exports</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.algC.html#Algebraics"><span class="id" title="module">Algebraics</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Export</span> <span class="id" title="var">Algebraics.Exports</span>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="AlgebraicsTheory"><span class="id" title="section">AlgebraicsTheory</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> (<span class="id" title="var">x</span> <span class="id" title="var">y</span> <span class="id" title="var">z</span> : <a class="idref" href="mathcomp.field.algC.html#algC"><span class="id" title="abbreviation">algC</span></a>) (<span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) (<span class="id" title="var">m</span> : <a class="idref" href="mathcomp.algebra.ssrint.html#int"><span class="id" title="inductive">int</span></a>) (<span class="id" title="var">b</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#bool"><span class="id" title="inductive">bool</span></a>).<br/> +<span class="id" title="keyword">Import</span> <span class="id" title="var">Algebraics.Internals</span>.<br/> + +<br/> +<span class="id" title="keyword">Local Hint Resolve</span> (@<a class="idref" href="mathcomp.algebra.ssrint.html#intr_inj"><span class="id" title="definition">intr_inj</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#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</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.algC.html#ZtoC"><span class="id" title="abbreviation">ZtoC</span></a>).<br/> + +<br/> +</div> + +<div class="doc"> + Specialization of a few basic ssrnum order lemmas. +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="eqC_nat"><span class="id" title="definition">eqC_nat</span></a> <span class="id" title="var">n</span> <span class="id" title="var">p</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#340b60eb5a3e9913f807040630cb8d43"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#340b60eb5a3e9913f807040630cb8d43"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.field.algC.html#algC"><span class="id" title="abbreviation">algC</span></a><a class="idref" href="http://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.algC.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.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.algebra.ssrnum.html#Num.Theory.eqr_nat"><span class="id" title="lemma">eqr_nat</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.field.algC.html#p"><span class="id" title="variable">p</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="leC_nat"><span class="id" title="definition">leC_nat</span></a> <span class="id" title="var">n</span> <span class="id" title="var">p</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#d6cd0798ccf4decf11598a746ae90abf"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#d6cd0798ccf4decf11598a746ae90abf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.field.algC.html#algC"><span class="id" title="abbreviation">algC</span></a><a class="idref" href="http://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.algC.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#9b077c369e19739ef880736ba34623ff"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.html#p"><span class="id" title="variable">p</span></a>)%<span class="id" title="var">N</span> := <a class="idref" href="mathcomp.algebra.ssrnum.html#Num.Theory.ler_nat"><span class="id" title="lemma">ler_nat</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.field.algC.html#p"><span class="id" title="variable">p</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="ltC_nat"><span class="id" title="definition">ltC_nat</span></a> <span class="id" title="var">n</span> <span class="id" title="var">p</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#3c0e77197870a42e4951057d43bba909"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.field.algC.html#p"><span class="id" title="variable">p</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#3c0e77197870a42e4951057d43bba909"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.field.algC.html#algC"><span class="id" title="abbreviation">algC</span></a><a class="idref" href="http://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.algC.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.field.algC.html#p"><span class="id" title="variable">p</span></a>)%<span class="id" title="var">N</span> := <a class="idref" href="mathcomp.algebra.ssrnum.html#Num.Theory.ltr_nat"><span class="id" title="lemma">ltr_nat</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.field.algC.html#p"><span class="id" title="variable">p</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="Cchar"><span class="id" title="definition">Cchar</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#b8d1051ec5bf038cb2a33edc541359f8"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b8d1051ec5bf038cb2a33edc541359f8"><span class="id" title="notation">char</span></a> <a class="idref" href="mathcomp.field.algC.html#algC"><span class="id" title="abbreviation">algC</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b8d1051ec5bf038cb2a33edc541359f8"><span class="id" title="notation">]</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">=</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#20bf07099d6d8cf369383b22fd37862e"><span class="id" title="notation">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred0"><span class="id" title="definition">pred0</span></a> := @<a class="idref" href="mathcomp.algebra.ssrnum.html#Num.Theory.char_num"><span class="id" title="lemma">char_num</span></a> <span class="id" title="var">_</span>.<br/> + +<br/> +</div> + +<div class="doc"> + This can be used in the converse direction to evaluate assertions over + manifest rationals, such as 3%:R^-1 + 7%:%^-1 < 2%:%^-1 :> algC. + Missing norm and integer exponent, due to gaps in ssrint and rat. +</div> +<div class="code"> +<span class="id" title="keyword">Definition</span> <a name="CratrE"><span class="id" title="definition">CratrE</span></a> :=<br/> + <span class="id" title="keyword">let</span> <span class="id" title="var">CnF</span> := <a class="idref" href="mathcomp.field.algC.html#numFieldType"><span class="id" title="definition">Algebraics.Implementation.numFieldType</span></a> <span class="id" title="tactic">in</span><br/> + <span class="id" title="keyword">let</span> <span class="id" title="var">QtoCm</span> := <a class="idref" href="mathcomp.algebra.rat.html#ratr_rmorphism"><span class="id" title="definition">ratr_rmorphism</span></a> <a class="idref" href="mathcomp.field.algC.html#CnF"><span class="id" title="variable">CnF</span></a> <span class="id" title="tactic">in</span><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">((</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.rmorph0"><span class="id" title="definition">rmorph0</span></a> <a class="idref" href="mathcomp.field.algC.html#QtoCm"><span class="id" title="variable">QtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.rmorph1"><span class="id" title="definition">rmorph1</span></a> <a class="idref" href="mathcomp.field.algC.html#QtoCm"><span class="id" title="variable">QtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.rmorphMn"><span class="id" title="definition">rmorphMn</span></a> <a class="idref" href="mathcomp.field.algC.html#QtoCm"><span class="id" title="variable">QtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.rmorphN"><span class="id" title="definition">rmorphN</span></a> <a class="idref" href="mathcomp.field.algC.html#QtoCm"><span class="id" title="variable">QtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.rmorphD"><span class="id" title="definition">rmorphD</span></a> <a class="idref" href="mathcomp.field.algC.html#QtoCm"><span class="id" title="variable">QtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">),</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.rmorphM"><span class="id" title="definition">rmorphM</span></a> <a class="idref" href="mathcomp.field.algC.html#QtoCm"><span class="id" title="variable">QtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.rmorphX"><span class="id" title="definition">rmorphX</span></a> <a class="idref" href="mathcomp.field.algC.html#QtoCm"><span class="id" title="variable">QtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.fmorphV"><span class="id" title="definition">fmorphV</span></a> <a class="idref" href="mathcomp.field.algC.html#QtoCm"><span class="id" title="variable">QtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">),</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#rmorphMz"><span class="id" title="lemma">rmorphMz</span></a> <a class="idref" href="mathcomp.field.algC.html#QtoCm"><span class="id" title="variable">QtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#rmorphXz"><span class="id" title="lemma">rmorphXz</span></a> <a class="idref" href="mathcomp.field.algC.html#QtoCm"><span class="id" title="variable">QtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> @<a class="idref" href="mathcomp.algebra.rat.html#ratr_norm"><span class="id" title="lemma">ratr_norm</span></a> <a class="idref" href="mathcomp.field.algC.html#CnF"><span class="id" title="variable">CnF</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> @<a class="idref" href="mathcomp.algebra.rat.html#ratr_sg"><span class="id" title="lemma">ratr_sg</span></a> <a class="idref" href="mathcomp.field.algC.html#CnF"><span class="id" title="variable">CnF</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">),</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#f698c37cdb866c2369b5ae93e22451f0"><span class="id" title="notation">=^~</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a>@<a class="idref" href="mathcomp.algebra.rat.html#ler_rat"><span class="id" title="lemma">ler_rat</span></a> <a class="idref" href="mathcomp.field.algC.html#CnF"><span class="id" title="variable">CnF</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> @<a class="idref" href="mathcomp.algebra.rat.html#ltr_rat"><span class="id" title="lemma">ltr_rat</span></a> <a class="idref" href="mathcomp.field.algC.html#CnF"><span class="id" title="variable">CnF</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#inj_eq"><span class="id" title="lemma">inj_eq</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.fmorph_inj"><span class="id" title="definition">fmorph_inj</span></a> <a class="idref" href="mathcomp.field.algC.html#QtoCm"><span class="id" title="variable">QtoCm</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)))</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="CintrE"><span class="id" title="definition">CintrE</span></a> :=<br/> + <span class="id" title="keyword">let</span> <span class="id" title="var">CnF</span> := <a class="idref" href="mathcomp.field.algC.html#numFieldType"><span class="id" title="definition">Algebraics.Implementation.numFieldType</span></a> <span class="id" title="tactic">in</span><br/> + <span class="id" title="keyword">let</span> <span class="id" title="var">ZtoCm</span> := <a class="idref" href="mathcomp.algebra.ssrint.html#intmul1_rmorphism"><span class="id" title="definition">intmul1_rmorphism</span></a> <a class="idref" href="mathcomp.field.algC.html#CnF"><span class="id" title="variable">CnF</span></a> <span class="id" title="tactic">in</span><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">((</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.rmorph0"><span class="id" title="definition">rmorph0</span></a> <a class="idref" href="mathcomp.field.algC.html#ZtoCm"><span class="id" title="variable">ZtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.rmorph1"><span class="id" title="definition">rmorph1</span></a> <a class="idref" href="mathcomp.field.algC.html#ZtoCm"><span class="id" title="variable">ZtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.rmorphMn"><span class="id" title="definition">rmorphMn</span></a> <a class="idref" href="mathcomp.field.algC.html#ZtoCm"><span class="id" title="variable">ZtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.rmorphN"><span class="id" title="definition">rmorphN</span></a> <a class="idref" href="mathcomp.field.algC.html#ZtoCm"><span class="id" title="variable">ZtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.rmorphD"><span class="id" title="definition">rmorphD</span></a> <a class="idref" href="mathcomp.field.algC.html#ZtoCm"><span class="id" title="variable">ZtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">),</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.rmorphM"><span class="id" title="definition">rmorphM</span></a> <a class="idref" href="mathcomp.field.algC.html#ZtoCm"><span class="id" title="variable">ZtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.rmorphX"><span class="id" title="definition">rmorphX</span></a> <a class="idref" href="mathcomp.field.algC.html#ZtoCm"><span class="id" title="variable">ZtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">),</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#rmorphMz"><span class="id" title="lemma">rmorphMz</span></a> <a class="idref" href="mathcomp.field.algC.html#ZtoCm"><span class="id" title="variable">ZtoCm</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> @<a class="idref" href="mathcomp.algebra.ssrint.html#intr_norm"><span class="id" title="lemma">intr_norm</span></a> <a class="idref" href="mathcomp.field.algC.html#CnF"><span class="id" title="variable">CnF</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> @<a class="idref" href="mathcomp.algebra.ssrint.html#intr_sg"><span class="id" title="lemma">intr_sg</span></a> <a class="idref" href="mathcomp.field.algC.html#CnF"><span class="id" title="variable">CnF</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">),</span></a><br/> + <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#f698c37cdb866c2369b5ae93e22451f0"><span class="id" title="notation">=^~</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a>@<a class="idref" href="mathcomp.algebra.ssrint.html#ler_int"><span class="id" title="lemma">ler_int</span></a> <a class="idref" href="mathcomp.field.algC.html#CnF"><span class="id" title="variable">CnF</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> @<a class="idref" href="mathcomp.algebra.ssrint.html#ltr_int"><span class="id" title="lemma">ltr_int</span></a> <a class="idref" href="mathcomp.field.algC.html#CnF"><span class="id" title="variable">CnF</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#inj_eq"><span class="id" title="lemma">inj_eq</span></a> (@<a class="idref" href="mathcomp.algebra.ssrint.html#intr_inj"><span class="id" title="definition">intr_inj</span></a> <a class="idref" href="mathcomp.field.algC.html#CnF"><span class="id" title="variable">CnF</span></a>)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#44400027531d4bc3f586a1997dc874c0"><span class="id" title="notation">)))</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Let</span> <a name="AlgebraicsTheory.nz2"><span class="id" title="variable">nz2</span></a> : 2<a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#9e45f909d1732d6d9e153b650829bccf"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="mathcomp.ssreflect.eqtype.html#9e45f909d1732d6d9e153b650829bccf"><span class="id" title="notation">:></span></a> <a class="idref" href="mathcomp.field.algC.html#algC"><span class="id" title="abbreviation">algC</span></a>. <br/> + +<br/> +</div> + +<div class="doc"> + Conjugation and norm. +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Definition</span> <a name="algC_algebraic"><span class="id" title="definition">algC_algebraic</span></a> <span class="id" title="var">x</span> := <a class="idref" href="mathcomp.field.algC.html#algebraic"><span class="id" title="axiom">Algebraics.Implementation.algebraic</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +</div> + +<div class="doc"> + Real number subset. +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Creal0"><span class="id" title="lemma">Creal0</span></a> : 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.field.algC.html#Creal"><span class="id" title="abbreviation">Creal</span></a>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="Creal1"><span class="id" title="lemma">Creal1</span></a> : 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.field.algC.html#Creal"><span class="id" title="abbreviation">Creal</span></a>. <br/> +<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">Creal0</span> <span class="id" title="var">Creal1</span>. <span class="comment">(* Trivial cannot resolve a general real0 hint. *)</span><br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="algCrect"><span class="id" title="lemma">algCrect</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#9153b7cf9b84603850c08e5131d1133a"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#9153b7cf9b84603850c08e5131d1133a"><span class="id" title="notation">Re</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#f2048b82a608311baf565ccc9caefe54"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#f2048b82a608311baf565ccc9caefe54"><span class="id" title="notation">i</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#581a18ced675f8f9c5eb585ba4ae312b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#581a18ced675f8f9c5eb585ba4ae312b"><span class="id" title="notation">Im</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="algCreal_Re"><span class="id" title="lemma">algCreal_Re</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.ssrnum.html#9153b7cf9b84603850c08e5131d1133a"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#9153b7cf9b84603850c08e5131d1133a"><span class="id" title="notation">Re</span></a> <a class="idref" href="mathcomp.field.algC.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#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.field.algC.html#Creal"><span class="id" title="abbreviation">Creal</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="algCreal_Im"><span class="id" title="lemma">algCreal_Im</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.ssrnum.html#581a18ced675f8f9c5eb585ba4ae312b"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#581a18ced675f8f9c5eb585ba4ae312b"><span class="id" title="notation">Im</span></a> <a class="idref" href="mathcomp.field.algC.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#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.field.algC.html#Creal"><span class="id" title="abbreviation">Creal</span></a>.<br/> + <span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">algCreal_Re</span> <span class="id" title="var">algCreal_Im</span>.<br/> + +<br/> +</div> + +<div class="doc"> + Integer subset. + Not relying on the undocumented interval library, for now. +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="floorC_itv"><span class="id" title="lemma">floorC_itv</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.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#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.field.algC.html#Creal"><span class="id" title="abbreviation">Creal</span></a> <a class="idref" href="http://coq.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.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#floorC"><span class="id" title="definition">floorC</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">)%:~</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#93a29a58d1f90b8a91702885cf86161e"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#93a29a58d1f90b8a91702885cf86161e"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#floorC"><span class="id" title="definition">floorC</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> 1<a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">)%:~</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">R</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="floorC_def"><span class="id" title="lemma">floorC_def</span></a> <span class="id" title="var">x</span> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.field.algC.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">%:~</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#93a29a58d1f90b8a91702885cf86161e"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#93a29a58d1f90b8a91702885cf86161e"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> 1<a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">)%:~</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.algC.html#floorC"><span class="id" title="definition">floorC</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#m"><span class="id" title="variable">m</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="intCK"><span class="id" title="lemma">intCK</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#intr"><span class="id" title="abbreviation">intr</span></a> <a class="idref" href="mathcomp.field.algC.html#floorC"><span class="id" title="definition">floorC</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="floorCK"><span class="id" title="lemma">floorCK</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.algC.html#Cint"><span class="id" title="definition">Cint</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.field.algC.html#floorC"><span class="id" title="definition">floorC</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#intr"><span class="id" title="abbreviation">intr</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="floorC0"><span class="id" title="lemma">floorC0</span></a> : <a class="idref" href="mathcomp.field.algC.html#floorC"><span class="id" title="definition">floorC</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/> +<span class="id" title="keyword">Lemma</span> <a name="floorC1"><span class="id" title="lemma">floorC1</span></a> : <a class="idref" href="mathcomp.field.algC.html#floorC"><span class="id" title="definition">floorC</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/> +<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">floorC0</span> <span class="id" title="var">floorC1</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="floorCpK"><span class="id" title="lemma">floorCpK</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.algC.html#algC"><span class="id" title="abbreviation">algC</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) :<br/> + <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a> <a class="idref" href="http://coq.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.algebra.ssrint.html#intr"><span class="id" title="abbreviation">intr</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.algC.html#floorC"><span class="id" title="definition">floorC</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#p"><span class="id" title="variable">p</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="floorCpP"><span class="id" title="lemma">floorCpP</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.algC.html#algC"><span class="id" title="abbreviation">algC</span></a><a class="idref" href="mathcomp.algebra.poly.html#699040ddc0986f520cece215f531d947"><span class="id" title="notation">}</span></a>) :<br/> + <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a> <a class="idref" href="http://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#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">{</span></a><span class="id" title="var">q</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.algC.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.algebra.poly.html#map_poly"><span class="id" title="definition">map_poly</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#intr"><span class="id" title="abbreviation">intr</span></a> <a class="idref" href="mathcomp.field.algC.html#q"><span class="id" title="variable">q</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Cint_int"><span class="id" title="lemma">Cint_int</span></a> <span class="id" title="var">m</span> : <a class="idref" href="mathcomp.field.algC.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">%:~</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">R</span></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.algC.html#Cint"><span class="id" title="definition">Cint</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="CintP"><span class="id" title="lemma">CintP</span></a> <span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#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">m</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.algC.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.algC.html#m"><span class="id" title="variable">m</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">%:~</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#626a4f68393e32b84ab75f15f785f640"><span class="id" title="notation">R</span></a>) (<a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="floorCD"><span class="id" title="lemma">floorCD</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.algC.html#Cint"><span class="id" title="definition">Cint</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.algC.html#Creal"><span class="id" title="abbreviation">Creal</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.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.algC.html#floorC"><span class="id" title="definition">floorC</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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#208bc995000a6307bdbc043c43919d97"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="floorCN"><span class="id" title="lemma">floorCN</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.algC.html#Cint"><span class="id" title="definition">Cint</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.algC.html#floorC"><span class="id" title="definition">floorC</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.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.algC.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#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="floorCM"><span class="id" title="lemma">floorCM</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.algC.html#Cint"><span class="id" title="definition">Cint</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.algC.html#floorC"><span class="id" title="definition">floorC</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.algC.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.algC.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#3014e73af2a90fd800d8681479d76336"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="floorCX"><span class="id" title="lemma">floorCX</span></a> <span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint"><span class="id" title="definition">Cint</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.algC.html#floorC"><span class="id" title="definition">floorC</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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.field.algC.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><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="rpred_Cint"><span class="id" title="lemma">rpred_Cint</span></a> <span class="id" title="var">S</span> (<span class="id" title="var">ringS</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.subringPred"><span class="id" title="abbreviation">subringPred</span></a> <a class="idref" href="mathcomp.field.algC.html#S"><span class="id" title="variable">S</span></a>) (<span class="id" title="var">kS</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#keyed_pred"><span class="id" title="record">keyed_pred</span></a> <a class="idref" href="mathcomp.field.algC.html#ringS"><span class="id" title="variable">ringS</span></a>) <span class="id" title="var">x</span> :<br/> + <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a> <a class="idref" href="http://coq.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.algC.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.algC.html#kS"><span class="id" title="variable">kS</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Cint0"><span class="id" title="lemma">Cint0</span></a> : 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint"><span class="id" title="definition">Cint</span></a>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="Cint1"><span class="id" title="lemma">Cint1</span></a> : 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint"><span class="id" title="definition">Cint</span></a>. <br/> +<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">Cint0</span> <span class="id" title="var">Cint1</span>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Cint_key"><span class="id" title="lemma">Cint_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred_key"><span class="id" title="inductive">pred_key</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint"><span class="id" title="definition">Cint</span></a>. <br/> +<span class="id" title="keyword">Fact</span> <a name="Cint_subring"><span class="id" title="lemma">Cint_subring</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.subring_closed"><span class="id" title="abbreviation">subring_closed</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint"><span class="id" title="definition">Cint</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Cint_keyed</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#KeyedPred"><span class="id" title="definition">KeyedPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint_key"><span class="id" title="lemma">Cint_key</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Cint_opprPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.OpprPred"><span class="id" title="definition">OpprPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint_subring"><span class="id" title="lemma">Cint_subring</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Cint_addrPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.AddrPred"><span class="id" title="definition">AddrPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint_subring"><span class="id" title="lemma">Cint_subring</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Cint_mulrPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.MulrPred"><span class="id" title="definition">MulrPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint_subring"><span class="id" title="lemma">Cint_subring</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Cint_zmodPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.ZmodPred"><span class="id" title="definition">ZmodPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint_subring"><span class="id" title="lemma">Cint_subring</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Cint_semiringPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.SemiringPred"><span class="id" title="definition">SemiringPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint_subring"><span class="id" title="lemma">Cint_subring</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Cint_smulrPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.SmulrPred"><span class="id" title="definition">SmulrPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint_subring"><span class="id" title="lemma">Cint_subring</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Cint_subringPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.SubringPred"><span class="id" title="definition">SubringPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint_subring"><span class="id" title="lemma">Cint_subring</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Creal_Cint"><span class="id" title="lemma">Creal_Cint</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.algC.html#Cint"><span class="id" title="definition">Cint</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.algC.html#Creal"><span class="id" title="abbreviation">Creal</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>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="conj_Cint"><span class="id" title="lemma">conj_Cint</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a> <a class="idref" href="http://coq.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.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#b07d6e6599ef6e468ce182ffe6029532"><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.algC.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Cint_normK"><span class="id" title="lemma">Cint_normK</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a> <a class="idref" href="http://coq.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.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> 2 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> 2.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="CintEsign"><span class="id" title="lemma">CintEsign</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a> <a class="idref" href="http://coq.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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">(</span></a>-1<a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> (<a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> 0)%<span class="id" title="var">C</span> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">|</span></a>.<br/> + +<br/> +</div> + +<div class="doc"> + Natural integer subset. +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="truncC_itv"><span class="id" title="lemma">truncC_itv</span></a> <span class="id" title="var">x</span> : 0 <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#truncC"><span class="id" title="definition">truncC</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">)%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#93a29a58d1f90b8a91702885cf86161e"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#93a29a58d1f90b8a91702885cf86161e"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#truncC"><span class="id" title="definition">truncC</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">).+1</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="truncC_def"><span class="id" title="lemma">truncC_def</span></a> <span class="id" title="var">x</span> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#93a29a58d1f90b8a91702885cf86161e"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#93a29a58d1f90b8a91702885cf86161e"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.ssreflect.ssrnat.html#361454269931ea8643f7b402f2ab7222"><span class="id" title="notation">.+1</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.algC.html#truncC"><span class="id" title="definition">truncC</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="natCK"><span class="id" title="lemma">natCK</span></a> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.field.algC.html#truncC"><span class="id" title="definition">truncC</span></a> <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="CnatP"><span class="id" title="lemma">CnatP</span></a> <span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#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">n</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.algC.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.algC.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a>) (<a class="idref" href="mathcomp.field.algC.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="truncCK"><span class="id" title="lemma">truncCK</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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.field.algC.html#truncC"><span class="id" title="definition">truncC</span></a> (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.natmul"><span class="id" title="definition">GRing.natmul</span></a> 1)<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="truncC_gt0"><span class="id" title="lemma">truncC_gt0</span></a> <span class="id" title="var">x</span> : (0 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.field.algC.html#truncC"><span class="id" title="definition">truncC</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>)%<span class="id" title="var">N</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a>1 <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.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>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="truncC0Pn"><span class="id" title="lemma">truncC0Pn</span></a> <span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#reflect"><span class="id" title="abbreviation">reflect</span></a> (<a class="idref" href="mathcomp.field.algC.html#truncC"><span class="id" title="definition">truncC</span></a> <a class="idref" href="mathcomp.field.algC.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%<span class="id" title="var">N</span>) (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">(</span></a>1 <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.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#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">)</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="truncC0"><span class="id" title="lemma">truncC0</span></a> : <a class="idref" href="mathcomp.field.algC.html#truncC"><span class="id" title="definition">truncC</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 0%<span class="id" title="var">N</span>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="truncC1"><span class="id" title="lemma">truncC1</span></a> : <a class="idref" href="mathcomp.field.algC.html#truncC"><span class="id" title="definition">truncC</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1%<span class="id" title="var">N</span>. <br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="truncCD"><span class="id" title="lemma">truncCD</span></a> :<br/> + <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.algC.html#Cnat"><span class="id" title="definition">Cnat</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.algebra.ssrnum.html#Num.nneg"><span class="id" title="abbreviation">Num.nneg</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.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.field.algC.html#truncC"><span class="id" title="definition">truncC</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">:</span></a> <span class="id" title="var">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#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.algC.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#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">>-></span></a> (<a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#b3eea360671e1b32b18a26e15b3aace3"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</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#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#208bc995000a6307bdbc043c43919d97"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="truncCM"><span class="id" title="lemma">truncCM</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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">&,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.field.algC.html#truncC"><span class="id" title="definition">truncC</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">:</span></a> <span class="id" title="var">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#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.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#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">>-></span></a> (<a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#697e4695610f677ae98a52af81f779d2"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</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#a0fd72584f326d7220475d01d3fceccd"><span class="id" title="notation">}</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#2bba53854f326a714d377124cccec593"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="truncCX"><span class="id" title="lemma">truncCX</span></a> <span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Cnat"><span class="id" title="definition">Cnat</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#59b5bb4add86e1e9ecbe874e74b2216e"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#59b5bb4add86e1e9ecbe874e74b2216e"><span class="id" title="notation">morph</span></a> <a class="idref" href="mathcomp.field.algC.html#truncC"><span class="id" title="definition">truncC</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#59b5bb4add86e1e9ecbe874e74b2216e"><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#59b5bb4add86e1e9ecbe874e74b2216e"><span class="id" title="notation">/</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.field.algC.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#59b5bb4add86e1e9ecbe874e74b2216e"><span class="id" title="notation">>-></span></a> (<a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#4c362bcf0e947e2792a2e6989b44aeb0"><span class="id" title="notation">^</span></a> <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">N</span><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#59b5bb4add86e1e9ecbe874e74b2216e"><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="rpred_Cnat"><span class="id" title="lemma">rpred_Cnat</span></a> <span class="id" title="var">S</span> (<span class="id" title="var">ringS</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.semiringPred"><span class="id" title="abbreviation">semiringPred</span></a> <a class="idref" href="mathcomp.field.algC.html#S"><span class="id" title="variable">S</span></a>) (<span class="id" title="var">kS</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#keyed_pred"><span class="id" title="record">keyed_pred</span></a> <a class="idref" href="mathcomp.field.algC.html#ringS"><span class="id" title="variable">ringS</span></a>) <span class="id" title="var">x</span> :<br/> + <a class="idref" href="mathcomp.field.algC.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a> <a class="idref" href="http://coq.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.algC.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.algC.html#kS"><span class="id" title="variable">kS</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Cnat_nat"><span class="id" title="lemma">Cnat_nat</span></a> <span class="id" title="var">n</span> : <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="Cnat0"><span class="id" title="lemma">Cnat0</span></a> : 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="Cnat1"><span class="id" title="lemma">Cnat1</span></a> : 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a>. <br/> +<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">Cnat_nat</span> <span class="id" title="var">Cnat0</span> <span class="id" title="var">Cnat1</span>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Cnat_key"><span class="id" title="lemma">Cnat_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred_key"><span class="id" title="inductive">pred_key</span></a> <a class="idref" href="mathcomp.field.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a>. <br/> +<span class="id" title="keyword">Fact</span> <a name="Cnat_semiring"><span class="id" title="lemma">Cnat_semiring</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.semiring_closed"><span class="id" title="abbreviation">semiring_closed</span></a> <a class="idref" href="mathcomp.field.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Cnat_keyed</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#KeyedPred"><span class="id" title="definition">KeyedPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Cnat_key"><span class="id" title="lemma">Cnat_key</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Cnat_addrPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.AddrPred"><span class="id" title="definition">AddrPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Cnat_semiring"><span class="id" title="lemma">Cnat_semiring</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Cnat_mulrPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.MulrPred"><span class="id" title="definition">MulrPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Cnat_semiring"><span class="id" title="lemma">Cnat_semiring</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Cnat_semiringPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.SemiringPred"><span class="id" title="definition">SemiringPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Cnat_semiring"><span class="id" title="lemma">Cnat_semiring</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Cnat_ge0"><span class="id" title="lemma">Cnat_ge0</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> 0 <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Cnat_gt0"><span class="id" title="lemma">Cnat_gt0</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a> <a class="idref" href="http://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>0 <a class="idref" href="mathcomp.algebra.ssrnum.html#388c172bf8d34ef0bf11898cd56f8d7b"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.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.algC.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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="conj_Cnat"><span class="id" title="lemma">conj_Cnat</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a> <a class="idref" href="http://coq.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.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#b07d6e6599ef6e468ce182ffe6029532"><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.algC.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="norm_Cnat"><span class="id" title="lemma">norm_Cnat</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a> <a class="idref" href="http://coq.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.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><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.algC.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Creal_Cnat"><span class="id" title="lemma">Creal_Cnat</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.algC.html#Cnat"><span class="id" title="definition">Cnat</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.algC.html#Creal"><span class="id" title="abbreviation">Creal</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>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Cnat_sum_eq1"><span class="id" title="lemma">Cnat_sum_eq1</span></a> (<span class="id" title="var">I</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Exports.finType"><span class="id" title="abbreviation">finType</span></a>) (<span class="id" title="var">P</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.field.algC.html#I"><span class="id" title="variable">I</span></a>) (<span class="id" title="var">F</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#algC"><span class="id" title="abbreviation">algC</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">i</span>, <a class="idref" href="mathcomp.field.algC.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.algC.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">sum_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.algC.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.field.algC.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#622398b62523a74328f94700e42198d0"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.algC.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.algC.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> + <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">i</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.algC.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.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#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">[/\</span></a> <a class="idref" href="mathcomp.field.algC.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.field.algC.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.field.algC.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.algC.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#962a3cb7af009aedac7986e261646bd1"><span class="id" title="notation">&</span></a> <span class="id" title="keyword">∀</span> <span class="id" title="var">j</span>, <a class="idref" href="mathcomp.field.algC.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.field.algC.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.algC.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.algC.html#j"><span class="id" title="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.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.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#72ca3fac4636a1b19c963b12162882cf"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Cnat_mul_eq1"><span class="id" title="lemma">Cnat_mul_eq1</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> :<br/> + <a class="idref" href="mathcomp.field.algC.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a> <a class="idref" href="http://coq.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.algC.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a> <a class="idref" href="http://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.algC.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.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.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> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Cnat_prod_eq1"><span class="id" title="lemma">Cnat_prod_eq1</span></a> (<span class="id" title="var">I</span> : <a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Exports.finType"><span class="id" title="abbreviation">finType</span></a>) (<span class="id" title="var">P</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred"><span class="id" title="definition">pred</span></a> <a class="idref" href="mathcomp.field.algC.html#I"><span class="id" title="variable">I</span></a>) (<span class="id" title="var">F</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#algC"><span class="id" title="abbreviation">algC</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">i</span>, <a class="idref" href="mathcomp.field.algC.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.algC.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#b29cd8e479370273da36336a1ca6eca7"><span class="id" title="notation">\</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b29cd8e479370273da36336a1ca6eca7"><span class="id" title="notation">prod_</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b29cd8e479370273da36336a1ca6eca7"><span class="id" title="notation">(</span></a><span class="id" title="var">i</span> <a class="idref" href="mathcomp.algebra.ssralg.html#b29cd8e479370273da36336a1ca6eca7"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.algC.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.field.algC.html#i"><span class="id" title="variable">i</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#b29cd8e479370273da36336a1ca6eca7"><span class="id" title="notation">)</span></a> <a class="idref" href="mathcomp.field.algC.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.algC.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a><br/> + <span class="id" title="keyword">∀</span> <span class="id" title="var">i</span>, <a class="idref" href="mathcomp.field.algC.html#P"><span class="id" title="variable">P</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#F"><span class="id" title="variable">F</span></a> <a class="idref" href="mathcomp.field.algC.html#i"><span class="id" title="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1.<br/> + +<br/> +</div> + +<div class="doc"> + Relating Cint and Cnat. +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Cint_Cnat"><span class="id" title="lemma">Cint_Cnat</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.algC.html#Cnat"><span class="id" title="definition">Cnat</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.algC.html#Cint"><span class="id" title="definition">Cint</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>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="CintE"><span class="id" title="lemma">CintE</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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">||</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Cnat_norm_Cint"><span class="id" title="lemma">Cnat_norm_Cint</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a> <a class="idref" href="http://coq.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.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">|</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="CnatEint"><span class="id" title="lemma">CnatEint</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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&&</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a>0 <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="CintEge0"><span class="id" title="lemma">CintEge0</span></a> <span class="id" title="var">x</span> : 0 <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.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="http://coq.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.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a><a class="idref" href="http://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.algC.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a><a 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="Cnat_exp_even"><span class="id" title="lemma">Cnat_exp_even</span></a> <span class="id" title="var">x</span> <span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~</span></a> <a class="idref" href="mathcomp.ssreflect.ssrnat.html#odd"><span class="id" title="definition">odd</span></a> <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a> <a class="idref" href="http://coq.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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="norm_Cint_ge1"><span class="id" title="lemma">norm_Cint_ge1</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a> <a class="idref" href="http://coq.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.algC.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> 1 <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#c536f9a86d3c053391521360ac3f5a61"><span class="id" title="notation">|</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="sqr_Cint_ge1"><span class="id" title="lemma">sqr_Cint_ge1</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a> <a class="idref" href="http://coq.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.algC.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> 1 <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> 2.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Cint_ler_sqr"><span class="id" title="lemma">Cint_ler_sqr</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a> <a class="idref" href="http://coq.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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> 2.<br/> + +<br/> +</div> + +<div class="doc"> + Integer divisibility. +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdCP"><span class="id" title="lemma">dvdCP</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#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">z</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.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</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.algC.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.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>) (<a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdCP_nat"><span class="id" title="lemma">dvdCP_nat</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> : 0 <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.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> 0 <a class="idref" href="mathcomp.algebra.ssrnum.html#1065783963a393d1eafa2137291f2495"><span class="id" title="notation">≤</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a>)%<span class="id" title="var">C</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.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">{</span></a><span class="id" title="var">n</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#n"><span class="id" title="variable">n</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">%:</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#af5c1d7e13410a0a6c3dff5441ac8477"><span class="id" title="notation">R</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.algC.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.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdC0"><span class="id" title="lemma">dvdC0</span></a> <span class="id" title="var">x</span> : (<a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> 0)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvd0C"><span class="id" title="lemma">dvd0C</span></a> <span class="id" title="var">x</span> : (0 <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>)%<span class="id" title="var">C</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.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> 0<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdC_mull"><span class="id" title="lemma">dvdC_mull</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <span class="id" title="var">z</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a> <a class="idref" href="http://coq.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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a>)%<span class="id" title="var">C</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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#z"><span class="id" title="variable">z</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdC_mulr"><span class="id" title="lemma">dvdC_mulr</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <span class="id" title="var">z</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a> <a class="idref" href="http://coq.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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a>)%<span class="id" title="var">C</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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdC_mul2r"><span class="id" title="lemma">dvdC_mul2r</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <span class="id" title="var">z</span> : <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.field.algC.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.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a>)%<span class="id" title="var">C</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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdC_mul2l"><span class="id" title="lemma">dvdC_mul2l</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <span class="id" title="var">z</span> : <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#b1eeadc2feabc7422252baa895418c7b"><span class="id" title="notation">!=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> (<a class="idref" href="mathcomp.field.algC.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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#z"><span class="id" title="variable">z</span></a>)%<span class="id" title="var">C</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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdC_trans"><span class="id" title="lemma">dvdC_trans</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <span class="id" title="var">z</span> : (<a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a>)%<span class="id" title="var">C</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.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a>)%<span class="id" title="var">C</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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdC_refl"><span class="id" title="lemma">dvdC_refl</span></a> <span class="id" title="var">x</span> : (<a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>)%<span class="id" title="var">C</span>.<br/> + <span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">dvdC_refl</span>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="dvdC_key"><span class="id" title="lemma">dvdC_key</span></a> <span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred_key"><span class="id" title="inductive">pred_key</span></a> (<a class="idref" href="mathcomp.field.algC.html#dvdC"><span class="id" title="definition">dvdC</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>). <br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdC_zmod"><span class="id" title="lemma">dvdC_zmod</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.zmod_closed"><span class="id" title="abbreviation">zmod_closed</span></a> (<a class="idref" href="mathcomp.field.algC.html#dvdC"><span class="id" title="definition">dvdC</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">dvdC_keyed</span> <span class="id" title="var">x</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#KeyedPred"><span class="id" title="definition">KeyedPred</span></a> (<a class="idref" href="mathcomp.field.algC.html#dvdC_key"><span class="id" title="lemma">dvdC_key</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">dvdC_opprPred</span> <span class="id" title="var">x</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.OpprPred"><span class="id" title="definition">OpprPred</span></a> (<a class="idref" href="mathcomp.field.algC.html#dvdC_zmod"><span class="id" title="lemma">dvdC_zmod</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">dvdC_addrPred</span> <span class="id" title="var">x</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.AddrPred"><span class="id" title="definition">AddrPred</span></a> (<a class="idref" href="mathcomp.field.algC.html#dvdC_zmod"><span class="id" title="lemma">dvdC_zmod</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">dvdC_zmodPred</span> <span class="id" title="var">x</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.ZmodPred"><span class="id" title="definition">ZmodPred</span></a> (<a class="idref" href="mathcomp.field.algC.html#dvdC_zmod"><span class="id" title="lemma">dvdC_zmod</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdC_nat"><span class="id" title="lemma">dvdC_nat</span></a> (<span class="id" title="var">p</span> <span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) : (<a class="idref" href="mathcomp.field.algC.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">C</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.algC.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">N</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="dvdC_int"><span class="id" title="lemma">dvdC_int</span></a> (<span class="id" title="var">p</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a> <a class="idref" href="http://coq.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.algC.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>)%<span class="id" title="var">C</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.algC.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">`|</span></a><a class="idref" href="mathcomp.field.algC.html#floorC"><span class="id" title="definition">floorC</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssrint.html#521bb1f21db4ea2eead2a81dcc1b61f3"><span class="id" title="notation">|</span></a>)%<span class="id" title="var">N</span>.<br/> + +<br/> +</div> + +<div class="doc"> + Elementary modular arithmetic. +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmod_refl"><span class="id" title="lemma">eqCmod_refl</span></a> <span class="id" title="var">e</span> <span class="id" title="var">x</span> : (<a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmodm0"><span class="id" title="lemma">eqCmodm0</span></a> <span class="id" title="var">e</span> : (<a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</span>. <br/> +<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">eqCmod_refl</span> <span class="id" title="var">eqCmodm0</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmod0"><span class="id" title="lemma">eqCmod0</span></a> <span class="id" title="var">e</span> <span class="id" title="var">x</span> : (<a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</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.algC.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.algC.html#9a2f23320469c9d2a314bb86625d5b32"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmod_sym"><span class="id" title="lemma">eqCmod_sym</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="http://coq.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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><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>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmod_trans"><span class="id" title="lemma">eqCmod_trans</span></a> <span class="id" title="var">e</span> <span class="id" title="var">y</span> <span class="id" title="var">x</span> <span class="id" title="var">z</span> :<br/> + (<a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><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.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmod_transl"><span class="id" title="lemma">eqCmod_transl</span></a> <span class="id" title="var">e</span> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <span class="id" title="var">z</span> :<br/> + (<a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</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.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmod_transr"><span class="id" title="lemma">eqCmod_transr</span></a> <span class="id" title="var">e</span> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <span class="id" title="var">z</span> :<br/> + (<a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</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.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</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.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmodN"><span class="id" title="lemma">eqCmodN</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.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</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.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmodDr"><span class="id" title="lemma">eqCmodDr</span></a> <span class="id" title="var">e</span> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <span class="id" title="var">z</span> : (<a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</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.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmodDl"><span class="id" title="lemma">eqCmodDl</span></a> <span class="id" title="var">e</span> <span class="id" title="var">x</span> <span class="id" title="var">y</span> <span class="id" title="var">z</span> : (<a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</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.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmodD"><span class="id" title="lemma">eqCmodD</span></a> <span class="id" title="var">e</span> <span class="id" title="var">x1</span> <span class="id" title="var">x2</span> <span class="id" title="var">y1</span> <span class="id" title="var">y2</span> :<br/> + (<a class="idref" href="mathcomp.field.algC.html#x1"><span class="id" title="variable">x1</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#x2"><span class="id" title="variable">x2</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><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.algC.html#y1"><span class="id" title="variable">y1</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#y2"><span class="id" title="variable">y2</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><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.algC.html#x1"><span class="id" title="variable">x1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.algC.html#y1"><span class="id" title="variable">y1</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#x2"><span class="id" title="variable">x2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.algC.html#y2"><span class="id" title="variable">y2</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmod_nat"><span class="id" title="lemma">eqCmod_nat</span></a> (<span class="id" title="var">e</span> <span class="id" title="var">m</span> <span class="id" title="var">n</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) : (<a class="idref" href="mathcomp.field.algC.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#29294f431c8c9e3d170b3ccfa621d03f"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#29294f431c8c9e3d170b3ccfa621d03f"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.ssreflect.div.html#29294f431c8c9e3d170b3ccfa621d03f"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.ssreflect.div.html#29294f431c8c9e3d170b3ccfa621d03f"><span class="id" title="notation">]</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">)</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmod0_nat"><span class="id" title="lemma">eqCmod0_nat</span></a> (<span class="id" title="var">e</span> <span class="id" title="var">m</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#nat"><span class="id" title="inductive">nat</span></a>) : (<a class="idref" href="mathcomp.field.algC.html#m"><span class="id" title="variable">m</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a>)%<span class="id" title="var">C</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.algC.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.ssreflect.div.html#aa34fd1c61c5cf0a3356b624a5d2afed"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#m"><span class="id" title="variable">m</span></a>)%<span class="id" title="var">N</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmodMr"><span class="id" title="lemma">eqCmodMr</span></a> <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#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.algC.html#Cint"><span class="id" title="definition">Cint</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">z</span> <span class="id" title="var">x</span> <span class="id" title="var">y</span>, <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><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.algC.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.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmodMl"><span class="id" title="lemma">eqCmodMl</span></a> <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#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.algC.html#Cint"><span class="id" title="definition">Cint</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">z</span> <span class="id" title="var">x</span> <span class="id" title="var">y</span>, <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><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.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmodMl0"><span class="id" title="lemma">eqCmodMl0</span></a> <span class="id" title="var">e</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint"><span class="id" title="definition">Cint</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.algC.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.algC.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmodMr0"><span class="id" title="lemma">eqCmodMr0</span></a> <span class="id" title="var">e</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint"><span class="id" title="definition">Cint</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.algC.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> 0 <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmod_addl_mul"><span class="id" title="lemma">eqCmod_addl_mul</span></a> <span class="id" title="var">e</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint"><span class="id" title="definition">Cint</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> <span class="id" title="var">y</span>, <a class="idref" href="mathcomp.field.algC.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.algC.html#e"><span class="id" title="variable">e</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">]</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>%<span class="id" title="var">C</span>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="eqCmodM"><span class="id" title="lemma">eqCmodM</span></a> <span class="id" title="var">e</span> : <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.algC.html#Cint"><span class="id" title="definition">Cint</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.algC.html#Cint"><span class="id" title="definition">Cint</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">x1</span> <span class="id" title="var">y2</span> <span class="id" title="var">x2</span> <span class="id" title="var">y1</span>,<br/> + <a class="idref" href="mathcomp.field.algC.html#x1"><span class="id" title="variable">x1</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#x2"><span class="id" title="variable">x2</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><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.algC.html#y1"><span class="id" title="variable">y1</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#y2"><span class="id" title="variable">y2</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><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.algC.html#x1"><span class="id" title="variable">x1</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.algC.html#y1"><span class="id" title="variable">y1</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.field.algC.html#x2"><span class="id" title="variable">x2</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.field.algC.html#y2"><span class="id" title="variable">y2</span></a> <a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">%[</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><span class="id" title="notation">mod</span></a> <a class="idref" href="mathcomp.field.algC.html#e"><span class="id" title="variable">e</span></a><a class="idref" href="mathcomp.field.algC.html#ad6c1a2e0c593edef8f546c6caff1370"><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>%<span class="id" title="var">C</span>.<br/> + +<br/> +</div> + +<div class="doc"> + Rational number subset. +</div> +<div class="code"> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="ratCK"><span class="id" title="lemma">ratCK</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.algC.html#QtoC"><span class="id" title="abbreviation">QtoC</span></a> <a class="idref" href="mathcomp.field.algC.html#CtoQ"><span class="id" title="abbreviation">CtoQ</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="getCratK"><span class="id" title="lemma">getCratK</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.algC.html#Crat"><span class="id" title="definition">Crat</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#cancel"><span class="id" title="definition">cancel</span></a> <a class="idref" href="mathcomp.field.algC.html#CtoQ"><span class="id" title="abbreviation">CtoQ</span></a> <a class="idref" href="mathcomp.field.algC.html#QtoC"><span class="id" title="abbreviation">QtoC</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="Crat_rat"><span class="id" title="lemma">Crat_rat</span></a> (<span class="id" title="var">a</span> : <a class="idref" href="mathcomp.algebra.rat.html#rat"><span class="id" title="record">rat</span></a>) : <a class="idref" href="mathcomp.field.algC.html#QtoC"><span class="id" title="abbreviation">QtoC</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#Crat"><span class="id" title="definition">Crat</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="CratP"><span class="id" title="lemma">CratP</span></a> <span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#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">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> <a class="idref" href="mathcomp.field.algC.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.algC.html#QtoC"><span class="id" title="abbreviation">QtoC</span></a> <a class="idref" href="mathcomp.field.algC.html#a"><span class="id" title="variable">a</span></a>) (<a class="idref" href="mathcomp.field.algC.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.algC.html#Crat"><span class="id" title="definition">Crat</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Crat0"><span class="id" title="lemma">Crat0</span></a> : 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat"><span class="id" title="definition">Crat</span></a>. <br/> +<span class="id" title="keyword">Lemma</span> <a name="Crat1"><span class="id" title="lemma">Crat1</span></a> : 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat"><span class="id" title="definition">Crat</span></a>. <br/> +<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">Crat0</span> <span class="id" title="var">Crat1</span>.<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="Crat_key"><span class="id" title="lemma">Crat_key</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#pred_key"><span class="id" title="inductive">pred_key</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat"><span class="id" title="definition">Crat</span></a>. <br/> +<span class="id" title="keyword">Fact</span> <a name="Crat_divring_closed"><span class="id" title="lemma">Crat_divring_closed</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.divring_closed"><span class="id" title="abbreviation">divring_closed</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat"><span class="id" title="definition">Crat</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Crat_keyed</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#KeyedPred"><span class="id" title="definition">KeyedPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat_key"><span class="id" title="lemma">Crat_key</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Crat_opprPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.OpprPred"><span class="id" title="definition">OpprPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat_divring_closed"><span class="id" title="lemma">Crat_divring_closed</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Crat_addrPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.AddrPred"><span class="id" title="definition">AddrPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat_divring_closed"><span class="id" title="lemma">Crat_divring_closed</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Crat_mulrPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.MulrPred"><span class="id" title="definition">MulrPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat_divring_closed"><span class="id" title="lemma">Crat_divring_closed</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Crat_zmodPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.ZmodPred"><span class="id" title="definition">ZmodPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat_divring_closed"><span class="id" title="lemma">Crat_divring_closed</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Crat_semiringPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.SemiringPred"><span class="id" title="definition">SemiringPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat_divring_closed"><span class="id" title="lemma">Crat_divring_closed</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Crat_smulrPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.SmulrPred"><span class="id" title="definition">SmulrPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat_divring_closed"><span class="id" title="lemma">Crat_divring_closed</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Crat_divrPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.DivrPred"><span class="id" title="definition">DivrPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat_divring_closed"><span class="id" title="lemma">Crat_divring_closed</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Crat_subringPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.SubringPred"><span class="id" title="definition">SubringPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat_divring_closed"><span class="id" title="lemma">Crat_divring_closed</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Crat_sdivrPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.SdivrPred"><span class="id" title="definition">SdivrPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat_divring_closed"><span class="id" title="lemma">Crat_divring_closed</span></a>.<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">Crat_divringPred</span> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.DivringPred"><span class="id" title="definition">DivringPred</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat_divring_closed"><span class="id" title="lemma">Crat_divring_closed</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="rpred_Crat"><span class="id" title="lemma">rpred_Crat</span></a> <span class="id" title="var">S</span> (<span class="id" title="var">ringS</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.divringPred"><span class="id" title="abbreviation">divringPred</span></a> <a class="idref" href="mathcomp.field.algC.html#S"><span class="id" title="variable">S</span></a>) (<span class="id" title="var">kS</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#keyed_pred"><span class="id" title="record">keyed_pred</span></a> <a class="idref" href="mathcomp.field.algC.html#ringS"><span class="id" title="variable">ringS</span></a>) :<br/> + <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.algC.html#Crat"><span class="id" title="definition">Crat</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.algC.html#kS"><span class="id" title="variable">kS</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>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="conj_Crat"><span class="id" title="lemma">conj_Crat</span></a> <span class="id" title="var">z</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Crat"><span class="id" title="definition">Crat</span></a> <a class="idref" href="http://coq.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.algC.html#z"><span class="id" title="variable">z</span></a><a class="idref" href="mathcomp.algebra.ssrnum.html#b07d6e6599ef6e468ce182ffe6029532"><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.algC.html#z"><span class="id" title="variable">z</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Creal_Crat"><span class="id" title="lemma">Creal_Crat</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.algC.html#Crat"><span class="id" title="definition">Crat</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.algC.html#Creal"><span class="id" title="abbreviation">Creal</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>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Cint_rat"><span class="id" title="lemma">Cint_rat</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.algC.html#QtoC"><span class="id" title="abbreviation">QtoC</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a><a class="idref" href="http://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.algC.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.rat.html#Qint"><span class="id" title="definition">Qint</span></a><a 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="minCpolyP"><span class="id" title="lemma">minCpolyP</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.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">{</span></a><span class="id" title="var">p</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#f5350ad671d3ce0e1e463e298917cf6e"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.algC.html#minCpoly"><span class="id" title="definition">minCpoly</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#pQtoC"><span class="id" title="abbreviation">pQtoC</span></a> <a class="idref" href="mathcomp.field.algC.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#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.field.algC.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#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.algebra.poly.html#monic"><span class="id" title="definition">monic</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="keyword">∀</span> <span class="id" title="var">q</span>, <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> (<a class="idref" href="mathcomp.field.algC.html#pQtoC"><span class="id" title="abbreviation">pQtoC</span></a> <a class="idref" href="mathcomp.field.algC.html#q"><span class="id" title="variable">q</span></a>) <a class="idref" href="mathcomp.field.algC.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.algC.html#p"><span class="id" title="variable">p</span></a> <a class="idref" href="mathcomp.algebra.polydiv.html#8d02531a91f8648b92789372c052c0ad"><span class="id" title="notation">%|</span></a> <a class="idref" href="mathcomp.field.algC.html#q"><span class="id" title="variable">q</span></a>)%<span class="id" title="var">R</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>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="minCpoly_monic"><span class="id" title="lemma">minCpoly_monic</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.html#minCpoly"><span class="id" title="definition">minCpoly</span></a> <a class="idref" href="mathcomp.field.algC.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#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#e6408d45e92e642f7d1652448339ba09"><span class="id" title="notation">is</span></a> <a class="idref" href="mathcomp.algebra.poly.html#monic"><span class="id" title="definition">monic</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="minCpoly_eq0"><span class="id" title="lemma">minCpoly_eq0</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#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#minCpoly"><span class="id" title="definition">minCpoly</span></a> <a class="idref" href="mathcomp.field.algC.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> 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.Datatypes.html#false"><span class="id" title="constructor">false</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="root_minCpoly"><span class="id" title="lemma">root_minCpoly</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.poly.html#root"><span class="id" title="definition">root</span></a> (<a class="idref" href="mathcomp.field.algC.html#minCpoly"><span class="id" title="definition">minCpoly</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>) <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="size_minCpoly"><span class="id" title="lemma">size_minCpoly</span></a> <span class="id" title="var">x</span> : (1 <a class="idref" href="mathcomp.ssreflect.ssrnat.html#989c98e7ddd65d5bf37c334ff2076de8"><span class="id" title="notation"><</span></a> <a class="idref" href="mathcomp.ssreflect.seq.html#size"><span class="id" title="definition">size</span></a> (<a class="idref" href="mathcomp.field.algC.html#minCpoly"><span class="id" title="definition">minCpoly</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>))%<span class="id" title="var">N</span>.<br/> + +<br/> +</div> + +<div class="doc"> + Basic properties of automorphisms. +</div> +<div class="code"> +<span class="id" title="keyword">Section</span> <a name="AlgebraicsTheory.AutC"><span class="id" title="section">AutC</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Type</span> <span class="id" title="var">nu</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">rmorphism</span></a> <a class="idref" href="mathcomp.field.algC.html#algC"><span class="id" title="abbreviation">algC</span></a> <a class="idref" href="http://coq.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.algC.html#algC"><span class="id" title="abbreviation">algC</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#0c709ebe43ddbd7719f75250a7b916d9"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="aut_Cnat"><span class="id" title="lemma">aut_Cnat</span></a> <span class="id" title="var">nu</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Cnat"><span class="id" title="definition">Cnat</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.algC.html#nu"><span class="id" title="variable">nu</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="aut_Cint"><span class="id" title="lemma">aut_Cint</span></a> <span class="id" title="var">nu</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Cint"><span class="id" title="definition">Cint</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.algC.html#nu"><span class="id" title="variable">nu</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="aut_Crat"><span class="id" title="lemma">aut_Crat</span></a> <span class="id" title="var">nu</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#Crat"><span class="id" title="definition">Crat</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.algC.html#nu"><span class="id" title="variable">nu</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="Cnat_aut"><span class="id" title="lemma">Cnat_aut</span></a> <span class="id" title="var">nu</span> <span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#nu"><span class="id" title="variable">nu</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a><a class="idref" href="http://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.algC.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a><a 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="Cint_aut"><span class="id" title="lemma">Cint_aut</span></a> <span class="id" title="var">nu</span> <span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#nu"><span class="id" title="variable">nu</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a><a class="idref" href="http://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.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a><a 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="Crat_aut"><span class="id" title="lemma">Crat_aut</span></a> <span class="id" title="var">nu</span> <span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.field.algC.html#nu"><span class="id" title="variable">nu</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#Crat"><span class="id" title="definition">Crat</span></a><a class="idref" href="http://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.algC.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.algC.html#Crat"><span class="id" title="definition">Crat</span></a><a 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="algC_invaut_subproof"><span class="id" title="lemma">algC_invaut_subproof</span></a> <span class="id" title="var">nu</span> <span class="id" title="var">x</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">{</span></a><span class="id" title="var">y</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.field.algC.html#nu"><span class="id" title="variable">nu</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.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.Specif.html#5b63cb9ed0fed82566685c66e56592e4"><span class="id" title="notation">}</span></a>.<br/> +<span class="id" title="keyword">Definition</span> <a name="algC_invaut"><span class="id" title="definition">algC_invaut</span></a> <span class="id" title="var">nu</span> <span class="id" title="var">x</span> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#sval"><span class="id" title="abbreviation">sval</span></a> (<a class="idref" href="mathcomp.field.algC.html#algC_invaut_subproof"><span class="id" title="lemma">algC_invaut_subproof</span></a> <a class="idref" href="mathcomp.field.algC.html#nu"><span class="id" title="variable">nu</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="algC_invautK"><span class="id" title="lemma">algC_invautK</span></a> <span class="id" title="var">nu</span> : <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.algC.html#algC_invaut"><span class="id" title="definition">algC_invaut</span></a> <a class="idref" href="mathcomp.field.algC.html#nu"><span class="id" title="variable">nu</span></a>) <a class="idref" href="mathcomp.field.algC.html#nu"><span class="id" title="variable">nu</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="algC_autK"><span class="id" title="lemma">algC_autK</span></a> <span class="id" title="var">nu</span> : <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.algC.html#nu"><span class="id" title="variable">nu</span></a> (<a class="idref" href="mathcomp.field.algC.html#algC_invaut"><span class="id" title="definition">algC_invaut</span></a> <a class="idref" href="mathcomp.field.algC.html#nu"><span class="id" title="variable">nu</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Fact</span> <a name="algC_invaut_is_rmorphism"><span class="id" title="lemma">algC_invaut_is_rmorphism</span></a> <span class="id" title="var">nu</span> : <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.algC.html#algC_invaut"><span class="id" title="definition">algC_invaut</span></a> <a class="idref" href="mathcomp.field.algC.html#nu"><span class="id" title="variable">nu</span></a>).<br/> + <span class="id" title="keyword">Canonical</span> <span class="id" title="var">algC_invaut_additive</span> <span class="id" title="var">nu</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.algC.html#algC_invaut_is_rmorphism"><span class="id" title="lemma">algC_invaut_is_rmorphism</span></a> <a class="idref" href="mathcomp.field.algC.html#nu"><span class="id" title="variable">nu</span></a>).<br/> +<span class="id" title="keyword">Canonical</span> <span class="id" title="var">algC_invaut_rmorphism</span> <span class="id" title="var">nu</span> := <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.algC.html#algC_invaut_is_rmorphism"><span class="id" title="lemma">algC_invaut_is_rmorphism</span></a> <a class="idref" href="mathcomp.field.algC.html#nu"><span class="id" title="variable">nu</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="minCpoly_aut"><span class="id" title="lemma">minCpoly_aut</span></a> <span class="id" title="var">nu</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.field.algC.html#minCpoly"><span class="id" title="definition">minCpoly</span></a> (<a class="idref" href="mathcomp.field.algC.html#nu"><span class="id" title="variable">nu</span></a> <a class="idref" href="mathcomp.field.algC.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.algC.html#minCpoly"><span class="id" title="definition">minCpoly</span></a> <a class="idref" href="mathcomp.field.algC.html#x"><span class="id" title="variable">x</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.algC.html#AlgebraicsTheory.AutC"><span class="id" title="section">AutC</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="AlgebraicsTheory.AutLmodC"><span class="id" title="section">AutLmodC</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variables</span> (<a name="AlgebraicsTheory.AutLmodC.U"><span class="id" title="variable">U</span></a> <a name="AlgebraicsTheory.AutLmodC.V"><span class="id" title="variable">V</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Exports.lmodType"><span class="id" title="abbreviation">lmodType</span></a> <a class="idref" href="mathcomp.field.algC.html#algC"><span class="id" title="abbreviation">algC</span></a>) (<a name="AlgebraicsTheory.AutLmodC.f"><span class="id" title="variable">f</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#6566b94c06c342b0768c3d2d73badf6e"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#6566b94c06c342b0768c3d2d73badf6e"><span class="id" title="notation">additive</span></a> <a class="idref" href="mathcomp.field.algC.html#U"><span class="id" title="variable">U</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.field.algC.html#V"><span class="id" title="variable">V</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#6566b94c06c342b0768c3d2d73badf6e"><span class="id" title="notation">}</span></a>).<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="raddfZ_Cnat"><span class="id" title="lemma">raddfZ_Cnat</span></a> <span class="id" title="var">a</span> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cnat"><span class="id" title="definition">Cnat</span></a> <a class="idref" href="http://coq.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.algC.html#AlgebraicsTheory.AutLmodC.f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.field.algC.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.algC.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.field.algC.html#AlgebraicsTheory.AutLmodC.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="raddfZ_Cint"><span class="id" title="lemma">raddfZ_Cint</span></a> <span class="id" title="var">a</span> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.field.algC.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.algC.html#Cint"><span class="id" title="definition">Cint</span></a> <a class="idref" href="http://coq.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.algC.html#AlgebraicsTheory.AutLmodC.f"><span class="id" title="variable">f</span></a> (<a class="idref" href="mathcomp.field.algC.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.field.algC.html#a"><span class="id" title="variable">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.field.algC.html#AlgebraicsTheory.AutLmodC.f"><span class="id" title="variable">f</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.algC.html#AlgebraicsTheory.AutLmodC"><span class="id" title="section">AutLmodC</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Section</span> <a name="AlgebraicsTheory.PredCmod"><span class="id" title="section">PredCmod</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Variable</span> <a name="AlgebraicsTheory.PredCmod.V"><span class="id" title="variable">V</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Exports.lmodType"><span class="id" title="abbreviation">lmodType</span></a> <a class="idref" href="mathcomp.field.algC.html#algC"><span class="id" title="abbreviation">algC</span></a>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="rpredZ_Cnat"><span class="id" title="lemma">rpredZ_Cnat</span></a> <span class="id" title="var">S</span> (<span class="id" title="var">addS</span> : @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.addrPred"><span class="id" title="abbreviation">addrPred</span></a> <a class="idref" href="mathcomp.field.algC.html#AlgebraicsTheory.PredCmod.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.algC.html#S"><span class="id" title="variable">S</span></a>) (<span class="id" title="var">kS</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#keyed_pred"><span class="id" title="record">keyed_pred</span></a> <a class="idref" href="mathcomp.field.algC.html#addS"><span class="id" title="variable">addS</span></a>) :<br/> + <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.algC.html#Cnat"><span class="id" title="definition">Cnat</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.algC.html#kS"><span class="id" title="variable">kS</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">z</span> <span class="id" title="var">u</span>, <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#kS"><span class="id" title="variable">kS</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>.<br/> + +<br/> +<span class="id" title="keyword">Lemma</span> <a name="rpredZ_Cint"><span class="id" title="lemma">rpredZ_Cint</span></a> <span class="id" title="var">S</span> (<span class="id" title="var">subS</span> : @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Pred.Exports.zmodPred"><span class="id" title="abbreviation">zmodPred</span></a> <a class="idref" href="mathcomp.field.algC.html#AlgebraicsTheory.PredCmod.V"><span class="id" title="variable">V</span></a> <a class="idref" href="mathcomp.field.algC.html#S"><span class="id" title="variable">S</span></a>) (<span class="id" title="var">kS</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#keyed_pred"><span class="id" title="record">keyed_pred</span></a> <a class="idref" href="mathcomp.field.algC.html#subS"><span class="id" title="variable">subS</span></a>) :<br/> + <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.algC.html#Cint"><span class="id" title="definition">Cint</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.algC.html#kS"><span class="id" title="variable">kS</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">z</span> <span class="id" title="var">u</span>, <a class="idref" href="mathcomp.field.algC.html#z"><span class="id" title="variable">z</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#81f8078534dcbb7e13a32d292f766525"><span class="id" title="notation">*:</span></a> <a class="idref" href="mathcomp.field.algC.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#46c9e8232fa09401e24f1934bb65029f"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.field.algC.html#kS"><span class="id" title="variable">kS</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>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.algC.html#AlgebraicsTheory.PredCmod"><span class="id" title="section">PredCmod</span></a>.<br/> + +<br/> +<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.field.algC.html#AlgebraicsTheory"><span class="id" title="section">AlgebraicsTheory</span></a>.<br/> +<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">Creal0</span> <span class="id" title="var">Creal1</span> <span class="id" title="var">Cnat_nat</span> <span class="id" title="var">Cnat0</span> <span class="id" title="var">Cnat1</span> <span class="id" title="var">Cint0</span> <span class="id" title="var">Cint1</span> <span class="id" title="var">floorC0</span> <span class="id" title="var">Crat0</span> <span class="id" title="var">Crat1</span>.<br/> +<span class="id" title="keyword">Hint Resolve</span> <span class="id" title="var">dvdC0</span> <span class="id" title="var">dvdC_refl</span> <span class="id" title="var">eqCmod_refl</span> <span class="id" title="var">eqCmodm0</span>.<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 |
